47 lines
1.1 KiB
Go
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
|
|
}
|