Ensure gmail last result time and tid are always updated.
This commit is contained in:
parent
d4dde89ea6
commit
88c7c29954
@ -60,19 +60,26 @@ class Gmail(BasePlugin):
|
||||
last_time = self._last_result_time
|
||||
last_tid = self._last_result_tid
|
||||
|
||||
def check_callback(data):
|
||||
if not block:
|
||||
callback = lambda iq: self._update_last_results(iq, callback)
|
||||
|
||||
resp = self.search(newer_time=last_time,
|
||||
newer_tid=last_tid,
|
||||
block=block,
|
||||
timeout=timeout,
|
||||
callback=callback)
|
||||
|
||||
if block:
|
||||
self._update_last_results(resp)
|
||||
return resp
|
||||
|
||||
def _update_last_results(self, iq, callback=None):
|
||||
self._last_result_time = data['gmail_messages']['result_time']
|
||||
threads = data['gmail_messages']['threads']
|
||||
if threads:
|
||||
self._last_result_tid = threads[0]['tid']
|
||||
if callback:
|
||||
callback(data)
|
||||
|
||||
return self.search(newer_time=last_time,
|
||||
newer_tid=last_tid,
|
||||
block=block,
|
||||
timeout=timeout,
|
||||
callback=check_callback)
|
||||
callback(iq)
|
||||
|
||||
def search(self, query=None, newer_time=None, newer_tid=None, block=True,
|
||||
timeout=None, callback=None):
|
||||
|
Loading…
x
Reference in New Issue
Block a user