def runService(self, timered): if self == threading.currentThread(): # deve-se definir o refreshMinutes aqui, para que em caso de erro não fique com o último valor self.refreshMinutes = self.defaultRefreshMinutes if not self.logged: self.doLogin() now = time.time() if not timered or now - self.lastRefresh >= self.ieRefreshTime: if (self.refreshcount % 60) == 0: # a cada 60 iterações faz um full refresh self.sync.loadAllMsgs() self.refreshcount += 1 else: self.sync.loadUnseen() if timered: self.refreshcount += 1 self.lastRefresh = time.time() # se a data foi alterada para trás reajusta o último refresh elif now < self.lastRefresh: self.lastRefresh = now - self.ieRefreshTime # checks for new mail and notify the user as needed. May redefine refreshMinutes. ImapCheckMailService.runService(self, timered) # verifica se o próximo refresh deve acontecer antes de passar 'refreshMinutes' nextrefresh = self.lastRefresh + self.ieRefreshTime if nextrefresh < time.time() + (self.refreshMinutes * 60): self.refreshMinutes = max(0, nextrefresh - time.time()) / 60 else: if self.logged: self.close() self.doLogin()
def __init__(self, app, user, passwd): ImapCheckMailService.__init__(self, app, user, passwd) self.sync = MailSynchronizer() self.sync.deleteHandler = self self.refreshcount = 0 # refreshMinutes pode ser alterado pela classe CheckMailService. # Só atualiza o iexpresso a cada 3 minutos. self.ieRefreshTime = 60 * 3 #segundos # time.time() retorna em segundos self.lastRefresh = time.time() - self.ieRefreshTime self.logged = False
def processTip(self, subjects, tip): tip = ImapCheckMailService.processTip(self, subjects, tip) return tip + '\n' + self.sync.getQuotaStr()
def onQuit(self): try: ImapCheckMailService.onQuit(self) finally: self.close()