proper hashtag streaming

This commit is contained in:
Cadey Ratio 2017-05-10 17:43:53 -07:00
parent ca34330599
commit 0b3bf1cd5f
1 changed files with 15 additions and 13 deletions

28
main.go
View File

@ -178,7 +178,7 @@ func (s *Server) HandleConn(ctx context.Context) {
continue continue
} }
err = s.stream(ctx, target, "hashtag", target) err = s.stream(ctx, target, "hashtag", target[1:])
if err != nil { if err != nil {
ln.Error(err, s.F(), ln.F{"action": "hashtag_stream", "hashtag": target}) 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) s.iw.Writef(":%s JOIN %s", s.nickname, chName)
go func() { go func() {
select { for {
case <-ctx.Done(): select {
return case <-ctx.Done():
case <-stop: return
return case <-stop:
case <-done: return
return case <-done:
return
case ev := <-evChan: case ev := <-evChan:
switch ev.Event { switch ev.Event {
case "update": case "update":
st := ev.Data.(madon.Status) 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)) s.iw.Writef(":%s PRIVMSG %s :%s: %s%s", streamName, chName, st.Account.Username, st.SpoilerText+" ", strings.Replace(st.Content, "\n", " ", 0))
}
} }
} }
}() }()