V2 #2
60
README.md
60
README.md
@ -1,6 +1,6 @@
|
|||||||
# Anthrove Plug SDK
|
# Anthrove Plug SDK
|
||||||
|
|
||||||
Anthrove Plug SDK is a Golang-based Software Development Kit (SDK) that provides a gRPC server implementation for the Anthrove system. This SDK enables users to easily set up a server, establish a graph database connection, and set a task execution function.
|
Anthrove Plug SDK is a Golang-based Software Development Kit (SDK) that provides a gRPC server implementation for the Anthrove system. This SDK enables users to easily set up a server, establish a database connection, and set a task execution function.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
@ -14,40 +14,36 @@ go get git.dragse.it/anthrove/plug-sdk
|
|||||||
Below is a basic example of how to use the SDK:
|
Below is a basic example of how to use the SDK:
|
||||||
|
|
||||||
````go
|
````go
|
||||||
package main
|
import "git.dragse.it/anthrove/plug-sdk/v2/pkg/plug"
|
||||||
|
|
||||||
import (
|
// Define what Source this Plug is used for
|
||||||
"context"
|
source := models.Source{
|
||||||
"git.dragse.it/anthrove/plug-sdk/pkg/otter"
|
DisplayName: "e621",
|
||||||
"log"
|
Domain: "e621.net",
|
||||||
"net"
|
Icon: "e621.net/icon.png",
|
||||||
"git.dragse.it/anthrove/otter-space-sdk/pkg/graph"
|
|
||||||
"git.dragse.it/anthrove/otter-space-sdk/pkg/models"
|
|
||||||
"git.dragse.it/anthrove/plug-sdk/pkg/plug"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
var ctx context.Context
|
|
||||||
|
|
||||||
// Initialize a new server
|
|
||||||
server := plug.NewServer(ctx, "localhost", "8080")
|
|
||||||
|
|
||||||
graph := otter.ConnectToDatabase(ctx, "endpoint", "username", "password", false)
|
|
||||||
|
|
||||||
// Set the graph database connection
|
|
||||||
server.WithGraphConnection(graph)
|
|
||||||
|
|
||||||
// Set the task execution function
|
|
||||||
server.TaskExecutionFunction(taskExecution)
|
|
||||||
|
|
||||||
// Listen for connections
|
|
||||||
if err := server.Listen(); err != nil {
|
|
||||||
log.Fatalf("Failed to listen: %v", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func taskExecution(ctx context.Context, graph graph.OtterSpace, sourceUsername string, anthroveUser models.AnthroveUser, deepScrape bool, cancelFunction func()) error {
|
// Create a new Plug instance
|
||||||
// SOME EXECUTION MAGIC
|
p := plug.NewPlug(ctx, "localhost", "50051", source)
|
||||||
|
|
||||||
|
// Set the OtterSpace database
|
||||||
|
p.WithOtterSpace(database)
|
||||||
|
|
||||||
|
// Set the task execution function
|
||||||
|
p.TaskExecutionFunction(func(ctx context.Context, database database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, apiKey string, cancelFunction func()) error {
|
||||||
|
// Your task execution logic here
|
||||||
|
})
|
||||||
|
|
||||||
|
// Set the send message execution function
|
||||||
|
p.SendMessageExecution(func(ctx context.Context, userSourceID string, message string) error {
|
||||||
|
// Your message sending logic here
|
||||||
|
})
|
||||||
|
|
||||||
|
// Start the server
|
||||||
|
err := p.Listen()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Failed to start server: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
````
|
````
|
||||||
|
Reference in New Issue
Block a user