Create discord package and connect/disconnect handlers

This change moves the discord session singleton to the internal/discord
package, and implements basic Connect/Disconnect handlers.
This commit is contained in:
Piper Pentagram 2024-11-08 16:26:05 -08:00
parent 5e4662c8b0
commit bbcf6ef6cf
5 changed files with 93 additions and 24 deletions

23
main.go
View file

@ -6,25 +6,19 @@ import (
"os"
"os/signal"
"github.com/bwmarrin/discordgo"
"gitlab.com/whom/bingobot/internal/config"
"gitlab.com/whom/bingobot/internal/discord"
"gitlab.com/whom/bingobot/internal/logging"
"gitlab.com/whom/bingobot/internal/state"
)
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?
token = flag.String("token", "", "Bot authentication token")
appConfig *config.AppConfig
)
func main() {
flag.Parse()
if *App == "" {
log.Fatal("application id is not set")
}
var err error
@ -44,27 +38,18 @@ func main() {
}
func startBot() error {
state.DiscordSession, _ = discordgo.New("Bot " + *Token)
err := discord.Connect(*token)
err := state.DiscordSession.Open()
if err != nil {
logging.Error("could not open discord session", "type", "error", "error", err)
return err
}
logging.Info("shutting down gracefully", "type", "shutdown")
sigch := make(chan os.Signal, 1)
signal.Notify(sigch, os.Interrupt)
<-sigch
logging.Info("shutting down gracefully", "type", "shutdown")
err = state.DiscordSession.Close()
if err != nil {
logging.Error("could not close discord session gracefully", "type", "error", "error", err)
return err
}
discord.Close()
return nil
}