def run(self): global FirstTime, Times logger.info('zengzanThread start') if Delay_Time > 0: logger.info('I will start zengzan at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) while True: ni = self.getNpcInfo() remain_times = ni.getNumber() if remain_times > 0: time.sleep(2) res = self.zengzan(Npc_String, remain_times + 100) if res.has_key('exception'): msg = res['exception']['message'] logger.info('zengzan exception: %s'%(msg)) if msg == 'waittingOrder': gi = GeneralInfo() sp = util.get_sleep_time(gi.get_mobility_CDTime(), gi.get_localTime()-gi.get_serverTime()) logger.info('I will sleep for mobility CD to %s'%(util.next_time(sp))) time.sleep(sp) FirstTime = True continue elif msg == 'lessMobility': return else: time.sleep(2) FirstTime = True continue nrt = util.get_next_refresh_time(ni.getServerTime()) sp = util.get_sleep_time(nrt, ni.getLocalTime()-ni.getServerTime()) + 1 logger.info('I will sleep till time %s'%(util.next_time(sp))) time.sleep(sp)
def run(self): logger.info('JianzhuThread start, will do %d times'%(Times)) #logger.info('I will jianzhu: ' + ' '.join(Jianzhu_List)) if Delay_Time > 0: logger.info('I will start jianzhu at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) inteval = 30 ci = 1 # old if Times > 0: while ci <= Times: for i in range(len(Jianzhu_List)): self.do_jianzhu(Jianzhu_List[i]) if i < len(Jianzhu_List) - 1: time.sleep(inteval) logger.info('sleeping %d seconds in %d time'%(Sleep_Time, ci)) logger.info('next round will at ' + util.next_time(Sleep_Time)) ci += 1 time.sleep(Sleep_Time) else: while True: # get general info gi = GeneralInfo() next_cd = gi.get_next_CDTime() stime = gi.get_serverTime() next_jname = self.get_next_jname(gi) sp = 0 if not next_jname: logger.info('I will send notify at server time: ' + util.next_time(gi.get_next_CDTime()-gi.get_serverTime())) time.sleep(max(0, gi.get_next_CDTime() - gi.get_serverTime())) logger.info('All jianzu has upgraded to max level, will exit') util.notify('All jianzu has upgraded to max level') break if next_cd > stime: sp = next_cd - stime + 1 if sp > 0: logger.info('I will start upgrade %s at %s'%(next_jname, util.next_time(sp))) time.sleep(sp) else: logger.info('I will start upgrade %s now'%(next_jname)) res = self.do_jianzhu(next_jname) if res.has_key('exception'): msg = res['exception']['message'] logger.error('Got Exception "%s", will exit'%(msg)) if msg == 'CDTimeNotCool': continue elif msg == 'noBuildTeamUsable': continue elif msg == 'maintenance': time.sleep(2000) continue return time.sleep(2)
def run(self): logger.info('KejiThread start, will do %d times'%(Times)) #logger.info('I upgrade keji: ' + ' '.join(Kid_List)) if Delay_Time > 0: logger.info('I will start keji at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) inteval = 30 ci = 1 if Times > 0: while ci <= Times: for i in range(len(Kid_List)): self.do_keji(Kid_List[i]) if i < len(Kid_List) - 1: time.sleep(inteval) if ci == Times: break logger.info('sleeping %d seconds in %d time'%(Sleep_Time, ci)) logger.info('next round will at ' + util.next_time(Sleep_Time)) ci += 1 time.sleep(Sleep_Time) else: while True: # get general info gi = GeneralInfo() ki = KejiInfo() next_keji_cd = gi.get_next_keji_CDTime() stime = gi.get_serverTime() next_kname = self.get_next_kname(gi, ki) sp = 0 if not next_kname: logger.info('I will send notify at server time: ' + util.next_time(gi.get_next_keji_CDTime() - gi.get_serverTime())) time.sleep(gi.get_next_keji_CDTime() - gi.get_serverTime()) logger.info('All keji has upgraded to max level, will exit') util.notify('All keji has upgraded to max level') break if next_keji_cd > stime: sp = next_keji_cd - stime + 1 if sp > 0: logger.info('I will start upgrade %s at %s'%(next_kname, util.next_time(sp))) time.sleep(sp) else: logger.info('I will start upgrade %s now'%(next_kname)) res = self.do_keji(next_kname) if res.has_key('exception'): msg = res['exception']['message'] logger.error('Got Exception "%s", will exit'%(msg)) if msg == 'CDTimeNotCool': continue return time.sleep(2)
def run(self): logger.info('weipai Thread start, will weipai type %s'%(Type)) if Delay_Time > 0: logger.info('I will start weipai at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) cnt = 1 while True: try: ml = self.get_max_level(Type) if int(ml) >= MaxLevel: msg = 'Weipai reach max level %s, TotalCost %d'%(ml, TotalCost) logger.info(msg) util.notify(msg) break logger.info('Type:%s MaxLevel:%s'%(Type, ml)) res = self.do_weipai(Type, ml) if res[0].has_key('exception'): msg = res[0]['exception']['message'] logger.info('got exception %s, TotalCost %d'%(msg, TotalCost)) if msg == 'CDTimeNotCool': gi = GeneralInfo() sp = gi.get_weipai_CDTime() - gi.get_serverTime() logger.info('Next round weipai will start at ' + util.next_time(sp)) time.sleep(sp) continue else: break try: eq = res[1]['resArr']['userEquip'] logger.info('Got Equip level=%s id=%s color=%s name=%s salePrice=%s maxPiece=%s currPiece=%s'%(ml, eq['id'], eq['type']['color'], eq['type']['name'], eq['type']['salePrice'], eq['maxPiece'], eq['currPiece'])) price = int(eq['type']['salePrice']) * int(eq['currPiece']) / int(eq['maxPiece']) if int(eq['type']['color']) <= SellColor: self.sell(eq['id'], price) else: logger.info('I will keep it') except: pass logger.info('finished %d time, TotalCost %d'%(cnt, TotalCost)) cnt += 1 time.sleep(2) except: logger.info(traceback.format_exc()) time.sleep(10)
def run(self): global Local_Server_Diff,Server_Time logger.info('MagicThread start') while True: try: gi = GeneralInfo() Server_Time = gi.get_serverTime() Local_Server_Diff = gi.get_localTime() - Server_Time #logger.info('Server_Time=%d Local_Server_Diff=%d'%(Server_Time, Local_Server_Diff)) magic = int(gi.get_magic()) logger.info('get magic=%d'%(magic)) self.notify(magic) self.get_next_half_hour() sp = Server_Time + Local_Server_Diff - int(time.time()) + 60 logger.info('I will sleep %d seconds'%(sp)) time.sleep(sp) except: logger.error(traceback.format_exc()) time.sleep(60)
def run(self): global g_previous_armyid logger.info('pozen Thread start, will pozen campaign %s'%(str(Campaign))) if Delay_Time > 0: logger.info('I will start pozen at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) #self.bianzhen('yanxing') time.sleep(2) for campaignid in Campaign: while True: try: #res = self.get_pozen_info(2) #print json.dumps(res, sort_keys = False, indent = 4) #return armyid = self.get_next_id(campaignid) if armyid is None: logger.info('pozen network error') time.sleep(2) continue elif armyid == -1: logger.info('pozen %d finished'%(campaignid)) break elif armyid == g_previous_armyid: logger.info('pozen %d falied, %d lose'%(campaignid, armyid)) return g_previous_armyid = armyid time.sleep(2) logger.info('pozen army %d'%(armyid)) res = self.do_pozen(armyid) if res.has_key('exception'): logger.error('Got Exception "%s"'%(res['exception']['message'])) if 'waittingOrder' == res['exception']['message']: gi = GeneralInfo() sp = util.get_sleep_time(gi.get_mobility_CDTime(), gi.get_localTime()-gi.get_serverTime()) logger.info('I will sleep for mobility CD to %s'%(util.next_time(sp))) time.sleep(sp) g_previous_armyid = 0 continue return time.sleep(2) except: logger.info(traceback.format_exc()) time.sleep(10)
def formatGeneralInfoLine(self, line): line = self.formatLine(line) slashIndex = line.find("/") if slashIndex != -1: status = line[0:slashIndex - 1] comment = line[slashIndex + 2:] else: status = line comment = "" return GeneralInfo(status, comment)
def run(self): logger.info('jinglianThread %s start, will jinglian to level %d'%(Eid, Level)) if Delay_Time > 0: logger.info('I will start jinglian at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) level = 0 while level < Level: res = util.send_command('jinglianEquip', Eid) if res is not None: sp = 298 if res.has_key('exception'): msg = res['exception']['message'] if msg == 'upFail': logger.info('jinglian fail') elif msg == 'CDTimeNotCool': time.sleep(2) gi = GeneralInfo() cd = gi.get_jinglian_CDTime() stime = gi.get_serverTime() if cd > stime: sp = cd - stime + 1 logger.info('I will sleep CD to %s'%(util.next_time(sp))) time.sleep(sp) else: time.sleep(2) continue else: logger.info('got Exception %s, exit'%(msg)) sys.exit() else: level = int(res['userEquip']['starLevel']) logger.info('jinglian to level %d'%(level)) if level >= Level: sys.exit() sp = 2 logger.info('next round will start at ' + util.next_time(sp)) time.sleep(sp) else: sp = 2 logger.info('network error, will start at ' + util.next_time(sp)) time.sleep(sp)
def run(self): logger.info('TaxThread start, will tax till remain %d times'%(Remain)) if Delay_Time > 0: logger.info('I will start tax at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) while True: gi = GeneralInfo() if gi.get_levy_remain() <= Remain: logger.info('Tax remain time is %d, will exit'%(gi.get_levy_remain())) return else: logger.info('Tax remain %d times'%(gi.get_levy_remain())) cd = gi.get_tax_CDTime() stime = gi.get_serverTime() if cd > stime: sp = cd - stime + 1 logger.info('I will sleep CD, will tax at %s'%(util.next_time(sp))) time.sleep(sp) else: time.sleep(1) res = self.do_tax() if res.has_key('exception'): logger.error('Got Exception "%s"'%(res['exception']['message'])) if 'beyondMaxSilver' == res['exception']['message']: if MaxSilverExit: return else: sp = 1800 logger.info('I will tax at %s'%(util.next_time(sp))) time.sleep(sp) continue time.sleep(60) time.sleep(1)
def run(self): while True: try: hlist = self.get_husong_list() serverTime = int(hlist['serverTime']) maxBlockTimes = int(hlist['userConvoyStatus']['maxBlockTimes']) blockTimes = int(hlist['userConvoyStatus']['blockTimes']) logger.info('blockTimes %d, maxBlockTimes %d'%(blockTimes, maxBlockTimes)) if blockTimes >= maxBlockTimes: logger.info('Reach maxBlockTimes %d, will exit'%(maxBlockTimes)) return find = self.find_lanjie_target(hlist['userConvoyStatus']['viewOtherConvoy'], serverTime) time.sleep(4) if find is not None: res = self.do_lanjie(find) # get suaxin cd gi = GeneralInfo() lanjiecd = max( gi.get_husong_suaxin_CDTime(), gi.get_block_CDTime() ) if lanjiecd <> 0: sp = lanjiecd - gi.get_serverTime() + 1 sp = max(sp , 0) logger.info('sleep cd, will start at %s'%(util.next_time(sp))) time.sleep(sp) else: time.sleep(2) # suaxin logger.info('suaxin husong list') self.suaxin_husong_list() time.sleep(2) except: logger.error(traceback.format_exc()) time.sleep(1200)
def run(self): logger.info('TouziThread start') if Delay_Time > 0: logger.info('I will start touzi at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) times = 0 while True: try: gi = GeneralInfo() next_touzi_cd = gi.get_touzi_CDTime() stime = gi.get_serverTime() sp = 0 if next_touzi_cd > stime: sp = next_touzi_cd - stime + 1 if sp > 0: logger.info('I will start touzi %s at %s'%(CityName, util.next_time(sp))) time.sleep(sp) else: logger.info('I will start touzi %s now'%(CityName)) res = self.do_touzi() if res.has_key('exception'): msg = res['exception']['message'] logger.error('Got Exception "%s", will exit'%(msg)) if msg == 'CDTimeNotCool': continue elif msg == 'in invest CD': continue return times += 1 logger.info('Succeed touzi %d times'%(times)) except: import traceback logger.error(traceback.format_exc()) time.sleep(100)
def run(self): logger.info('BossThread start') if Delay_Time > 0: logger.info('I will start attack at ' + util.next_time(Delay_Time)) time.sleep(Delay_Time) gi = GeneralInfo() start_time = util.get_xiongsou_refresh_time(gi.get_serverTime()) ls_diff = gi.get_localTime() - gi.get_serverTime() sp = util.get_sleep_time(start_time, ls_diff) + 1 if sp > 0: logger.info('I will sleep till start time, will attack at %s'%(util.next_time(sp))) time.sleep(sp) else: time.sleep(2) times = 0 while True: times += 1 if times > Times: logger.info('already attack %d times, exit'%(Times)) break res = self.do_attack() if res.has_key('exception'): logger.error('Got Exception "%s"'%(res['exception']['message'])) if 'attackCoolTime' == res['exception']['message']: times -= 1 else: break logger.info('attacked %d times'%(times)) gi = GeneralInfo() cd = gi.get_xiongsou_CDTime() stime = gi.get_serverTime() if cd > stime: sp = cd - stime + 1 logger.info('I will sleep CD, will attack at %s'%(util.next_time(sp))) time.sleep(sp) else: time.sleep(2)
def run(self): logger.info("weipai Thread start, will weipai type %s" % (Type)) if Delay_Time > 0: logger.info("I will start weipai at " + util.next_time(Delay_Time)) time.sleep(Delay_Time) cnt = 1 first_time = True rc = RoundControl() while True: try: ml = self.get_max_level(Type) if first_time: first_time = False else: if int(ml) >= MaxLevel: msg = "Weipai reach max level %s, TotalCost %d" % (ml, TotalCost) logger.info(msg) util.notify(msg) break logger.info("Type:%s MaxLevel:%s" % (Type, ml)) if not rc.can_continue(ml): rc.reset() gi = GeneralInfo() sp = gi.get_weipai_CDTime() - gi.get_serverTime() - 15 logger.info("Break by RoundControl, Next round weipai will start at " + util.next_time(sp)) time.sleep(sp) continue res = self.do_weipai(Type, ml) # res = util.send_command('weipai', Type, ml) if res[0].has_key("exception"): msg = res[0]["exception"]["message"] logger.info("got exception %s, TotalCost %d" % (msg, TotalCost)) if msg == "CDTimeNotCool": gi = GeneralInfo() sp = max(gi.get_weipai_CDTime() - gi.get_serverTime(), 0) logger.info("Next round weipai will start at " + util.next_time(sp)) time.sleep(sp) continue elif msg == "maintenance": logger.info("Got Exception %s" % (msg)) sp = 3600 logger.info("Next round weipai will start at " + util.next_time(sp)) time.sleep(sp) continue else: logger.info("Exit for Exception %s" % (msg)) break try: eq = res[1]["resArr"]["userEquip"] logger.info( "Got Equip level=%s id=%s color=%s name=%s salePrice=%s maxPiece=%s currPiece=%s" % ( ml, eq["id"], eq["type"]["color"], eq["type"]["name"], eq["type"]["salePrice"], eq["maxPiece"], eq["currPiece"], ) ) price = int(eq["type"]["salePrice"]) * int(eq["currPiece"]) / int(eq["maxPiece"]) if int(eq["type"]["color"]) <= SellColor: self.sell(eq["id"], price) else: if int(eq["type"]["color"]) > 5: msg = "Got Equip %s %s/%s, TotalCost %d" % ( eq["type"]["name"], eq["currPiece"], eq["maxPiece"], TotalCost, ) logger.info(msg) util.notify(msg) else: logger.info("I will keep it") except: pass logger.info("finished %d time, TotalCost %d" % (cnt, TotalCost)) cnt += 1 time.sleep(2) except: logger.info(traceback.format_exc()) time.sleep(10)