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):