annotate event/events.go @ 8:e9df3bb010f4

fix issues
author Dennis C. M. <dennis@denniscm.com>
date Thu, 13 Mar 2025 17:41:42 +0000
parents cmd/events.go@4deabe76bd7f
children aaf85ae1f942
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
1 package event
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 import (
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 "bytes"
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 "encoding/json"
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 "log"
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7 "net/http"
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 "net/url"
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
9
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
10 "github.com/denniscmcom/pacobot/auth"
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 )
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
13 func ChannelChatMsgSub(authToken, session_id string) {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
14 config := auth.ReadConfig()
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
16 data := map[string]any{
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 "type": "channel.chat.message",
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 "version": "1",
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 "condition": map[string]string{
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 "broadcaster_user_id": config.BroadcasterUserId,
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 "user_id": config.BroadcasterUserId,
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 },
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 "transport": map[string]string{
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 "method": "websocket",
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 "session_id": session_id,
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 },
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 }
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 jsonData, err := json.Marshal(data)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 if err != nil {
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 log.Fatal(err)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 }
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
35 log.Printf("event: subscribing to %s", data["type"])
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 eventSub(authToken, jsonData)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 }
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
38
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39 func eventSub(authToken string, subData []byte) {
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 baseUrl := &url.URL{
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41 Scheme: "https",
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
42 Host: "api.twitch.tv",
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
43 Path: "helix/eventsub/subscriptions",
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
44 }
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
45
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
46 req, err := http.NewRequest("POST", baseUrl.String(), bytes.NewBuffer(subData))
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
47
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
48 if err != nil {
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
49 log.Fatal(err)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
50 }
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
51
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
52 config := auth.ReadConfig()
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
53
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
54 req.Header.Set("Authorization", "Bearer "+authToken)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
55 req.Header.Set("Client-Id", config.ClientId)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
56 req.Header.Set("Content-Type", "application/json")
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
57
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
58 client := &http.Client{}
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
59 res, err := client.Do(req)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
60
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
61 if err != nil {
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
62 log.Fatal(err)
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
63 }
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
64
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
65 log.Printf("status code: %d", res.StatusCode)
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
66
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
67 if res.StatusCode != 202 {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
68 log.Fatal("event: failed to subscribe to event")
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
69 }
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
70
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
71 log.Println("event: subscribed")
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
72
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
73 defer res.Body.Close()
6
4deabe76bd7f cmd: add CMD package
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
74 }