summaryrefslogtreecommitdiff
path: root/src/tabs
diff options
context:
space:
mode:
authorCélestin Matte <celestin.matte@gmail.com>2014-12-23 18:20:33 +0100
committerCélestin Matte <celestin.matte@gmail.com>2014-12-24 00:29:41 +0100
commit0ae1ee2fbf0b3b10fbaaa12e7f340f2aedce3621 (patch)
tree1d93a28c47deaa79cf2fdb094872d7287c102801 /src/tabs
parent1bbdab7f12df2f1cd71db86ba6caf6c888e2a3ad (diff)
downloadpoezio-0ae1ee2fbf0b3b10fbaaa12e7f340f2aedce3621.tar.gz
poezio-0ae1ee2fbf0b3b10fbaaa12e7f340f2aedce3621.tar.bz2
poezio-0ae1ee2fbf0b3b10fbaaa12e7f340f2aedce3621.tar.xz
poezio-0ae1ee2fbf0b3b10fbaaa12e7f340f2aedce3621.zip
Add nick_color_aliases (default: true), to look for color of aliases
Diffstat (limited to 'src/tabs')
-rw-r--r--src/tabs/muctab.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/tabs/muctab.py b/src/tabs/muctab.py
index 89cecca8..7264569a 100644
--- a/src/tabs/muctab.py
+++ b/src/tabs/muctab.py
@@ -426,7 +426,7 @@ class MucTab(ChatTab):
for user in self.users:
if user.nick == self.own_nick:
continue
- color = config.get_by_tabname(user.nick, 'muc_colors')
+ color = self.search_for_color(user.nick)
if color != '':
continue
user.set_deterministic_color()
@@ -444,7 +444,7 @@ class MucTab(ChatTab):
# search our own user, to remove it from the list
# Also remove users whose color is fixed
for user in full_sorted_users:
- color = config.get_by_tabname(user.nick, 'muc_colors')
+ color = self.search_for_color(user.nick)
if user.nick == self.own_nick:
sorted_users.remove(user)
user.color = get_theme().COLOR_OWN_NICK
@@ -1068,7 +1068,7 @@ class MucTab(ChatTab):
jid = presence['muc']['jid']
typ = presence['type']
deterministic = config.get_by_tabname('deterministic_nick_colors', self.name)
- color = config.get_by_tabname(from_nick, 'muc_colors')
+ color = self.search_for_color(from_nick)
if not self.joined: # user in the room BEFORE us.
# ignore redondant presence message, see bug #1509
if (from_nick not in [user.nick for user in self.users]
@@ -1670,3 +1670,19 @@ class MucTab(ChatTab):
self.core.refresh_window()
else: # Re-send a self-ping in a few seconds
self.enable_self_ping_event()
+
+ def search_for_color(self, nick):
+ """
+ Search for the color of a nick in the config file.
+ Also, look at the colors of its possible aliases if nick_color_aliases
+ is set.
+ """
+ color = config.get_by_tabname(nick, 'muc_colors')
+ if color != '':
+ return color
+ nick_color_aliases = config.get_by_tabname('nick_color_aliases', self.name)
+ if nick_color_aliases:
+ nick_alias = re.sub('^_*', '', nick)
+ nick_alias = re.sub('_*$', '', nick_alias)
+ color = config.get_by_tabname(nick_alias, 'muc_colors')
+ return color