feat(irc): allow other channels for idle (#195)

This commit is contained in:
Ludvig Lundgren 2022-03-22 18:36:10 +01:00 committed by GitHub
parent 7455b2973d
commit 46cffc4453
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -225,6 +225,16 @@ func (h *Handler) SetNetwork(network *domain.IrcNetwork) {
h.m.Unlock() 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() { func (h *Handler) Stop() {
log.Debug().Msgf("%v: Disconnecting...", h.network.Server) log.Debug().Msgf("%v: Disconnecting...", h.network.Server)
h.client.Quit() h.client.Quit()
@ -423,15 +433,6 @@ func (h *Handler) handleJoined(msg ircmsg.Message) {
// get channel // get channel
channel := msg.Params[1] 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]) log.Debug().Msgf("%v: JOINED: %v", h.network.Server, msg.Params[1])
// set monitoring on current channelHealth, or add new // set monitoring on current channelHealth, or add new
@ -439,14 +440,14 @@ func (h *Handler) handleJoined(msg ircmsg.Message) {
if ok { if ok {
v.SetMonitoring() v.SetMonitoring()
} else if v == nil { } else if v == nil {
h.channelHealth[channel] = &channelHealth{ h.AddChannelHealth(channel)
name: channel,
monitoring: true,
monitoringSince: time.Now(),
}
} }
valid := h.isValidChannel(channel)
if valid {
log.Info().Msgf("%v: Monitoring channel %v", h.network.Server, msg.Params[1]) log.Info().Msgf("%v: Monitoring channel %v", h.network.Server, msg.Params[1])
return
}
} }
func (h *Handler) handleConnectCommands(msg string) error { func (h *Handler) handleConnectCommands(msg string) error {
@ -481,11 +482,6 @@ func (h *Handler) handleInvite(msg ircmsg.Message) {
// get channel // get channel
channel := msg.Params[1] 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) log.Debug().Msgf("%v: INVITE from %v, joining %v", h.network.Server, msg.Nick(), channel)
err := h.client.Join(channel) err := h.client.Join(channel)