commit d0dbcfe

Hubert Hirtz  ·  2020-08-05 20:41:32 +0000 UTC
parent 370a47d
Show NICK changes
3 files changed,  +38, -4
M app.go
M app.go
+6, -0
 1@@ -91,6 +91,12 @@ func (app *App) handleIRCEvent(ev irc.Event) {
 2 		if app.cfg.Highlights == nil {
 3 			app.highlights[0] = app.s.LNick()
 4 		}
 5+	case irc.SelfNickEvent:
 6+		line := fmt.Sprintf("\x0314%s\x03\u2192\x0314%s\x03", ev.FormerNick, ev.NewNick)
 7+		app.win.AddLine(ui.Home, ui.NewLine(ev.Time, "--", line, true), true)
 8+	case irc.UserNickEvent:
 9+		line := fmt.Sprintf("\x0314%s\x03\u2192\x0314%s\x03", ev.FormerNick, ev.NewNick)
10+		app.win.AddLine(ui.Home, ui.NewLine(ev.Time, "--", line, true), false)
11 	case irc.SelfJoinEvent:
12 		app.win.AddBuffer(ev.Channel)
13 	case irc.UserJoinEvent:
+16, -4
 1@@ -34,6 +34,22 @@ func (c ChannelEvent) ChannelMapped() (channel string) {
 2 	return
 3 }
 4 
 5+type SelfNickEvent struct {
 6+	FormerNick string
 7+	NewNick    string
 8+	Time       time.Time
 9+}
10+
11+type UserNickEvent struct {
12+	FormerNick string
13+	NewNick    string
14+	Time       time.Time
15+}
16+
17+type SelfJoinEvent struct {
18+	ChannelEvent
19+}
20+
21 type UserJoinEvent struct {
22 	UserEvent
23 	ChannelEvent
24@@ -50,10 +66,6 @@ type UserPartEvent struct {
25 	Time time.Time
26 }
27 
28-type SelfJoinEvent struct {
29-	ChannelEvent
30-}
31-
32 type QueryMessageEvent struct {
33 	UserEvent
34 	Command string
+16, -0
 1@@ -736,10 +736,26 @@ func (s *Session) handleInner(msg Message) (err error) {
 2 		newNick := msg.Params[0]
 3 		lNewNick := strings.ToLower(newNick)
 4 
 5+		t, ok := msg.Time()
 6+		if !ok {
 7+			t = time.Now()
 8+		}
 9+
10 		if lNick == s.lNick {
11+			s.evts <- SelfNickEvent{
12+				FormerNick: s.nick,
13+				NewNick:    newNick,
14+				Time:       t,
15+			}
16 			s.nick = newNick
17 			s.lNick = lNewNick
18 		} else {
19+			s.evts <- UserNickEvent{
20+				FormerNick: nick,
21+				NewNick:    newNick,
22+				Time:       t,
23+			}
24+			// TODO update state
25 		}
26 	case "FAIL":
27 		fmt.Println("FAIL", msg.Params)