commit 359d158

Hubert Hirtz  ·  2021-09-13 13:15:30 +0000 UTC
parent fe15e93
Show mode changes
3 files changed,  +25, -0
M app.go
M app.go
+12, -0
 1@@ -648,6 +648,18 @@ func (app *App) handleIRCEvent(ev interface{}) {
 2 			HeadColor: tcell.ColorGray,
 3 			Body:      body.StyledString(),
 4 		})
 5+	case irc.ModeChangeEvent:
 6+		var body ui.StyledStringBuilder
 7+		body.Grow(len(ev.Mode) + 13)
 8+		body.SetStyle(tcell.StyleDefault.Foreground(tcell.ColorGray))
 9+		body.WriteString("Mode change: ")
10+		body.WriteString(ev.Mode)
11+		app.win.AddLine(ev.Channel, ui.NotifyUnread, ui.Line{
12+			At:        msg.TimeOrNow(),
13+			Head:      "--",
14+			HeadColor: tcell.ColorGray,
15+			Body:      body.StyledString(),
16+		})
17 	case irc.MessageEvent:
18 		buffer, line, hlNotification := app.formatMessage(ev)
19 		var notify ui.NotifyType
+5, -0
 1@@ -51,6 +51,11 @@ type TopicChangeEvent struct {
 2 	Topic   string
 3 }
 4 
 5+type ModeChangeEvent struct {
 6+	Channel string
 7+	Mode    string
 8+}
 9+
10 type MessageEvent struct {
11 	User            string
12 	Target          string
+8, -0
 1@@ -741,6 +741,14 @@ func (s *Session) handleRegistered(msg Message) Event {
 2 				Topic:   c.Topic,
 3 			}
 4 		}
 5+	case "MODE":
 6+		channelCf := s.Casemap(msg.Params[0])
 7+		if c, ok := s.channels[channelCf]; ok {
 8+			return ModeChangeEvent{
 9+				Channel: c.Name,
10+				Mode: strings.Join(msg.Params[1:], " "),
11+			}
12+		}
13 	case "PRIVMSG", "NOTICE":
14 		targetCf := s.casemap(msg.Params[0])
15 		nickCf := s.casemap(msg.Prefix.Name)