From 0b3bf1cd5f4ad5566237af901c00b0fa1c8e958a Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Wed, 10 May 2017 17:43:53 -0700 Subject: [PATCH] proper hashtag streaming --- main.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/main.go b/main.go index b75b8e3..6fb2db4 100644 --- a/main.go +++ b/main.go @@ -178,7 +178,7 @@ func (s *Server) HandleConn(ctx context.Context) { continue } - err = s.stream(ctx, target, "hashtag", target) + err = s.stream(ctx, target, "hashtag", target[1:]) if err != nil { ln.Error(err, s.F(), ln.F{"action": "hashtag_stream", "hashtag": target}) } @@ -207,19 +207,21 @@ func (s *Server) stream(ctx context.Context, chName, streamName, hashtag string) s.iw.Writef(":%s JOIN %s", s.nickname, chName) go func() { - select { - case <-ctx.Done(): - return - case <-stop: - return - case <-done: - return + for { + select { + case <-ctx.Done(): + return + case <-stop: + return + case <-done: + return - case ev := <-evChan: - switch ev.Event { - case "update": - st := ev.Data.(madon.Status) - s.iw.Writef(":%s PRIVMSG %s :%s: %s%s", streamName, chName, st.Account.Username, st.SpoilerText+" ", strings.Replace(st.Content, "\n", " ", 0)) + case ev := <-evChan: + switch ev.Event { + case "update": + st := ev.Data.(madon.Status) + s.iw.Writef(":%s PRIVMSG %s :%s: %s%s", streamName, chName, st.Account.Username, st.SpoilerText+" ", strings.Replace(st.Content, "\n", " ", 0)) + } } } }()