Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)