Exemple #1
0
    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()
Exemple #2
0
 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
Exemple #3
0
 def processTip(self, subjects, tip):
     tip = ImapCheckMailService.processTip(self, subjects, tip)
     return tip + '\n' + self.sync.getQuotaStr()
Exemple #4
0
 def onQuit(self):
     try:
         ImapCheckMailService.onQuit(self)
     finally:
         self.close()