matrix-gpt-bot/main.go
2025-05-09 04:43:15 +00:00

45 lines
874 B
Go

package main
import (
"log"
"os"
"os/signal"
"syscall"
"matrix-gpt-bot/bot"
"matrix-gpt-bot/config"
mautrix "maunium.net/go/mautrix"
"maunium.net/go/mautrix/id"
)
func main() {
// Load configuration
cfg := config.Load()
// Initialize Matrix client
client, err := mautrix.NewClient(cfg.Homeserver, id.UserID(cfg.BotUserID), cfg.AccessToken)
if err != nil {
log.Fatalf("Failed to create Matrix client: %v", err)
}
// Register the GPT message handler
bot.RegisterHandler(client)
log.Println("Matrix GPT bot started. Press CTRL+C to exit.")
// Start syncing in a background goroutine
go func() {
if err := client.Sync(); err != nil {
log.Fatalf("Sync failed: %v", err)
}
}()
// Wait for termination signal
stop := make(chan os.Signal, 1)
signal.Notify(stop, syscall.SIGINT, syscall.SIGTERM)
<-stop
log.Println("Shutting down bot.")
}