From 1c9257b4a28e88c7f575e70939367fc9175ad53c Mon Sep 17 00:00:00 2001 From: mathieui Date: Mon, 13 Apr 2015 15:24:12 +0200 Subject: [PATCH] Handle error messages for real --- src/core/core.py | 2 ++ src/core/handlers.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/core/core.py b/src/core/core.py index a16f4cde..dc4439fd 100644 --- a/src/core/core.py +++ b/src/core/core.py @@ -224,6 +224,7 @@ class Core(object): self.xmpp.add_event_handler("groupchat_subject", self.on_groupchat_subject) self.xmpp.add_event_handler("message", self.on_message) + self.xmpp.add_event_handler("message_error", self.on_error_message) self.xmpp.add_event_handler("receipt_received", self.on_receipt) self.xmpp.add_event_handler("got_online", self.on_got_online) self.xmpp.add_event_handler("got_offline", self.on_got_offline) @@ -1947,6 +1948,7 @@ class Core(object): on_groupchat_direct_invitation = handlers.on_groupchat_direct_invitation on_groupchat_decline = handlers.on_groupchat_decline on_message = handlers.on_message + on_error_message = handlers.on_error_message on_normal_message = handlers.on_normal_message on_nick_received = handlers.on_nick_received on_gaming_event = handlers.on_gaming_event diff --git a/src/core/handlers.py b/src/core/handlers.py index 0bca6cd8..a28e7410 100644 --- a/src/core/handlers.py +++ b/src/core/handlers.py @@ -224,6 +224,12 @@ def on_message(self, message): if message['type'] == 'groupchat': return # Differentiate both type of messages, and call the appropriate handler. + return self.on_normal_message(message) + +def on_error_message(self, message): + """ + When receiving any message with type="error" + """ jid_from = message['from'] for tab in self.get_tabs(tabs.MucTab): if tab.name == jid_from.bare: @@ -231,7 +237,7 @@ def on_message(self, message): return self.room_error(message, jid_from) else: return self.on_groupchat_private_message(message) - return self.on_normal_message(message) + return self.information(self.get_error_message(message, deprecated=True), 'Error') def on_normal_message(self, message): """ @@ -239,7 +245,7 @@ def on_normal_message(self, message): muc participant) """ if message['type'] == 'error': - return self.information(self.get_error_message(message, deprecated=True), 'Error') + return elif message['type'] == 'headline' and message['body']: return self.information('%s says: %s' % (message['from'], message['body']), 'Headline')