Files
twitch-fish-bot/internal/config/config.go
Kevin Thompson c7b9e661f5 first commit
2025-06-13 19:43:16 -05:00

47 lines
1.1 KiB
Go

package config
import (
"log"
"strings"
)
type Config struct {
Username string
OAuth string
ClientID string
Channel string
}
func Load() *Config {
// TODO: Replace these with your actual values
cfg := &Config{
Username: "", // Your Twitch bot username
OAuth: "", // Get from https://twitchtokengenerator.com/
ClientID: "", // Get from https://twitchtokengenerator.com/ (new field)
Channel: "", // Channel to join (without #)
}
// Validate configuration
if cfg.Username == "" {
log.Fatal("Username cannot be empty")
}
if cfg.OAuth == "" {
log.Fatal("OAuth token cannot be empty")
}
if cfg.ClientID == "" {
log.Fatal("Client ID cannot be empty - required for Helix API calls as of May 1st")
}
if cfg.Channel == "" {
log.Fatal("Channel cannot be empty")
}
// Ensure OAuth token has proper format for IRC
if !strings.HasPrefix(cfg.OAuth, "oauth:") {
cfg.OAuth = "oauth:" + cfg.OAuth
}
log.Printf("Loaded config for user: %s, channel: #%s", cfg.Username, cfg.Channel)
log.Printf("Client ID configured: %s", cfg.ClientID[:8]+"...") // Only show first 8 chars for security
return cfg
}