main.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "time"
  6. "github.com/joho/godotenv"
  7. "github.com/nicklaw5/helix"
  8. "github.com/zveinn/twitch-bot/mongowrapper"
  9. )
  10. var (
  11. monitor = make(chan int, 100)
  12. MAIN_CLIENT *IRC_CLIENT
  13. HELIX_CLIENT *helix.Client
  14. )
  15. var (
  16. TextCommands = make(map[string]string)
  17. MP3Map = make(map[string]string)
  18. EmoteMap = make(map[string]helix.Emote)
  19. )
  20. var TWITCH_CLIENT = new(IRC_CLIENT)
  21. func main() {
  22. err := godotenv.Load()
  23. if err != nil {
  24. log.Fatal("Error loading .env file")
  25. }
  26. err = mongowrapper.Connect(os.Getenv("DB"))
  27. if err != nil {
  28. log.Fatal(err)
  29. os.Exit(1)
  30. }
  31. mongowrapper.InitCollections()
  32. InitTwitchClient()
  33. InitCommands()
  34. InitMP3Map()
  35. RenewTokens()
  36. CreateAPIClient()
  37. GetGlobalEmotes()
  38. TWITCH_CLIENT.GetAllChannelEmotes()
  39. go RenewTokensLoop()
  40. go TWITCH_CLIENT.Connect()
  41. for {
  42. select {
  43. case ID := <-monitor:
  44. log.Println("ID RETURNED: ", ID)
  45. if ID == 10 {
  46. TWITCH_CLIENT.Connect()
  47. } else if ID == 7 {
  48. go RenewTokensLoop()
  49. }
  50. default:
  51. time.Sleep(500 * time.Millisecond)
  52. }
  53. }
  54. }