summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/google/gmail
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2013-02-10 11:29:57 -0800
committerLance Stout <lancestout@gmail.com>2013-02-10 11:29:57 -0800
commitda3223ac92f15e15ae03cece00ff487d81913c77 (patch)
tree3380d162b278f328c9c83afa1ca4272ed1f2f203 /sleekxmpp/plugins/google/gmail
parent75a792eb6f8df68d47db8014852425d9ee36d6a9 (diff)
parentb0fed5a48dc6543a1eedf3ff2cc96f671fbfef0c (diff)
downloadslixmpp-da3223ac92f15e15ae03cece00ff487d81913c77.tar.gz
slixmpp-da3223ac92f15e15ae03cece00ff487d81913c77.tar.bz2
slixmpp-da3223ac92f15e15ae03cece00ff487d81913c77.tar.xz
slixmpp-da3223ac92f15e15ae03cece00ff487d81913c77.zip
Merge branch 'develop'
Diffstat (limited to 'sleekxmpp/plugins/google/gmail')
-rw-r--r--sleekxmpp/plugins/google/gmail/notifications.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/sleekxmpp/plugins/google/gmail/notifications.py b/sleekxmpp/plugins/google/gmail/notifications.py
index 6a0ceed4..7226fa1f 100644
--- a/sleekxmpp/plugins/google/gmail/notifications.py
+++ b/sleekxmpp/plugins/google/gmail/notifications.py
@@ -46,6 +46,7 @@ class Gmail(BasePlugin):
self._handle_new_mail))
self._last_result_time = None
+ self._last_result_tid = None
def plugin_end(self):
self.xmpp.remove_handler('Gmail New Mail')
@@ -57,13 +58,23 @@ class Gmail(BasePlugin):
def check(self, block=True, timeout=None, callback=None):
last_time = self._last_result_time
- self._last_result_time = str(int(time.time() * 1000))
- return self.search(newer=last_time,
+ last_tid = self._last_result_tid
+
+ def check_callback(data):
+ self._last_result_time = data["gmail_messages"]["result_time"]
+ if data["gmail_messages"]["threads"]:
+ self._last_result_tid = \
+ data["gmail_messages"]["threads"][0]["tid"]
+ if callback:
+ callback(data)
+
+ return self.search(newer_time=last_time,
+ newer_tid=last_tid,
block=block,
timeout=timeout,
- callback=callback)
+ callback=check_callback)
- def search(self, query=None, newer=None, block=True,
+ def search(self, query=None, newer_time=None, newer_tid=None, block=True,
timeout=None, callback=None):
if not query:
log.info('Gmail: Checking for new email')
@@ -73,5 +84,6 @@ class Gmail(BasePlugin):
iq['type'] = 'get'
iq['to'] = self.xmpp.boundjid.bare
iq['gmail']['search'] = query
- iq['gmail']['newer_than_time'] = newer
+ iq['gmail']['newer_than_time'] = newer_time
+ iq['gmail']['newer_than_tid'] = newer_tid
return iq.send(block=block, timeout=timeout, callback=callback)