From 8b9188b2c0ac192150201c511944d68862275f69 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Tue, 14 Oct 2025 22:34:59 +0500 Subject: feat: get bttv emotes --- internal/channel.go | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) (limited to 'internal/channel.go') diff --git a/internal/channel.go b/internal/channel.go index c6100c5..da051ac 100644 --- a/internal/channel.go +++ b/internal/channel.go @@ -9,20 +9,42 @@ import ( ) type Channel struct { - id string - name string + id string + name string + emotes map[string][]Emote + db *DatabaseConnection } -func NewChannel(id string, name string) Channel { +func NewChannel(id string, name string, db *DatabaseConnection) Channel { c := Channel{ - id: id, - name: name, + id: id, + name: name, + emotes: make(map[string][]Emote), + db: db, } + go func() { + if err := c.updateEmotes(); err != nil { + log.Fatalf("Failed to update emotes: %v\n", err) + } + }() + return c } -func (c *Channel) HandleMessageEvent(sender twitch.User, message twitch.Message, db *DatabaseConnection) { +func (c *Channel) updateEmotes() (err error) { + log.Printf("Fetching BetterTTV emotes for ID %s...\n", c.id) + emotes, err := GetBetterTTVEmotes(c.id) + c.emotes["betterttv"] = emotes + + for _, e := range emotes { + c.db.Exec("INSERT IGNORE INTO emotes(platform, platform_id) VALUES (?, ?)", e.Id, "betterttv") + } + + return +} + +func (c *Channel) HandleMessageEvent(sender twitch.User, message twitch.Message) { } func JoinChannels(channels *[]Channel, client *twitch.Client, db *DatabaseConnection) { @@ -38,7 +60,7 @@ func JoinChannels(channels *[]Channel, client *twitch.Client, db *DatabaseConnec log.Printf("Joining #%s...\n", c["alias_name"]) client.Join(c["alias_name"]) - *channels = append(*channels, NewChannel(c["alias_id"], c["alias_name"])) + *channels = append(*channels, NewChannel(c["alias_id"], c["alias_name"], db)) } for _, c := range *channels { -- cgit v1.2.3