annotate bot/timer.go @ 11:6d91c612310a

add some permissions
author Dennis C. M. <dennis@denniscm.com>
date Sat, 15 Mar 2025 17:08:03 +0000
parents 5c124578fed2
children aaf85ae1f942
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 package bot
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 import (
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 "fmt"
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 "log"
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 "os"
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7 "time"
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 )
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 var quit chan struct{}
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 func startTimer(seconds int) {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 if quit != nil {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 close(quit)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 }
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 quit = make(chan struct{})
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 go func() {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 filename := "F:/Media/Twitch/Bot/timer.txt"
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 file, err := os.Create(filename)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 if err != nil {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 log.Fatal(err)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 }
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 defer file.Close()
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 countdown := time.Duration(seconds) * time.Second
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 ticker := time.NewTicker(time.Second)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 defer ticker.Stop()
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 log.Printf("bot: timer started with duration %d seconds", seconds)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 for countdown >= 0 {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 select {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 case <-ticker.C:
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 totalSeconds := int(countdown.Seconds())
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
38 minutes := totalSeconds / 60
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39 seconds := totalSeconds % 60
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 countdownMsg := fmt.Sprintf("%02d:%02d", minutes, seconds)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
42 file.Seek(0, 0)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
43 _, err = file.WriteString("")
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
44
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
45 if err != nil {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
46 log.Fatal(err)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
47 }
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
48
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
49 _, err = file.WriteString(countdownMsg)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
50
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
51 if err != nil {
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
52 log.Fatal(err)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
53 }
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
54
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
55 log.Printf("bot: timer updated to %s", countdownMsg)
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
56
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
57 countdown -= time.Second
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
58 case <-quit:
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
59 log.Println("bot: timer stopped")
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
60
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
61 return
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
62 }
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
63 }
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
64 }()
5c124578fed2 fix timer bug
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
65 }