diff options
author | Florent Le Coz <louiz@louiz.org> | 2011-11-07 19:54:45 +0100 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2011-11-07 19:54:45 +0100 |
commit | 36cd91dc9c6e30025e622f958fbdf984de10483b (patch) | |
tree | dfaa9c4e0758c8ca3b03180768aee7669f7f2aa1 /src | |
parent | 15780364cf13de0bd4c2a40d895fe77273f00ab9 (diff) | |
download | poezio-36cd91dc9c6e30025e622f958fbdf984de10483b.tar.gz poezio-36cd91dc9c6e30025e622f958fbdf984de10483b.tar.bz2 poezio-36cd91dc9c6e30025e622f958fbdf984de10483b.tar.xz poezio-36cd91dc9c6e30025e622f958fbdf984de10483b.zip |
trigger events *_say BEFORE generating the xhtml, making it possible to add colors in the hook
Diffstat (limited to 'src')
-rw-r--r-- | src/tabs.py | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/src/tabs.py b/src/tabs.py index cae188ae..02d3c90d 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -715,14 +715,16 @@ class MucTab(ChatTab): needed = 'inactive' if self.core.status.show in ('xa', 'away') else 'active' msg = self.core.xmpp.make_message(self.get_name()) msg['type'] = 'groupchat' - if line.find('\x19') == -1: - msg['body'] = line - else: - msg['body'] = xhtml.clean_text(line) - msg['xhtml_im'] = xhtml.poezio_colors_to_html(line) + msg['body'] = line + # trigger the event BEFORE looking for colors. + # This lets a plugin insert \x19xxx} colors, that will + # be converted in xhtml. + self.core.events.trigger('muc_say', msg) + if msg['body'].find('\x19') != -1: + msg['xhtml_im'] = xhtml.poezio_colors_to_html(msg['body']) + msg['body'] = xhtml.clean_text(msg['body']) if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False: msg['chat_state'] = needed - self.core.events.trigger('muc_say', msg) self.cancel_paused_delay() msg.send() self.chat_state = needed @@ -1208,11 +1210,14 @@ class PrivateTab(ChatTab): return msg = self.core.xmpp.make_message(self.get_name()) msg['type'] = 'chat' - if line.find('\x19') == -1: - msg['body'] = line - else: - msg['body'] = xhtml.clean_text(line) - msg['xhtml_im'] = xhtml.poezio_colors_to_html(line) + msg['body'] = line + # trigger the event BEFORE looking for colors. + # This lets a plugin insert \x19xxx} colors, that will + # be converted in xhtml. + self.core.events.trigger('private_say', msg) + if msg['body'].find('\x19') != -1: + msg['body'] = xhtml.clean_text(msg['body']) + msg['xhtml_im'] = xhtml.poezio_colors_to_html(msg['body']) if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False: needed = 'inactive' if self.core.status.show in ('xa', 'away') else 'active' msg['chat_state'] = needed @@ -1872,11 +1877,14 @@ class ConversationTab(ChatTab): def command_say(self, line): msg = self.core.xmpp.make_message(self.get_name()) msg['type'] = 'chat' - if line.find('\x19') == -1: - msg['body'] = line - else: - msg['body'] = xhtml.clean_text(line) - msg['xhtml_im'] = xhtml.poezio_colors_to_html(line) + msg['body'] = line + # trigger the event BEFORE looking for colors. + # This lets a plugin insert \x19xxx} colors, that will + # be converted in xhtml. + self.core.events.trigger('conversation_say', msg) + if msg['body'].find('\x19') != -1: + msg['body'] = xhtml.clean_text(msg['body']) + msg['xhtml_im'] = xhtml.poezio_colors_to_html(msg['body']) if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False: needed = 'inactive' if self.core.status.show in ('xa', 'away') else 'active' msg['chat_state'] = needed |