bingobot/main.go

64 lines
1.1 KiB
Go
Raw Normal View History

2024-11-06 11:34:45 -08:00
package main
import (
"flag"
"log"
"os"
"os/signal"
"github.com/bwmarrin/discordgo"
)
var (
Token = flag.String("token", "", "Bot authentication token")
App = flag.String("app", "", "Application ID")
Guild = flag.String("guild", "", "Guild ID") // Do we want it to be tied to one server?
)
func main() {
flag.Parse()
if *App == "" {
log.Fatal("application id is not set")
}
2024-11-06 13:32:37 -08:00
err := parseConfigs()
if err != nil {
log.Fatal(err)
}
2024-11-06 14:19:45 -08:00
initLogger()
err = startBot()
if err != nil {
log.Fatal(err)
}
2024-11-06 11:34:45 -08:00
}
2024-11-06 14:19:45 -08:00
func startBot() error {
2024-11-06 11:34:45 -08:00
session, _ := discordgo.New("Bot " + *Token)
err := session.Open()
if err != nil {
2024-11-06 14:19:45 -08:00
Log.Error("could not open discord session", "type", "error", "error", err)
return err
2024-11-06 11:34:45 -08:00
}
2024-11-06 14:19:45 -08:00
Log.Info("shutting down gracefully", "type", "shutdown")
2024-11-06 11:34:45 -08:00
sigch := make(chan os.Signal, 1)
signal.Notify(sigch, os.Interrupt)
<-sigch
2024-11-06 14:19:45 -08:00
Log.Info("shutting down gracefully", "type", "shutdown")
2024-11-06 11:34:45 -08:00
err = session.Close()
if err != nil {
2024-11-06 14:19:45 -08:00
Log.Error("could not close discord session gracefully", "type", "error", "error", err)
return err
2024-11-06 11:34:45 -08:00
}
2024-11-06 14:19:45 -08:00
return nil
2024-11-06 11:34:45 -08:00
}