From cad4942e66314874b8665188fa15b41fd49b1c78 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sun, 7 Sep 2025 15:45:46 +0200 Subject: [PATCH] feat(chat): add test mode --- cmd/server/server.go | 11 +++++++++++ config.ini.example | 4 ++++ internal/store/test_message.go | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 internal/store/test_message.go diff --git a/cmd/server/server.go b/cmd/server/server.go index 9fcb48f..69fa0fd 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -7,6 +7,7 @@ import ( "log" "net/http" "text/template" + "time" rice "github.com/GeertJohan/go.rice" "github.com/go-playground/validator" @@ -14,6 +15,7 @@ import ( "github.com/labstack/echo/v4/middleware" "gitnet.fr/deblan/owncast-webhook/internal/client/twitch" "gitnet.fr/deblan/owncast-webhook/internal/config" + "gitnet.fr/deblan/owncast-webhook/internal/store" "gitnet.fr/deblan/owncast-webhook/internal/web/router" ) @@ -43,6 +45,15 @@ func main() { e.Use(middleware.Logger()) router.RegisterControllers(e) + if conf.Test.Enable { + go func() { + for { + store.GetMessageStore().Add(store.TestMessage{}) + time.Sleep(1 * time.Second) + } + }() + } + if conf.Twitch.Enable { twitch.IrcClient() } diff --git a/config.ini.example b/config.ini.example index 9be2b6d..7885e57 100644 --- a/config.ini.example +++ b/config.ini.example @@ -10,3 +10,7 @@ base_url = "https://live.example.com" [twitch] enable = false channel = "username" + +; Add fake messages to test +[test] +enable = false diff --git a/internal/store/test_message.go b/internal/store/test_message.go new file mode 100644 index 0000000..8b66af0 --- /dev/null +++ b/internal/store/test_message.go @@ -0,0 +1,32 @@ +package store + +import ( + "fmt" + "math/rand" + + "github.com/gempir/go-twitch-irc/v4" +) + +type TestMessage struct { + Message twitch.PrivateMessage +} + +func (o TestMessage) ID() string { + return fmt.Sprintf("%f", rand.Float64()) +} + +func (o TestMessage) Visible() bool { + return true +} + +func (o TestMessage) Origin() MessageOrigin { + return MessageOriginTest +} + +func (o TestMessage) Author() string { + return fmt.Sprintf("%f", rand.Float64()) +} + +func (o TestMessage) Content() string { + return fmt.Sprintf("%f", rand.Float64()) +}