/
index.go
147 lines (130 loc) · 2.69 KB
/
index.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package main
import (
"encoding/gob"
"log"
"sync"
"time"
"github.com/khades/servbot/bot"
"github.com/khades/servbot/eventbus"
"github.com/khades/servbot/httpbackend"
"github.com/khades/servbot/models"
"github.com/khades/servbot/repos"
"github.com/khades/servbot/services"
)
func main() {
var wg sync.WaitGroup
result, resultError := repos.GetUsersID(&repos.Config.Channels)
if resultError != nil {
log.Printf("INITIALISATION ERROR: ", resultError)
return
}
for _, value := range *result {
repos.PushCommandsForChannel(&value)
}
repos.CreateChannels()
wg.Add(1)
go func() {
services.CheckTwitchDJTrack()
services.CheckStreamStatus()
// services.CheckDubTrack()
}()
gob.Register(&models.HTTPSession{})
log.Println("Starting...")
ircClientTicker := time.NewTicker(time.Second * 3)
go func(wg *sync.WaitGroup) {
for {
wg.Add(1)
<-ircClientTicker.C
bot.IrcClientInstance.SendMessages(3)
wg.Done()
}
}(&wg)
modTicker := time.NewTicker(time.Second * 30)
go func(wg *sync.WaitGroup) {
for {
<-modTicker.C
wg.Add(1)
bot.IrcClientInstance.SendModsCommand()
services.SendAutoMessages()
wg.Done()
}
}(&wg)
thirtyTicker := time.NewTicker(time.Second * 30)
go func(wg *sync.WaitGroup) {
for {
<-thirtyTicker.C
wg.Add(1)
services.CheckTwitchDJTrack()
wg.Done()
}
}(&wg)
subTrainNotificationTicker := time.NewTicker(time.Second * 5)
go func(wg *sync.WaitGroup) {
for {
<-subTrainNotificationTicker.C
wg.Add(1)
services.SendSubTrainNotification()
wg.Done()
}
}(&wg)
subTrainTimeoutTicker := time.NewTicker(time.Second * 5)
go func(wg *sync.WaitGroup) {
for {
<-subTrainTimeoutTicker.C
wg.Add(1)
services.SendSubTrainTimeoutMessage()
wg.Done()
}
}(&wg)
// go func(wg *sync.WaitGroup) {
// for {
// <-thirtyTicker.C
// wg.Add(1)
// services.CheckDubTrack()
// wg.Done()
// }
// }(&wg)
twentyticker := time.NewTicker(time.Second * 30)
go func() {
for {
<-twentyticker.C
eventbus.EventBus.Publish("ping", "ping")
}
}()
vkTimer := time.NewTicker(time.Second * 60)
go func() {
for {
<-vkTimer.C
services.CheckVK()
}
}()
minuteTicker := time.NewTicker(time.Minute)
go func(wg *sync.WaitGroup) {
for {
<-minuteTicker.C
wg.Add(1)
services.CheckStreamStatus()
wg.Done()
}
}(&wg)
go func(wg *sync.WaitGroup) {
httpbackend.Start()
wg.Done()
}(&wg)
followerTicker := time.NewTicker(time.Second * 30)
go func(wg *sync.WaitGroup) {
for {
<-followerTicker.C
wg.Add(1)
services.CheckChannelsFollowers()
wg.Done()
}
}(&wg)
go func(wg *sync.WaitGroup) {
bot.Start()
wg.Done()
}(&wg)
wg.Wait()
log.Println("Quitting...")
// Kseyko = PIDR
}