summaryrefslogtreecommitdiff
path: root/irc
diff options
context:
space:
mode:
authorHubert Hirtz <hubert@hirtz.pm>2020-10-19 14:19:23 +0200
committerHubert Hirtz <hubert@hirtz.pm>2020-10-19 14:19:23 +0200
commit8fb22a1c588e41ac6b83b403d3eedda5c0f57869 (patch)
treefbc4aee795f37607c4935519ac643a73a733c0b2 /irc
parentEnsure timestamps from msg.TimeOrNow() are always UTC (diff)
Show topic changes
Closes #34
Diffstat (limited to 'irc')
-rw-r--r--irc/events.go7
-rw-r--r--irc/states.go6
2 files changed, 13 insertions, 0 deletions
diff --git a/irc/events.go b/irc/events.go
index 62622b4..9bb4c79 100644
--- a/irc/events.go
+++ b/irc/events.go
@@ -51,6 +51,13 @@ type UserQuitEvent struct {
Time time.Time
}
+type TopicChangeEvent struct {
+ User *Prefix
+ Channel string
+ Topic string
+ Time time.Time
+}
+
type MessageEvent struct {
User *Prefix
Target string
diff --git a/irc/states.go b/irc/states.go
index e560bdf..5502dd0 100644
--- a/irc/states.go
+++ b/irc/states.go
@@ -780,6 +780,12 @@ func (s *Session) handle(msg Message) (err error) {
c.TopicWho = msg.Prefix.Copy()
c.TopicTime = msg.TimeOrNow()
s.channels[channelCf] = c
+ s.evts <- TopicChangeEvent{
+ User: msg.Prefix.Copy(),
+ Channel: c.Name,
+ Topic: c.Topic,
+ Time: c.TopicTime,
+ }
}
case "PRIVMSG", "NOTICE":
s.evts <- s.privmsgToEvent(msg)