def handleWebRequest(emailId): if emailId is not None: dbConn = dbConnect.dbConnect(siteConfig.dbHost, siteConfig.dbUser, siteConfig.dbPass, siteConfig.dbName, True) mailProcessor = eMailProcessor.eMailProcessor(gMailRepoRoot, gMailRepoType, siteConfig.debugEnabled) dbConn.dbConnect() userInfo = dbConn.fetchUserAccessToken(emailId) ''' Set inProgress to True in database. Fetch Emails. Process EMails. Set inProgress to False in database. ''' progressInfo = dbConn.getProgressInfo(emailId) if progressInfo['inProgress'] == 0 or progressInfo['inProgress'] is None: # dbConn.setProgressInfo(emailId, True) strDateTime = None if progressInfo['fetchDate'] is not None: dateTime = progressInfo['fetchDate'] month = dateTime.strftime("%B")[0:3] year = dateTime.strftime("%Y") day = dateTime.strftime("%d") strDateTime = day + '-' + month + '-' + year try: #downloadMails(emailId, userInfo['oauthToken'], userInfo['oauthSecret'], strDateTime) mailProcessor.processEMails(emailId) except: debugTraceInst.doPrintTrace(errorStringsInst.getFailedRequestError(), sys.exc_info()[2]) #dbConn.setProgressInfo(emailId, False, 100) dbConn.dbDisconnect()
if __name__ == '__main__': ''' Check if the request is triggered from the Web. If so, hand it over to appropriate handler. ''' if len(sys.argv) >1: handleWebRequest(sys.argv[1]) else: ''' Issue Fetch requests every 24 hour. ''' dbConn = dbConnect.dbConnect(siteConfig.dbHost, siteConfig.dbUser, siteConfig.dbPass, siteConfig.dbName, True) mailProcessor = eMailProcessor.eMailProcessor(gMailRepoRoot, gMailRepoType, siteConfig.debugEnabled) while 1: dbConn.dbConnect() userInfoList = dbConn.fetchAllAccessTokens() print 'Download Started at: %d'%(time.time()) for userInfo in userInfoList: ''' Set inProgress to True in database. Fetch Emails. Process EMails. Set inProgress to False in database. ''' progressInfo = dbConn.getProgressInfo(userInfo['emailId'])