diff options
| author | 2018-10-03 16:44:44 +0100 | |
|---|---|---|
| committer | 2018-10-03 16:44:44 +0100 | |
| commit | ce2231900d476b2f1ba174faed124f9f4e2d6cb6 (patch) | |
| tree | ae2fb688024e98d962a2b2881473c7d239df9638 /src | |
| parent | 'mode_prefixes' -> prefix_modes and prefix_symbols (diff) | |
| signature | ||
Print user status symbols in modules/print_activity.py
Diffstat (limited to 'src')
| -rw-r--r-- | src/IRCChannel.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/IRCChannel.py b/src/IRCChannel.py index 9770f892..83b846f9 100644 --- a/src/IRCChannel.py +++ b/src/IRCChannel.py @@ -14,6 +14,7 @@ class Channel(IRCObject.Object): self.topic_time = 0 self.users = set([]) self.modes = {} + self.user_modes = {} self.created_timestamp = None self.buffer = IRCBuffer.Buffer(bot, server) @@ -40,6 +41,8 @@ class Channel(IRCObject.Object): self.modes[mode].discard(user) if not len(self.modes[mode]): del self.modes[mode] + if user in self.user_modes: + del self.user_modes def has_user(self, user): return user in self.users @@ -51,6 +54,9 @@ class Channel(IRCObject.Object): user = self.server.get_user(arg) if user: self.modes[mode].add(user) + if not user in self.user_modes: + self.user_modes[user] = set([]) + self.user_modes[user].add(mode) else: self.modes[mode].add(arg.lower()) def remove_mode(self, mode, arg=None): @@ -61,6 +67,9 @@ class Channel(IRCObject.Object): user = self.server.get_user(arg) if user: self.modes[mode].discard(user) + self.user_modes[user].discard(mode) + if not self.user_modes[user]: + del self.user_modes[user] else: self.modes[mode].discard(arg.lower()) if not len(self.modes[mode]): @@ -130,8 +139,4 @@ class Channel(IRCObject.Object): return False def get_user_status(self, user): - modes = "" - for mode in self.server.mode_prefixes.values(): - if user in self.modes.get(mode, []): - modes += mode - return modes + return self.user_modes.get(user, []) |
