summaryrefslogtreecommitdiff
path: root/internal/channel.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/channel.go')
-rw-r--r--internal/channel.go36
1 files changed, 29 insertions, 7 deletions
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 {