Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Codester241
GitHub Repository: Codester241/Kahoot-Flood
Path: blob/master/kahoot/subscription.go
463 views
1
package kahoot
2
3
import "errors"
4
5
func (c *Connection) Subscribe(channels ...string) error {
6
for _, ch := range channels {
7
content := map[string]interface{}{"subscription": ch,
8
"clientId": c.clientId}
9
pack := c.Packet("/meta/subscribe", content)
10
if err := c.Write(pack); err != nil {
11
return err
12
}
13
res, err := c.ReadId(pack.Id)
14
if err != nil {
15
return err
16
}
17
// Check the 'success' field
18
success, ok := res.Content["successful"].(bool)
19
if !ok || !success {
20
return errors.New("Negative 'successful' field for channel: " + ch)
21
}
22
}
23
return nil
24
}
25
26
func (c *Connection) Unsubscribe(channels ...string) error {
27
for _, ch := range channels {
28
content := map[string]interface{}{"subscription": ch,
29
"clientId": c.clientId}
30
pack := c.Packet("/meta/unsubscribe", content)
31
if err := c.Write(pack); err != nil {
32
return err
33
}
34
res, err := c.ReadId(pack.Id)
35
if err != nil {
36
return err
37
}
38
// Check the 'success' field
39
success, ok := res.Content["successful"].(bool)
40
if !ok || !success {
41
return errors.New("Negative 'successful' field for channel: " + ch)
42
}
43
}
44
return nil
45
}
46
47