annotate bot/bot.go @ 8:e9df3bb010f4

fix issues
author Dennis C. M. <dennis@denniscm.com>
date Thu, 13 Mar 2025 17:41:42 +0000
parents
children 5c124578fed2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 package bot
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 import (
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 "fmt"
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 "log"
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 "os"
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7 "strconv"
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 "time"
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9 )
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 var quitTimer chan bool
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 func HandleCmd(cmd []string) {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 cmdReceived := cmd[0]
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 log.Printf("bot: %s command received", cmdReceived)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 switch cmdReceived {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 case "timer":
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 seconds, err := strconv.Atoi(cmd[1])
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 if err != nil {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 log.Fatal("err: invalid command arguments")
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 if quitTimer != nil {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 quitTimer <- true
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 quitTimer = make(chan bool)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 go func() {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 filename := "F:/Media/Twitch/Bot/timer.txt"
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 file, err := os.Create(filename)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 if err != nil {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
38 log.Fatal(err)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41 defer file.Close()
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
42
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
43 countdown := time.Duration(seconds) * time.Second
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
44 ticker := time.NewTicker(time.Second)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
45 defer ticker.Stop()
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
46
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
47 log.Printf("bot: timer started with duration %d seconds", seconds)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
48
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
49 for countdown > 0 {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
50 select {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
51 case <-ticker.C:
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
52 totalSeconds := int(countdown.Seconds())
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
53 minutes := totalSeconds / 60
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
54 seconds := totalSeconds % 60
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
55 countdownMsg := fmt.Sprintf("%02d:%02d", minutes, seconds)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
56
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
57 file.Seek(0, 0)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
58 _, err = file.WriteString("")
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
59
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
60 if err != nil {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
61 log.Fatal(err)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
62 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
63
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
64 _, err = file.WriteString(countdownMsg)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
65
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
66 if err != nil {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
67 log.Fatal(err)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
68 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
69
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
70 log.Printf("bot: timer updated to %s", countdownMsg)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
71
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
72 countdown -= time.Second
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
73 case <-quitTimer:
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
74 file.Seek(0, 0)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
75 _, err = file.WriteString("")
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
76
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
77 if err != nil {
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
78 log.Fatal(err)
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
79 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
80
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
81 log.Println("bot: timer stopped")
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
82
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
83 return
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
84 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
85 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
86 }()
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
87 }
e9df3bb010f4 fix issues
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
88 }