def _smartSleep(deleteNumber): global __LASTDELETENUMBER__, __SLEEPLEVEL__, __CURRENTSLEEPLEVEL__ #当上一次和本次删帖数都为0时,增大等待时间 if __LASTDELETENUMBER__ == 0 and deleteNumber == 0 and __CURRENTSLEEPLEVEL__ != 5: __CURRENTSLEEPLEVEL__ += 1 if __LASTDELETENUMBER__ != 0: #本次删帖数增加超过30%,就减少等待时间 if (deleteNumber - __LASTDELETENUMBER__) / float(__LASTDELETENUMBER__) > 0.5: if __CURRENTSLEEPLEVEL__ != 0: __CURRENTSLEEPLEVEL__ -= 1 #同理,删帖数降低则增大等待时间 elif (__LASTDELETENUMBER__ - deleteNumber) / float(__LASTDELETENUMBER__) > 0.5: if __CURRENTSLEEPLEVEL__ != 5: __CURRENTSLEEPLEVEL__ +=1 __LASTDELETENUMBER__ = deleteNumber sleep(int(60 * __SLEEPLEVEL__[__CURRENTSLEEPLEVEL__]))
def _delete(config, keywords): deleteCount = 0 stdLog(u'获取首页...', 'info') threadDataList = getThreadDataList(config['forum']) for threadData in threadDataList: if _judgeThread(threadData, config, keywords): if _deleteThread(threadData, config): deleteCount += 1 if not config['debug']: sleep(5) else: sleep(5) return if deleteCount != 0: stdLog(u'删除 {0} 个帖子'.format(deleteCount), 'info') #仅在未开启调试,且删帖数为0时才显示 elif not config['debug']: stdLog(u'等待更多新帖...', 'info') _smartSleep(deleteCount) else : sleep(5)