summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2011-11-12 00:00:17 +0100
committermathieui <mathieui@mathieui.net>2011-11-12 00:00:17 +0100
commit4d5e2d21a464e6af56e5c968490c2dea61670011 (patch)
tree6ff4dc59ba70befd65ff52328bb8e001c8ae5f44
parent632175b79fb4d15a2358fc0604fe1bb85a076188 (diff)
downloadpoezio-4d5e2d21a464e6af56e5c968490c2dea61670011.tar.gz
poezio-4d5e2d21a464e6af56e5c968490c2dea61670011.tar.bz2
poezio-4d5e2d21a464e6af56e5c968490c2dea61670011.tar.xz
poezio-4d5e2d21a464e6af56e5c968490c2dea61670011.zip
/xhtml command, Fixes #2237
-rw-r--r--src/tabs.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/tabs.py b/src/tabs.py
index e0419fda..02678e7e 100644
--- a/src/tabs.py
+++ b/src/tabs.py
@@ -46,6 +46,7 @@ from os import getenv, path
from logger import logger
from datetime import datetime, timedelta
+from xml.etree import cElementTree as ET
SHOW_NAME = {
'dnd': _('busy'),
@@ -308,6 +309,7 @@ class ChatTab(Tab):
self.commands['say'] = (self.command_say,
_("""Usage: /say <message>\nSay: Just send the message.
Useful if you want your message to begin with a '/'."""), None)
+ self.commands['xhtml'] = (self.command_xhtml, _("Usage: /xhtml <custom xhtml>\nXHTML: Send custom XHTML."), None)
self.chat_state = None
self.update_commands()
@@ -339,6 +341,29 @@ class ChatTab(Tab):
self.command_say(xhtml.convert_simple_to_full_colors(txt))
self.cancel_paused_delay()
+ def command_xhtml(self, arg):
+ """"
+ /xhtml <custom xhtml>
+ """
+ if not arg:
+ return
+ try:
+ body = xhtml.clean_text(xhtml.xhtml_to_poezio_colors(arg))
+ ET.fromstring(arg)
+ except:
+ self.core.information('Could not send custom xhtml', 'Error')
+ return
+
+ msg = self.core.xmpp.make_message(self.get_name())
+ msg['body'] = body
+ msg['xhtml_im'] = arg
+ if isinstance(self, MucTab):
+ msg['type'] = 'groupchat'
+ if isinstance(self, ConversationTab):
+ self.core.add_message_to_text_buffer(self._text_buffer, body, None, self.core.own_nick)
+ self.refresh()
+ msg.send()
+
def send_chat_state(self, state, always_send=False):
"""
Send an empty chatstate message