From 9c2cbe5f6381940b9c34afae40fbf8516a771aca Mon Sep 17 00:00:00 2001 From: Ed Page Date: Sat, 26 Feb 2011 18:05:19 -0600 Subject: [PATCH] Making it possible to do partial message refreshes --- src/backends/gv_backend.py | 21 ++++++++++++++++----- src/session.py | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/backends/gv_backend.py b/src/backends/gv_backend.py index a6da313..2414049 100644 --- a/src/backends/gv_backend.py +++ b/src/backends/gv_backend.py @@ -40,8 +40,14 @@ _moduleLogger = logging.getLogger(__name__) class GVDialer(object): + MESSAGE_TEXTS = "Text" + MESSAGE_VOICEMAILS = "Voicemail" + MESSAGE_ALL = "All" + def __init__(self, cookieFile = None): self._gvoice = gvoice.GVoiceBackend(cookieFile) + self._texts = [] + self._voicemails = [] def is_quick_login_possible(self): """ @@ -145,14 +151,19 @@ class GVDialer(object): """ return list(self._gvoice.get_recent()) - def get_messages(self): - messages = list(self._get_messages()) + def get_messages(self, messageType): + messages = list(self._get_messages(messageType)) messages.sort(key=lambda message: message["time"]) return messages - def _get_messages(self): - voicemails = self._gvoice.get_voicemails() - smss = self._gvoice.get_texts() + def _get_messages(self, messageType): + if messageType in [self.MESSAGE_VOICEMAILS, self.MESSAGE_ALL] or not self._voicemails: + self._voicemails = list(self._gvoice.get_voicemails()) + voicemails = self._voicemails + if messageType in [self.MESSAGE_TEXTS, self.MESSAGE_ALL] or not self._texts: + self._texts = list(self._gvoice.get_texts()) + smss = self._texts + conversations = itertools.chain(voicemails, smss) for conversation in conversations: messages = conversation.messages diff --git a/src/session.py b/src/session.py index e6cd68f..bc682f7 100644 --- a/src/session.py +++ b/src/session.py @@ -609,7 +609,7 @@ class Session(QtCore.QObject): with qui_utils.notify_busy(self._errorLog, "Updating Messages"): self._messages = yield ( self._backend[0].get_messages, - (), + (self._backend[0].MESSAGE_ALL, ), {}, ) except Exception, e: -- 1.7.9.5