From 4975bcfb6084d3f50f75e468adf8ca3557bec305 Mon Sep 17 00:00:00 2001 From: Khinshan Khan Date: Sat, 29 Mar 2025 08:32:13 -0400 Subject: [PATCH] reorganize the code and add in comments --- cmd/bot/main.go | 80 +++++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 39 deletions(-) diff --git a/cmd/bot/main.go b/cmd/bot/main.go index e0db7ae..a378c07 100644 --- a/cmd/bot/main.go +++ b/cmd/bot/main.go @@ -25,26 +25,63 @@ var praisesFile embed.FS var conspiraciesFile embed.FS var ( + // messages sourced from the embedded files praises []string conspiracies []string + // internally track which messages have been sent praiseIndex int conspiracyIndex int ) +// Settings for bot sourced from env variables var ( botToken string channelID string -) -var ( SendMessageIntervalMin int SendMessageIntervalMax int SendMessageUnit time.Duration - DeleteConspiracyDelay time.Duration - ConspiracyProbability float64 + + DeleteConspiracyDelay time.Duration + ConspiracyProbability float64 ) +func main() { + if err := loadEnvConfig(); err != nil { + log.Fatalf("[x] Failed to load configuration: %v", err) + } + + // Load messages at build time + if err := loadMessages(); err != nil { + log.Fatalf("[x] Error loading messages: %v", err) + } + + // Initialize bot session + dg, err := discordgo.New("Bot " + botToken) + if err != nil { + log.Fatalf("[x] Error creating Discord session: %v", err) + } + + // Open WebSocket connection + dg.AddHandler(readyHandler) + if err := dg.Open(); err != nil { + log.Fatalf("[x] Error opening connection: %v", err) + } + defer dg.Close() + + // Start the message scheduler + go startScheduler(dg, channelID) + + // Graceful shutdown handling + log.Println("[✓] Swiftspiracy Bot is now running. Press CTRL+C to exit.") + sc := make(chan os.Signal, 1) + signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt) + <-sc + + log.Println("[↓] Shutting down bot gracefully...") +} + func loadEnvConfig() error { if err := godotenv.Load(); err != nil { log.Println("[!] No .env file found, using system environment variables.") @@ -94,41 +131,6 @@ func loadEnvConfig() error { return nil } -func main() { - if err := loadEnvConfig(); err != nil { - log.Fatalf("[x] Failed to load configuration: %v", err) - } - - // Load messages at build time - if err := loadMessages(); err != nil { - log.Fatalf("[x] Error loading messages: %v", err) - } - - // Initialize bot session - dg, err := discordgo.New("Bot " + botToken) - if err != nil { - log.Fatalf("[x] Error creating Discord session: %v", err) - } - - // Open WebSocket connection - dg.AddHandler(readyHandler) - if err := dg.Open(); err != nil { - log.Fatalf("[x] Error opening connection: %v", err) - } - defer dg.Close() - - // Start the message scheduler - go startScheduler(dg, channelID) - - // Graceful shutdown handling - log.Println("[✓] Swiftspiracy Bot is now running. Press CTRL+C to exit.") - sc := make(chan os.Signal, 1) - signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt) - <-sc - - log.Println("[↓] Shutting down bot gracefully...") -} - // loadMessages loads JSON files into memory at build time func loadMessages() error { var err error