diff bot/bot.go @ 10:5c124578fed2

fix timer bug
author Dennis C. M. <dennis@denniscm.com>
date Sat, 15 Mar 2025 17:03:53 +0000
parents e9df3bb010f4
children
line wrap: on
line diff
--- a/bot/bot.go	Thu Mar 13 18:27:25 2025 +0000
+++ b/bot/bot.go	Sat Mar 15 17:03:53 2025 +0000
@@ -1,15 +1,10 @@
 package bot
 
 import (
-	"fmt"
 	"log"
-	"os"
 	"strconv"
-	"time"
 )
 
-var quitTimer chan bool
-
 func HandleCmd(cmd []string) {
 	cmdReceived := cmd[0]
 	log.Printf("bot: %s command received", cmdReceived)
@@ -19,70 +14,9 @@
 		seconds, err := strconv.Atoi(cmd[1])
 
 		if err != nil {
-			log.Fatal("err: invalid command arguments")
-		}
-
-		if quitTimer != nil {
-			quitTimer <- true
-
+			log.Fatal("bot: invalid command arguments")
 		}
 
-		quitTimer = make(chan bool)
-
-		go func() {
-			filename := "F:/Media/Twitch/Bot/timer.txt"
-
-			file, err := os.Create(filename)
-
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			defer file.Close()
-
-			countdown := time.Duration(seconds) * time.Second
-			ticker := time.NewTicker(time.Second)
-			defer ticker.Stop()
-
-			log.Printf("bot: timer started with duration %d seconds", seconds)
-
-			for countdown > 0 {
-				select {
-				case <-ticker.C:
-					totalSeconds := int(countdown.Seconds())
-					minutes := totalSeconds / 60
-					seconds := totalSeconds % 60
-					countdownMsg := fmt.Sprintf("%02d:%02d", minutes, seconds)
-
-					file.Seek(0, 0)
-					_, err = file.WriteString("")
-
-					if err != nil {
-						log.Fatal(err)
-					}
-
-					_, err = file.WriteString(countdownMsg)
-
-					if err != nil {
-						log.Fatal(err)
-					}
-
-					log.Printf("bot: timer updated to %s", countdownMsg)
-
-					countdown -= time.Second
-				case <-quitTimer:
-					file.Seek(0, 0)
-					_, err = file.WriteString("")
-
-					if err != nil {
-						log.Fatal(err)
-					}
-
-					log.Println("bot: timer stopped")
-
-					return
-				}
-			}
-		}()
+		startTimer(seconds)
 	}
 }