commit 1b15bf8
Hubert Hirtz
·
2020-08-16 14:04:19 +0000 UTC
parent c066b0e
irc: Use typing constants
3 files changed,
+23,
-16
M
app.go
+6,
-6
1@@ -135,16 +135,16 @@ func (app *App) handleIRCEvent(ev irc.Event) {
2
3 app.win.AddLine(ev.Channel, l, isHighlight)
4 app.win.TypingStop(ev.Channel, ev.Nick)
5- case irc.QueryTypingEvent:
6- if ev.State == 1 || ev.State == 2 {
7+ case irc.QueryTagEvent:
8+ if ev.Typing == irc.TypingActive || ev.Typing == irc.TypingPaused {
9 app.win.TypingStart(ui.Home, ev.Nick)
10- } else {
11+ } else if ev.Typing == irc.TypingDone {
12 app.win.TypingStop(ui.Home, ev.Nick)
13 }
14- case irc.ChannelTypingEvent:
15- if ev.State == 1 || ev.State == 2 {
16+ case irc.ChannelTagEvent:
17+ if ev.Typing == irc.TypingActive || ev.Typing == irc.TypingPaused {
18 app.win.TypingStart(ev.Channel, ev.Nick)
19- } else {
20+ } else if ev.Typing == irc.TypingDone {
21 app.win.TypingStop(ev.Channel, ev.Nick)
22 }
23 case irc.HistoryEvent:
+6,
-6
1@@ -60,16 +60,16 @@ type ChannelMessageEvent struct {
2 Time time.Time
3 }
4
5-type QueryTypingEvent struct {
6- Nick string
7- State int
8- Time time.Time
9+type QueryTagEvent struct {
10+ Nick string
11+ Typing int
12+ Time time.Time
13 }
14
15-type ChannelTypingEvent struct {
16+type ChannelTagEvent struct {
17 Nick string
18 Channel string
19- State int
20+ Typing int
21 Time time.Time
22 }
23
+11,
-4
1@@ -60,6 +60,13 @@ var SupportedCapabilities = map[string]struct{}{
2 "userhost-in-names": {},
3 }
4
5+const (
6+ TypingUnspec = iota
7+ TypingActive
8+ TypingPaused
9+ TypingDone
10+)
11+
12 type ConnectionState int
13
14 const (
15@@ -681,14 +688,14 @@ func (s *Session) handle(msg Message) (err error) {
16 break
17 }
18
19- typing := 0
20+ typing := TypingUnspec
21 if t, ok := msg.Tags["+typing"]; ok {
22 if t == "active" {
23- typing = 1
24+ typing = TypingActive
25 } else if t == "paused" {
26- typing = 2
27+ typing = TypingPaused
28 } else if t == "done" {
29- typing = 3
30+ typing = TypingDone
31 }
32 } else {
33 break