package main import ( "log" "slices" "github.com/gempir/go-twitch-irc" stats "ilotterytea/tinystats/internal" _ "github.com/go-sql-driver/mysql" ) func main() { channels := []stats.Channel{} db, err := stats.NewDatabaseConnection("mysql", "kochan:kochan@/stats") if err != nil { log.Panicf("Failed to establish a database connection: %v\n", err) } defer db.Close() client := twitch.NewClient("justinfan65432", "12345") client.OnConnect(func() { log.Println("Connected to Twitch IRC!") }) client.OnNewMessage(func(channel string, user twitch.User, message twitch.Message) { i := slices.IndexFunc(channels, func(c stats.Channel) bool { return c.Name() == channel }) if i >= 0 { go channels[i].HandleMessageEvent(user, message) } }) go stats.JoinChannels(&channels, client, db) if err := client.Connect(); err != nil { log.Panicf("Failed to connect Twitch IRC: %v\n", err) } }