From 46cffc4453986d1fcb5c2b55fd1a369b0263d9a6 Mon Sep 17 00:00:00 2001 From: Ludvig Lundgren Date: Tue, 22 Mar 2022 18:36:10 +0100 Subject: [PATCH] feat(irc): allow other channels for idle (#195) --- internal/irc/handler.go | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/internal/irc/handler.go b/internal/irc/handler.go index fc8287a..4eec75f 100644 --- a/internal/irc/handler.go +++ b/internal/irc/handler.go @@ -225,6 +225,16 @@ func (h *Handler) SetNetwork(network *domain.IrcNetwork) { h.m.Unlock() } +func (h *Handler) AddChannelHealth(channel string) { + h.m.Lock() + h.channelHealth[channel] = &channelHealth{ + name: channel, + monitoring: true, + monitoringSince: time.Now(), + } + h.m.Unlock() +} + func (h *Handler) Stop() { log.Debug().Msgf("%v: Disconnecting...", h.network.Server) h.client.Quit() @@ -423,15 +433,6 @@ func (h *Handler) handleJoined(msg ircmsg.Message) { // get channel channel := msg.Params[1] - valid := h.isValidChannel(channel) - if !valid { - if err := h.HandlePartChannel(channel); err != nil { - log.Error().Stack().Err(err).Msgf("%v: Could not part channel: %v", h.network.Server, channel) - return - } - return - } - log.Debug().Msgf("%v: JOINED: %v", h.network.Server, msg.Params[1]) // set monitoring on current channelHealth, or add new @@ -439,14 +440,14 @@ func (h *Handler) handleJoined(msg ircmsg.Message) { if ok { v.SetMonitoring() } else if v == nil { - h.channelHealth[channel] = &channelHealth{ - name: channel, - monitoring: true, - monitoringSince: time.Now(), - } + h.AddChannelHealth(channel) } - log.Info().Msgf("%v: Monitoring channel %v", h.network.Server, msg.Params[1]) + valid := h.isValidChannel(channel) + if valid { + log.Info().Msgf("%v: Monitoring channel %v", h.network.Server, msg.Params[1]) + return + } } func (h *Handler) handleConnectCommands(msg string) error { @@ -481,11 +482,6 @@ func (h *Handler) handleInvite(msg ircmsg.Message) { // get channel channel := msg.Params[1] - valid := h.isValidChannel(channel) - if !valid { - return - } - log.Debug().Msgf("%v: INVITE from %v, joining %v", h.network.Server, msg.Nick(), channel) err := h.client.Join(channel)