def do_weipai(self, tpe, level): dicdata = { 'level' : str(level), 'op' : 1021, 'type' : str(tpe), } retry = 10 t = 1 while t <= retry: try: res = '' sanguo = Sanguo() sanguo.login() sanguo.login() data = sanguo.compose_data(dicdata) sanguo.tcpClientSock.send(data) #res += sanguo.tcpClientSock.recv(1024) time.sleep(2) res += sanguo.tcpClientSock.recv(4096) if len(res) < 5: raise Exception() data = util.decode_data(res) if not data or len(data) < 1: logger.error('no data') raise Exception() sanguo.close() if not data[0].has_key('exception'): self.add_cost(tpe, level) return data except: #logger.error(traceback.format_exc()) time.sleep(2) t += 1
def get_pozen_info(self, campaignid): dicdata = { 'op' : 3001, 'campaignId' : int(campaignid) } retry = 10 t = 1 while t <= retry: try: res = '' sanguo = Sanguo() sanguo.login() sanguo.login() data = sanguo.compose_data(dicdata) sanguo.tcpClientSock.send(data) time.sleep(2) res += sanguo.tcpClientSock.recv(4096) if len(res) < 5: raise Exception() data = util.decode_data(res) if not data or len(data) < 1: logger.error('no data') raise Exception() sanguo.close() return data[1]['armys'] except: time.sleep(2) t += 1
def send_data(dicdata, check_key=None): retry = 10 t = 1 while t <= retry: try: sanguo = Sanguo() sanguo.login() sanguo.login() data = sanguo.compose_data(dicdata) sanguo.tcpClientSock.send(data) res = sanguo.tcpClientSock.recv(4096) data = sanguo.decode(res) if check_key: if not data.has_key(check_key): raise Exception() sanguo.close() if not data: raise Exception() return data except: #logger.error(traceback.format_exc()) time.sleep(2) t += 1