[Git][gajim/gajim][master] 3 commits: Add message handlers for AUTH and ROSTERX
Philipp Hörist
gitlab at dev.gajim.org
Thu Jul 5 22:04:47 CEST 2018
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
503ee35b by Philipp Hörist at 2018-07-05T21:09:55+02:00
Add message handlers for AUTH and ROSTERX
- - - - -
51e85f14 by Philipp Hörist at 2018-07-05T21:41:28+02:00
Remove unused code
- - - - -
a1e1e56d by Philipp Hörist at 2018-07-05T22:03:06+02:00
Fix logic error when printing status
- - - - -
6 changed files:
- gajim/common/connection.py
- gajim/common/connection_handlers.py
- gajim/common/connection_handlers_events.py
- gajim/common/modules/http_auth.py
- gajim/common/modules/roster_item_exchange.py
- gajim/groupchat_control.py
Changes:
=====================================
gajim/common/connection.py
=====================================
--- a/gajim/common/connection.py
+++ b/gajim/common/connection.py
@@ -630,7 +630,6 @@ class Connection(CommonConnection, ConnectionHandlers):
self.last_time_to_reconnect = None
self.new_account_info = None
self.new_account_form = None
- self.last_io = app.idlequeue.current_time()
self.last_sent = []
self.password = passwords.get_password(name)
@@ -1512,7 +1511,6 @@ class Connection(CommonConnection, ConnectionHandlers):
app.nec.push_incoming_event(AnonymousAuthEvent(None,
conn=self, old_jid=old_jid, new_jid=new_jid))
if auth:
- self.last_io = app.idlequeue.current_time()
self.connected = 2
self.retrycount = 0
if self.on_connect_auth:
=====================================
gajim/common/connection_handlers.py
=====================================
--- a/gajim/common/connection_handlers.py
+++ b/gajim/common/connection_handlers.py
@@ -302,6 +302,11 @@ class ConnectionHandlersBase:
# We decrypt GPG messages one after the other. Keep queue in mem
self.gpg_messages_to_decrypt = []
+ # XEPs that are based on Message
+ self._message_namespaces = set([nbxmpp.NS_HTTP_AUTH,
+ nbxmpp.NS_PUBSUB_EVENT,
+ nbxmpp.NS_ROSTERX])
+
app.ged.register_event_handler('iq-error-received', ged.CORE,
self._nec_iq_error_received)
app.ged.register_event_handler('presence-received', ged.CORE,
@@ -1023,7 +1028,13 @@ ConnectionHTTPUpload):
"""
Called when we receive a message
"""
- if nbxmpp.NS_PUBSUB_EVENT in stanza.getProperties():
+
+ # Check if a child of the message contains any
+ # of these namespaces, so we dont execute the
+ # message handler for them.
+ # They have defined their own message handlers
+ # but nbxmpp executes less common handlers last
+ if self._message_namespaces & set(stanza.getProperties()):
return
log.debug('MessageCB')
@@ -1192,9 +1203,6 @@ ConnectionHTTPUpload):
# This way we'll really remove it
app.to_be_removed[self.name].remove(jid)
- def _StanzaArrivedCB(self, con, obj):
- self.last_io = app.idlequeue.current_time()
-
def _MucOwnerCB(self, con, iq_obj):
log.debug('MucOwnerCB')
app.nec.push_incoming_event(MucOwnerReceivedEvent(None, conn=self,
@@ -1459,10 +1467,7 @@ ConnectionHTTPUpload):
con.RegisterHandler('iq', self._JingleCB, 'set', nbxmpp.NS_JINGLE)
con.RegisterHandler('iq', self._ErrorCB, 'error')
con.RegisterHandler('iq', self._IqCB)
- con.RegisterHandler('iq', self._StanzaArrivedCB)
con.RegisterHandler('iq', self._ResultCB, 'result')
- con.RegisterHandler('presence', self._StanzaArrivedCB)
- con.RegisterHandler('message', self._StanzaArrivedCB)
con.RegisterHandler('unknown', self._StreamCB,
nbxmpp.NS_XMPP_STREAMS, xmlns=nbxmpp.NS_STREAMS)
con.RegisterHandler('iq', self._PubkeyGetCB, 'get',
=====================================
gajim/common/connection_handlers_events.py
=====================================
--- a/gajim/common/connection_handlers_events.py
+++ b/gajim/common/connection_handlers_events.py
@@ -914,18 +914,6 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
self.stanza.getFrom())
return
- # check if the message is a roster item exchange (XEP-0144)
- if self.stanza.getTag('x', namespace=nbxmpp.NS_ROSTERX):
- self.conn.get_module('RosterItemExchange').received_item(
- self.conn, self.stanza)
- return
-
- # check if the message is a XEP-0070 confirmation request
- if self.stanza.getTag('confirm', namespace=nbxmpp.NS_HTTP_AUTH):
- self.conn.get_module('HTTPAuth').answer_request(
- self.conn, self.stanza)
- return
-
try:
self.get_jid_resource()
except helpers.InvalidFormat:
=====================================
gajim/common/modules/http_auth.py
=====================================
--- a/gajim/common/modules/http_auth.py
+++ b/gajim/common/modules/http_auth.py
@@ -30,7 +30,8 @@ class HTTPAuth:
self._account = con.name
self.handlers = [
- ('iq', self.answer_request, 'get', nbxmpp.NS_HTTP_AUTH)
+ ('iq', self.answer_request, 'get', nbxmpp.NS_HTTP_AUTH),
+ ('message', self.answer_request, '', nbxmpp.NS_HTTP_AUTH)
]
def answer_request(self, con, stanza):
=====================================
gajim/common/modules/roster_item_exchange.py
=====================================
--- a/gajim/common/modules/roster_item_exchange.py
+++ b/gajim/common/modules/roster_item_exchange.py
@@ -31,7 +31,8 @@ class RosterItemExchange:
self._account = con.name
self.handlers = [
- ('iq', self.received_item, 'set', nbxmpp.NS_ROSTERX)
+ ('iq', self.received_item, 'set', nbxmpp.NS_ROSTERX),
+ ('message', self.received_item, '', nbxmpp.NS_ROSTERX)
]
def received_item(self, con, stanza):
=====================================
gajim/groupchat_control.py
=====================================
--- a/gajim/groupchat_control.py
+++ b/gajim/groupchat_control.py
@@ -1978,8 +1978,11 @@ class GroupchatControl(ChatControlBase):
con = app.connections[self.account]
bookmarks = con.get_module('Bookmarks').bookmarks
bookmark = bookmarks.get(self.room_jid, None)
- print_status = bookmark.get(
- 'print_status', app.config.get('print_status_in_muc'))
+ if bookmark is None or not bookmark['print_status']:
+ print_status = app.config.get('print_status_in_muc')
+ else:
+ print_status = bookmark['print_status']
+
if obj.show == 'offline':
if obj.nick in self.attention_list:
self.attention_list.remove(obj.nick)
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/fe3c1b4fbdb206c1d9fac096d37dffce0f394f9b...a1e1e56dda620ea01f86e2dd23b9f0d281bea9ee
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/fe3c1b4fbdb206c1d9fac096d37dffce0f394f9b...a1e1e56dda620ea01f86e2dd23b9f0d281bea9ee
You're receiving this email because of your account on dev.gajim.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gajim.org/pipermail/commits/attachments/20180705/1ff5e971/attachment-0001.html>
More information about the Commits
mailing list