commit 21aa7a0
Hubert Hirtz
·
2020-08-18 09:13:35 +0000 UTC
parent 0af566c
irc: Update TopicWho and TopicTime on TOPIC
2 files changed,
+17,
-29
+9,
-29
1@@ -631,11 +631,7 @@ func (s *Session) handle(msg Message) (err error) {
2 s.users[nickCf] = &User{Nick: nick}
3 }
4 c.Members[s.users[nickCf]] = ""
5-
6- t, ok := msg.Time()
7- if !ok {
8- t = time.Now()
9- }
10+ t := msg.TimeOrNow()
11
12 s.evts <- UserJoinEvent{
13 Channel: c.Name,
14@@ -660,11 +656,7 @@ func (s *Session) handle(msg Message) (err error) {
15 if u, ok := s.users[nickCf]; ok {
16 delete(c.Members, u)
17 s.cleanUser(u)
18-
19- t, ok := msg.Time()
20- if !ok {
21- t = time.Now()
22- }
23+ t := msg.TimeOrNow()
24
25 s.evts <- UserPartEvent{
26 Channels: []string{c.Name},
27@@ -678,11 +670,7 @@ func (s *Session) handle(msg Message) (err error) {
28 nickCf := strings.ToLower(nick)
29
30 if u, ok := s.users[nickCf]; ok {
31- t, ok := msg.Time()
32- if !ok {
33- t = time.Now()
34- }
35-
36+ t := msg.TimeOrNow()
37 var channels []string
38 for _, c := range s.channels {
39 if _, ok := c.Members[u]; ok {
40@@ -742,9 +730,12 @@ func (s *Session) handle(msg Message) (err error) {
41 s.channels[channelCf] = c
42 }
43 case "TOPIC":
44+ nick, _, _ := FullMask(msg.Prefix)
45 channelCf := strings.ToLower(msg.Params[0])
46 if c, ok := s.channels[channelCf]; ok {
47 c.Topic = msg.Params[1]
48+ c.TopicWho = nick
49+ c.TopicTime = msg.TimeOrNow()
50 s.channels[channelCf] = c
51 }
52 case "PRIVMSG", "NOTICE":
53@@ -772,10 +763,7 @@ func (s *Session) handle(msg Message) (err error) {
54 break
55 }
56
57- t, ok := msg.Time()
58- if !ok {
59- t = time.Now()
60- }
61+ t := msg.TimeOrNow()
62 if targetCf == s.nickCf {
63 // TAGMSG to self
64 s.evts <- QueryTagEvent{
65@@ -807,11 +795,7 @@ func (s *Session) handle(msg Message) (err error) {
66 nickCf := strings.ToLower(nick)
67 newNick := msg.Params[0]
68 newNickCf := strings.ToLower(newNick)
69-
70- t, ok := msg.Time()
71- if !ok {
72- t = time.Now()
73- }
74+ t := msg.TimeOrNow()
75
76 formerUser := s.users[nickCf]
77 formerUser.Nick = newNick
78@@ -855,11 +839,7 @@ func (s *Session) handle(msg Message) (err error) {
79 func (s *Session) privmsgToEvent(msg Message) (ev Event) {
80 nick, _, _ := FullMask(msg.Prefix)
81 targetCf := strings.ToLower(msg.Params[0])
82-
83- t, ok := msg.Time()
84- if !ok {
85- t = time.Now()
86- }
87+ t := msg.TimeOrNow()
88
89 if !s.IsChannel(targetCf) {
90 // PRIVMSG to self
+8,
-0
1@@ -311,6 +311,14 @@ func (msg *Message) Time() (t time.Time, ok bool) {
2 return
3 }
4
5+func (msg *Message) TimeOrNow() time.Time {
6+ t, ok := msg.Time()
7+ if ok {
8+ return t
9+ }
10+ return time.Now()
11+}
12+
13 func FullMask(s string) (nick, user, host string) {
14 if s == "" {
15 return