From f34b9399cc3fa8bb87d0271293a891533c8dacfd Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Mon, 21 Jan 2013 01:37:42 -0800 Subject: [PATCH] Simplify Gmail notifications. --- sleekxmpp/plugins/gmail/notifications.py | 27 ++++++------------------ sleekxmpp/plugins/gmail/stanza.py | 2 +- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/sleekxmpp/plugins/gmail/notifications.py b/sleekxmpp/plugins/gmail/notifications.py index 6c8a4a02..dbc68162 100644 --- a/sleekxmpp/plugins/gmail/notifications.py +++ b/sleekxmpp/plugins/gmail/notifications.py @@ -37,14 +37,6 @@ class Gmail(BasePlugin): register_stanza_plugin(Iq, stanza.MailBox) register_stanza_plugin(Iq, stanza.NewMail) - self.xmpp.register_handler( - Callback('Gmail Result', - MatchXPath('{%s}iq/{%s}%s' % ( - self.xmpp.default_ns, - stanza.MailBox.namespace, - stanza.MailBox.name)), - self._handle_gmail)) - self.xmpp.register_handler( Callback('Gmail New Mail', MatchXPath('{%s}iq/{%s}%s' % ( @@ -56,24 +48,17 @@ class Gmail(BasePlugin): self._last_result_time = None def plugin_end(self): - self.xmpp.remove_handler('Gmail Result') self.xmpp.remove_handler('Gmail New Mail') - def _handle_gmail(self, iq): - mailbox = iq['gmail_results'] - log.info('Gmail: Received%s %s emails', - ' approximately' if mailbox['estimated'] else '', - mailbox['matched']) - self._last_result_time = mailbox['result_time'] - self.xmpp.event('gmail_messages', iq) - def _handle_new_mail(self, iq): - log.info("Gmail: New emails received!") - self.xmpp.event('gmail_notify', iq) - self.check(block=False) + log.info("Gmail: New email!") + iq.reply().send() + self.xmpp.event('gmail_notification') def check(self, block=True, timeout=None, callback=None): - return self.search(newer=self._last_result_time, + last_time = self._last_result_time + self._last_result_time = str(int(time.time() * 1000)) + return self.search(newer=last_time, block=block, timeout=timeout, callback=callback) diff --git a/sleekxmpp/plugins/gmail/stanza.py b/sleekxmpp/plugins/gmail/stanza.py index fe56177d..e7e308e1 100644 --- a/sleekxmpp/plugins/gmail/stanza.py +++ b/sleekxmpp/plugins/gmail/stanza.py @@ -46,7 +46,7 @@ class GmailQuery(ElementBase): class MailBox(ElementBase): namespace = 'google:mail:notify' name = 'mailbox' - plugin_attrib = 'gmail_results' + plugin_attrib = 'gmail_messages' interfaces = set(['result_time', 'url', 'matched', 'estimate']) def get_matched(self):