diff options
author | Hubert Hirtz <hubert@hirtzfr.eu> | 2020-08-15 16:57:59 +0200 |
---|---|---|
committer | Hubert Hirtz <hubert@hirtzfr.eu> | 2020-08-15 16:57:59 +0200 |
commit | 3567b356faebfa7f71eaa929f09ed15afea1a22a (patch) | |
tree | aeb58594021a5fd50ea3caf889bd0b7ea26ccc73 /irc | |
parent | editor: Handle UP and DOWN keys (diff) |
Remove UserEvent and ChannelEvent
Diffstat (limited to 'irc')
-rw-r--r-- | irc/events.go | 53 | ||||
-rw-r--r-- | irc/states.go | 92 |
2 files changed, 62 insertions, 83 deletions
diff --git a/irc/events.go b/irc/events.go index b585915..194bc1c 100644 --- a/irc/events.go +++ b/irc/events.go @@ -1,7 +1,6 @@ package irc import ( - "strings" "time" ) @@ -14,26 +13,6 @@ type RawMessageEvent struct { type RegisteredEvent struct{} -type UserEvent struct { - Nick string - User string - Host string -} - -func (u UserEvent) NickMapped() (nick string) { - nick = strings.ToLower(u.Nick) - return -} - -type ChannelEvent struct { - Channel string -} - -func (c ChannelEvent) ChannelMapped() (channel string) { - channel = strings.ToLower(c.Channel) - return -} - type SelfNickEvent struct { FormerNick string NewNick string @@ -47,51 +26,51 @@ type UserNickEvent struct { } type SelfJoinEvent struct { - ChannelEvent + Channel string } type UserJoinEvent struct { - UserEvent - ChannelEvent - Time time.Time + Nick string + Channel string + Time time.Time } type SelfPartEvent struct { - ChannelEvent + Channel string } type UserPartEvent struct { - UserEvent - ChannelEvent - Time time.Time + Nick string + Channels []string + Time time.Time } type QueryMessageEvent struct { - UserEvent + Nick string Command string Content string Time time.Time } type ChannelMessageEvent struct { - UserEvent - ChannelEvent + Nick string + Channel string Command string Content string Time time.Time } type QueryTypingEvent struct { - UserEvent + Nick string State int Time time.Time } type ChannelTypingEvent struct { - UserEvent - ChannelEvent - State int - Time time.Time + Nick string + Channel string + State int + Time time.Time } type HistoryEvent struct { diff --git a/irc/states.go b/irc/states.go index 2e0edf9..56da0c3 100644 --- a/irc/states.go +++ b/irc/states.go @@ -68,20 +68,6 @@ const ( ConnQuit ) -type User struct { - Nick string - AwayMsg string -} - -type Channel struct { - Name string - Members map[string]string - Topic string - TopicWho string - TopicTime time.Time - Secret bool -} - type action interface{} type ( @@ -114,6 +100,20 @@ type ( } ) +type User struct { + Nick string + AwayMsg string +} + +type Channel struct { + Name string + Members map[string]string + Topic string + TopicWho string + TopicTime time.Time + Secret bool +} + type SessionParams struct { Nickname string Username string @@ -583,7 +583,6 @@ func (s *Session) handleInner(msg Message) (err error) { nick, _, _ := FullMask(msg.Prefix) lNick := strings.ToLower(nick) channel := strings.ToLower(msg.Params[0]) - channelEv := ChannelEvent{Channel: msg.Params[0]} if lNick == s.lNick { s.channels[channel] = Channel{ @@ -602,20 +601,19 @@ func (s *Session) handleInner(msg Message) (err error) { } s.evts <- UserJoinEvent{ - ChannelEvent: channelEv, - UserEvent: UserEvent{Nick: nick}, - Time: t, + Channel: msg.Params[0], + Nick: nick, + Time: t, } } case "PART": nick, _, _ := FullMask(msg.Prefix) lNick := strings.ToLower(nick) channel := strings.ToLower(msg.Params[0]) - channelEv := ChannelEvent{Channel: msg.Params[0]} if lNick == s.lNick { delete(s.channels, channel) - s.evts <- SelfPartEvent{ChannelEvent: channelEv} + s.evts <- SelfPartEvent{Channel: msg.Params[0]} } else if c, ok := s.channels[channel]; ok { delete(c.Members, lNick) @@ -625,9 +623,9 @@ func (s *Session) handleInner(msg Message) (err error) { } s.evts <- UserPartEvent{ - ChannelEvent: channelEv, - UserEvent: UserEvent{Nick: nick}, - Time: t, + Channels: msg.Params[:1], + Nick: nick, + Time: t, } } case "QUIT": @@ -639,17 +637,19 @@ func (s *Session) handleInner(msg Message) (err error) { t = time.Now() } + var channels []string + for _, c := range s.channels { if _, ok := c.Members[lNick]; !ok { continue } + channels = append(channels, c.Name) + } - // TODO UserQuitEvent - s.evts <- UserPartEvent{ - ChannelEvent: ChannelEvent{Channel: c.Name}, - UserEvent: UserEvent{Nick: nick}, - Time: t, - } + s.evts <- UserPartEvent{ + Channels: channels, + Nick: nick, + Time: t, } case rplNamreply: channel := strings.ToLower(msg.Params[2]) @@ -669,7 +669,7 @@ func (s *Session) handleInner(msg Message) (err error) { } } case rplEndofnames: - s.evts <- SelfJoinEvent{ChannelEvent{Channel: msg.Params[1]}} + s.evts <- SelfJoinEvent{Channel: msg.Params[1]} case rplTopic: channel := strings.ToLower(msg.Params[1]) @@ -707,17 +707,17 @@ func (s *Session) handleInner(msg Message) (err error) { if target == s.lNick { // TAGMSG to self s.evts <- QueryTypingEvent{ - UserEvent: UserEvent{Nick: nick}, - State: typing, - Time: t, + Nick: nick, + State: typing, + Time: t, } } else if _, ok := s.channels[target]; ok { // TAGMSG to channel s.evts <- ChannelTypingEvent{ - UserEvent: UserEvent{Nick: nick}, - ChannelEvent: ChannelEvent{Channel: msg.Params[0]}, - State: typing, - Time: t, + Nick: nick, + Channel: msg.Params[0], + State: typing, + Time: t, } } case "BATCH": @@ -788,19 +788,19 @@ func (s *Session) privmsgToEvent(msg Message) (ev Event) { if !s.IsChannel(target) { // PRIVMSG to self ev = QueryMessageEvent{ - UserEvent: UserEvent{Nick: nick}, - Command: msg.Command, - Content: msg.Params[1], - Time: t, + Nick: nick, + Command: msg.Command, + Content: msg.Params[1], + Time: t, } } else if _, ok := s.channels[target]; ok { // PRIVMSG to channel ev = ChannelMessageEvent{ - UserEvent: UserEvent{Nick: nick}, - ChannelEvent: ChannelEvent{Channel: msg.Params[0]}, - Command: msg.Command, - Content: msg.Params[1], - Time: t, + Nick: nick, + Channel: msg.Params[0], + Command: msg.Command, + Content: msg.Params[1], + Time: t, } } |