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): 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)