summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Simon <simona@gobeta.com.cn>2014-01-31 18:54:59 +0800
committerAllan Simon <simona@gobeta.com.cn>2014-01-31 18:54:59 +0800
commiteb6ac68d5c8f323ef7036a4daf4e3cc0e55bfc85 (patch)
tree7316c6feb01dbdc40d6ebb9dd9d30d973d17553a
parent848e6ebd8329b8e3fec4d770794361b39d2aaa69 (diff)
downloadslixmpp-eb6ac68d5c8f323ef7036a4daf4e3cc0e55bfc85.tar.gz
slixmpp-eb6ac68d5c8f323ef7036a4daf4e3cc0e55bfc85.tar.bz2
slixmpp-eb6ac68d5c8f323ef7036a4daf4e3cc0e55bfc85.tar.xz
slixmpp-eb6ac68d5c8f323ef7036a4daf4e3cc0e55bfc85.zip
close #276, now we trigger 'groupchat_message_error' and muc::ROOM::message_error when we receive a message type=error from the server
-rw-r--r--sleekxmpp/plugins/xep_0045.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/xep_0045.py b/sleekxmpp/plugins/xep_0045.py
index 6e3f10a9..9587fa1a 100644
--- a/sleekxmpp/plugins/xep_0045.py
+++ b/sleekxmpp/plugins/xep_0045.py
@@ -126,6 +126,7 @@ class XEP_0045(BasePlugin):
# load MUC support in presence stanzas
register_stanza_plugin(Presence, MUCPresence)
self.xmpp.register_handler(Callback('MUCPresence', MatchXMLMask("<presence xmlns='%s' />" % self.xmpp.default_ns), self.handle_groupchat_presence))
+ self.xmpp.register_handler(Callback('MUCError', MatchXMLMask("<message xmlns='%s' type='error'><error/></message>" % self.xmpp.default_ns), self.handle_groupchat_error_message))
self.xmpp.register_handler(Callback('MUCMessage', MatchXMLMask("<message xmlns='%s' type='groupchat'><body/></message>" % self.xmpp.default_ns), self.handle_groupchat_message))
self.xmpp.register_handler(Callback('MUCSubject', MatchXMLMask("<message xmlns='%s' type='groupchat'><subject/></message>" % self.xmpp.default_ns), self.handle_groupchat_subject))
self.xmpp.register_handler(Callback('MUCConfig', MatchXMLMask("<message xmlns='%s' type='groupchat'><x xmlns='http://jabber.org/protocol/muc#user'><status/></x></message>" % self.xmpp.default_ns), self.handle_config_change))
@@ -179,6 +180,14 @@ class XEP_0045(BasePlugin):
self.xmpp.event('groupchat_message', msg)
self.xmpp.event("muc::%s::message" % msg['from'].bare, msg)
+ def handle_groupchat_error_message(self, msg):
+ """ Handle a message error event in a muc.
+ """
+ self.xmpp.event('groupchat_message_error', msg)
+ self.xmpp.event("muc::%s::message_error" % msg['from'].bare, msg)
+
+
+
def handle_groupchat_subject(self, msg):
""" Handle a message coming from a muc indicating
a change of subject (or announcing it when joining the room)