This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
e621-sdk-go/README.md

207 lines
5.3 KiB
Markdown
Raw Permalink Normal View History

2023-10-16 13:56:00 +00:00
# Go-e621 SDK
An unofficial e621 SDK (Client) library to interact with **e621**, **e923** and **e6ai**.
Maintained by the Anthrove Development Team.
2023-10-16 13:56:00 +00:00
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)
- [Feature Completeness](#feature-completeness)
## Installation
Include instructions on how to install or get your Golang client API. This might include:
```bash
go get -u git.dragse.it/anthrove/e621-sdk-go
```
## Usage
```golang
package main
import (
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621"
"log"
)
func main() {
ApiUser := ""
ApiKey := ""
e621User := ""
client := e621.NewClient(ApiUser, ApiKey)
user, err := client.GetUserByName(e621User).Execute()
if err != nil {
log.Panic(err)
}
log.Printf("User ID of user %s: %d ", user.Name, user.ID)
}
```
## Examples
This SDK Supports three levels of usage, Low Level, Mid Level & High Level.
All of those are available to you, you find some examples in the example directory.
High Level:
````go
package main
import (
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621"
"log"
)
func main() {
ApiUser := ""
ApiKey := ""
e621User := ""
client := e621.NewClient(ApiUser, ApiKey)
user, err := client.GetUserByName(e621User).Execute()
if err != nil {
log.Panic(err)
}
log.Printf("User ID of user %s: %d ", user.Name, user.ID)
}
````
Mid Level:
````go
package main
import (
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/builder"
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/model"
"log"
"net/http"
)
func main() {
// Define the request context with essential information.
requestContext := model.RequestContext{
Client: http.Client{},
Host: "https://e621.net",
UserAgent: "Go-e621-SDK (@username)",
Username: "API_USER", // Replace with your username
APIKey: "API_KEY", // Replace with your API key
}
// Specify the username for retrieval.
username := "" // Replace with the desired username.
// Call the GetUser function to retrieve the specified user.
userBuilder := builder.NewGetUserBuilder(requestContext)
user, err := userBuilder.SetUsername(username).Execute()
if err != nil {
panic(err)
}
log.Printf("User ID of user %s: %d ", user.Name, user.ID)
}
````
Low Level:
````go
package main
import (
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/endpoints"
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/model"
"log"
"net/http"
)
func main() {
// Define the request context with essential information.
requestContext := model.RequestContext{
Client: http.Client{},
Host: "https://e621.net",
UserAgent: "Go-e621-SDK (@username)",
Username: "API_USER", // Replace with your username
APIKey: "API_KEY", // Replace with your API key
}
// Specify the username for retrieval.
username := "" // Replace with the desired username.
// Call the GetUser function to retrieve the specified user.
user, err := endpoints.GetUser(requestContext, username)
if err != nil {
panic(err)
}
log.Printf("User ID of user %s: %d ", user.Name, user.ID)
}
````
## Feature Completeness
2023-10-16 13:56:00 +00:00
_Legend_
| Symbol | Meaning |
|:------------------:|:----------------------|
| :x: | Not implemented |
| :heavy_minus_sign: | Partially implemented |
| :heavy_check_mark: | Fully implemented |
_High Level API_
| Area | Complete | Comment |
|:-----------------|:------------------:|:--------|
| Authentication | :heavy_check_mark: | |
| Posts | :heavy_minus_sign: | |
| Tags | :heavy_minus_sign: | |
| Tag aliases | :x: | |
| Tag implications | :x: | |
| Notes | :x: | |
| Pools | :x: | |
| Users | :heavy_check_mark: | |
| Favorites | :heavy_minus_sign: | |
| DB export | :x: | |
2023-10-16 13:56:00 +00:00
_Mid Level API_
| Area | Get | Set |
|:-----------------|:------------------:|:----|
| Authentication | :heavy_check_mark: | |
| Posts | :heavy_check_mark: | |
| Tags | :heavy_check_mark: | |
| Tag aliases | :x: | |
| Tag implications | :x: | |
| Notes | :heavy_check_mark: | |
| Pools | :heavy_check_mark: | |
| Users | :heavy_check_mark: | |
| Favorites | :heavy_check_mark: | |
| DB export | :heavy_check_mark: |
2023-10-16 13:56:00 +00:00
_Low Level API_
| Area | Get | Set |
|:-----------------|:------------------:|:----|
| Authentication | :heavy_check_mark: | |
| Posts | :heavy_check_mark: | |
| Tags | :heavy_check_mark: | |
| Tag aliases | :x: | |
| Tag implications | :x: | |
| Notes | :heavy_check_mark: | |
| Pools | :heavy_check_mark: | |
| Users | :heavy_check_mark: | |
| Favorites | :heavy_check_mark: | |
| DB export | :heavy_check_mark: | |