From f2153bf0b4b2fa8a103b6f039d5318d5668be56b Mon Sep 17 00:00:00 2001 From: Chris Sexton <3216719+chrissexton@users.noreply.github.com> Date: Fri, 29 Sep 2023 10:58:43 -0400 Subject: [PATCH] counter: maybe finish this feature --- plugins/counter/api.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/counter/api.go b/plugins/counter/api.go index ed7706d..fac0ce9 100644 --- a/plugins/counter/api.go +++ b/plugins/counter/api.go @@ -86,9 +86,9 @@ func (p *CounterPlugin) mkIncrementByNAPI(direction int) func(w http.ResponseWri personalMsg = fmt.Sprintf("\nMessage: %s", inputMsg) } - //chs := p.cfg.GetArray("channels", []string{p.cfg.Get("channels", "none")}) chs := p.cfg.GetMap("counter.channelItems", map[string]string{}) - if len(chs) == 0 { + ch, ok := chs[itemName] + if len(chs) == 0 || !ok { return } req := &bot.Request{ @@ -98,7 +98,7 @@ func (p *CounterPlugin) mkIncrementByNAPI(direction int) func(w http.ResponseWri User: &u, // Noting here that we're only going to do goals in a "default" // channel even if it should send updates to others. - Channel: chs[itemName], + Channel: ch, Body: fmt.Sprintf("%s += %d", itemName, delta), Time: time.Now(), }, @@ -119,8 +119,8 @@ func (p *CounterPlugin) mkIncrementByNAPI(direction int) func(w http.ResponseWri func (p *CounterPlugin) mkIncrementAPI(delta int) func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) { - userName := chi.URLParam(r, "user") - itemName := chi.URLParam(r, "item") + userName, _ := url.QueryUnescape(chi.URLParam(r, "user")) + itemName, _ := url.QueryUnescape(chi.URLParam(r, "item")) secret, pass, ok := r.BasicAuth() if !ok || !p.b.CheckPassword(secret, pass) { @@ -164,7 +164,11 @@ func (p *CounterPlugin) mkIncrementAPI(delta int) func(w http.ResponseWriter, r personalMsg = fmt.Sprintf("\nMessage: %s", inputMsg) } - chs := p.cfg.GetArray("channels", []string{p.cfg.Get("channels", "none")}) + chs := p.cfg.GetMap("counter.channelItems", map[string]string{}) + ch, ok := chs[itemName] + if len(chs) == 0 || !ok { + return + } req := &bot.Request{ Conn: p.b.DefaultConnector(), Kind: bot.Message, @@ -172,7 +176,7 @@ func (p *CounterPlugin) mkIncrementAPI(delta int) func(w http.ResponseWriter, r User: &u, // Noting here that we're only going to do goals in a "default" // channel even if it should send updates to others. - Channel: chs[0], + Channel: ch, Body: fmt.Sprintf("%s += %d", itemName, delta), Time: time.Now(), },