diff options
Diffstat (limited to 'unrefactored/bgsrt.py')
-rw-r--r-- | unrefactored/bgsrt.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/unrefactored/bgsrt.py b/unrefactored/bgsrt.py new file mode 100644 index 0000000..3db04e3 --- /dev/null +++ b/unrefactored/bgsrt.py @@ -0,0 +1,38 @@ +'Background Send/Receive Thread' + +import email +import email.utils +import gtk +import threading +import time + +from tracker import InboundTracker, OutboundTracker +from tags import FLAGS +from utility import check_online + +class BGSRT(threading.Thread): + + def __init__(self, activity): + threading.Thread.__init__(self) + self._activity = activity + self._config = activity.config + self._ms = activity.ms + + def _send(self): + unsent = self._ms.flagged_keys(FLAGS['outbound']) + if unsent==[]: + return + tracker = OutboundTracker(self._activity) + msgs = [self._ms.get_msg(key) for key in unsent] + self._config.transport_account.send(msgs, tracker) + + def _receive(self): + tracker = InboundTracker(self._activity) + self._config.store_account.retrieve_all(tracker) + + def run(self): + while 1: + if check_online(): + self._send() + self._receive() + time.sleep(self._config.send_receive_every * 60) |