summaryrefslogtreecommitdiff
path: root/app/cmd/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'app/cmd/main.go')
-rw-r--r--app/cmd/main.go55
1 files changed, 38 insertions, 17 deletions
diff --git a/app/cmd/main.go b/app/cmd/main.go
index 14980b7..87212ef 100644
--- a/app/cmd/main.go
+++ b/app/cmd/main.go
@@ -2,7 +2,6 @@ package main
import (
"encoding/json"
- "fmt"
"log"
"net/http"
"os"
@@ -10,6 +9,7 @@ import (
"syscall"
"github.com/ketsuna-org/bot-creator-api/internal"
+ zmq "github.com/pebbe/zmq4"
)
func init() {
@@ -23,18 +23,33 @@ func main() {
mux.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, World!"))
})
- botId := "xxxxx"
- botToken := "xxxxx"
+ botToken := "XXXXXXXXXXXX" // Replace with your bot token
+
+ ctx, err := zmq.NewContext()
+ if err != nil {
+ log.Fatalf("[SERVER] Failed to create context: %v", err)
+ }
+ defer ctx.Term()
+
+ dealer, err := ctx.NewSocket(zmq.REP)
+ if err != nil {
+ log.Fatalf("[SERVER] Failed to create dealer: %v", err)
+ }
+ defer dealer.Close()
+
+ err = dealer.Bind("tcp://*:5555")
+ if err != nil {
+ log.Fatalf("[SERVER] Failed to bind dealer: %v", err)
+ }
bot := &internal.Bot{
- BotID: botId,
BotToken: botToken,
}
- conn, err := internal.Start(bot)
+
+ bot, err = internal.Start(bot, dealer)
if err != nil {
- log.Fatalf("Error starting bot: %v", err)
+ log.Fatalf("[SERVER] Error starting bot: %v", err)
}
- defer conn.Close()
// Handle the bot connection
data, err := json.Marshal(map[string]interface{}{
"command": "update",
@@ -45,10 +60,22 @@ func main() {
},
})
if err != nil {
- log.Fatalf("Error marshaling JSON: %v", err)
+ log.Fatalf("[SERVER] Error marshaling JSON: %v", err)
}
- conn.Write(data)
+ go bot.SendMessage(string(data))
+ dataX, err := json.Marshal(map[string]interface{}{
+ "command": "update",
+ "data": map[string]interface{}{
+ "ping": map[string]string{
+ "response": "pong ((userName)) avec une modif !",
+ },
+ },
+ })
+ if err != nil {
+ log.Fatalf("[SERVER] Error marshaling JSON: %v", err)
+ }
+ go bot.SendMessage(string(dataX))
// Handle if signal is received
signals := make(chan os.Signal, 1)
@@ -60,18 +87,12 @@ func main() {
// let's kill the bot
if bot.Cmd != nil {
if err := bot.Cmd.Process.Kill(); err != nil {
- log.Printf("Error killing bot process: %v", err)
+ log.Printf("[SERVER] Error killing bot process: %v", err)
} else {
- log.Printf("Bot process killed successfully")
+ log.Printf("[SERVER] Bot process killed successfully")
}
}
// let's remove the socket
- socketPath := fmt.Sprintf("/tmp/%s.sock", bot.BotID)
- if err := os.RemoveAll(socketPath); err != nil {
- log.Printf("Error removing socket: %v", err)
- } else {
- log.Printf("Socket removed successfully")
- }
os.Exit(0)
}()
panic(http.ListenAndServe(":2030", mux))