twitchapon

[Twi]tch [Cha]nnel [Po]ints Rewards Redemption Listener
git clone git://bsandro.tech/twitchapon
Log | Files | Refs | README | LICENSE

commit babf667bf1cec983b7063cf3980c6bb572fafc26
parent 0318fab3ae8f5de494a248da2e1ea570e5a435f2
Author: bsandro <brian.drosan@gmail.com>
Date:   Mon, 16 Aug 2021 02:50:05 +0300

Added "sounds" to config file

Diffstat:
Mapp/app.go | 5+++++
Mconfig/config.go | 11+++++++++++
Minterfaces/iapp.go | 3++-
Ainterfaces/iconfig.go | 9+++++++++
Mtwitch/message.go | 3++-
5 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/app/app.go b/app/app.go @@ -2,6 +2,7 @@ package app import ( "bsandro.tech/git/twitchapon/config" + ifaces "bsandro.tech/git/twitchapon/interfaces" "bsandro.tech/git/twitchapon/localserver" "bsandro.tech/git/twitchapon/twitch" "github.com/andreykaipov/goobs" @@ -26,6 +27,10 @@ func NewApp() *TApp { return app } +func (app *TApp) GetConfig() ifaces.IConfig { + return &app.Config +} + func (app *TApp) GetAccessToken() string { return app.Auth.AccessToken } diff --git a/config/config.go b/config/config.go @@ -18,6 +18,7 @@ type TConfig struct { Port string `json:"port"` Password string `json:"password"` } `json:"obs"` + Sounds []string `json:"sounds"` } func (conf *TConfig) Init() error { @@ -62,4 +63,14 @@ func (conf *TConfig) InitSample() { conf.Obs.Host = "127.0.0.1" conf.Obs.Port = "4444" conf.Obs.Password = "xxxxxxxxx" + conf.Sounds = []string{"Sound Reward 1", "Sound Reward 2"} +} + +func (conf *TConfig) HasSound(title string) bool { + for _, sound := range conf.Sounds { + if sound == title { + return true + } + } + return false } diff --git a/interfaces/iapp.go b/interfaces/iapp.go @@ -1,4 +1,4 @@ -package twitchapon +package interfaces import ( "github.com/andreykaipov/goobs" @@ -17,4 +17,5 @@ type IApp interface { GetUserId() string GetConnection() *websocket.Conn GetObs() *goobs.Client + GetConfig() IConfig } diff --git a/interfaces/iconfig.go b/interfaces/iconfig.go @@ -0,0 +1,9 @@ +package interfaces + +type IConfig interface { + Init() error + IsInited() bool + Print() + InitSample() + HasSound(string) bool +} diff --git a/twitch/message.go b/twitch/message.go @@ -62,7 +62,8 @@ func ProcessMessage(app iface.IApp, msg *TMessage) { } else { if chanPointsMsg.MsgType == "reward-redeemed" { title := chanPointsMsg.Data.Redemption.Reward.Title - if title == "Tutturu!" || title == "Selamat Pagi!" { + + if app.GetConfig().HasSound(title) { fmt.Printf("playing sound %s\n", title) _, _ = app.GetObs().MediaControl.RestartMedia(&mediacontrol.RestartMediaParams{SourceName: title}) }