diff options
| author | soler_j <soler_j@etna-alternance.net> | 2025-04-29 03:07:48 +0200 |
|---|---|---|
| committer | soler_j <soler_j@etna-alternance.net> | 2025-04-29 03:07:48 +0200 |
| commit | 2a58d43c3b820eb8ffec01bb51905146a7278533 (patch) | |
| tree | d05b0b815aee8520ae1375b69a503511f7b260fa /app/cmd/main.go | |
| parent | 0c53f3e452830b300c598c9370946ae54f443a78 (diff) | |
Ajout de la prise en charge de ZeroMQ dans le bot, mise à jour des dépendances et réorganisation du Dockerfile. Suppression de l'implémentation de serveur Unix obsolète et amélioration de la gestion des messages.
Diffstat (limited to 'app/cmd/main.go')
| -rw-r--r-- | app/cmd/main.go | 55 |
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)) |
