aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2018-10-03 16:44:44 +0100
committerGravatar jesopo2018-10-03 16:44:44 +0100
commitce2231900d476b2f1ba174faed124f9f4e2d6cb6 (patch)
treeae2fb688024e98d962a2b2881473c7d239df9638 /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.py15
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, [])