def tolist(obj): if not isinstance(obj, list): if isinstance(obj, unicode): return [object_dict({'value': obj})] return [obj] else: return obj
def tolist(obj): if not isinstance(obj, list): if isinstance(obj, unicode): return [object_dict({'value':obj})] return [obj] else: return obj
def do(*args): self = object_dict() #moke the MAClient class for k in plugin_vals: setattr(self, k, plugin_vals[k]) self._dopost = lambda *args, **kwargs: _dopost(self, *args, **kwargs) self.tolist = tolist #get guild id resp, ct = self._dopost('mainmenu') if resp['error']: return if ct.header.your_data.guild_join_state != '1': self.logger.error('你还木有加入公会o(` · ~ · ′。)o ') return self.guild_id = ct.header.your_data.guild_id self.guild_name = ct.header.your_data.guild_name #select pvp lake PVP_LAKE_ID = -1 resp, ct = self._dopost('battle/area') if resp['error']: return for l in ct.body.competition_parts.lake: if hasattr(l, 'event_id') and int(l.event_id) >= 70: #test PVP_LAKE_ID = int(l.event_id) if PVP_LAKE_ID == -1: self.logger.error('公会PVP湖未找到("▔□▔)') return #request enemy guild resp, ct = self._dopost( 'battle/guild/lobby', postdata='event_id=%s&event_part_id=0&guild_id=%s' % (PVP_LAKE_ID, self.guild_id)) if resp['error']: return #self.logger.info() e_guild = ct.body.guild_battle_info.enemy_guild_info m_guild = ct.body.guild_battle_info.my_guild_info self.logger.info( ('土豪券 剩余%03s\n' % ct.body.ticket_num) + '[%s] Lv.%02s ID:%s\n' '本场战斗点数:%03s 累积点数:%03s\n' '本场对战记录: %s胜%s败 排名:%s\n' '============= VS =============\n' '[%s] Lv.%02s ID:%s\n' '本场战斗点数:%03s 累积点数:%03s\n' '本场对战记录: %s胜%s败 排名:%s' % (m_guild.guild_name.center(8), m_guild.guild_level, m_guild. guild_id, m_guild.daily_battle_point, m_guild.season_battle_point, m_guild.win_count, m_guild.lose_count, m_guild.ranking, e_guild.guild_name.center(8), e_guild.guild_level, e_guild.guild_id, 0 if e_guild.daily_battle_point == {} else e_guild.daily_battle_point, e_guild.season_battle_point, e_guild.win_count, e_guild.lose_count, e_guild.ranking)) #request member list resp, ct = self._dopost( 'battle/guild/enemy_member_list', postdata='enemy_guild_id=%s&event_id=%s&event_part_id=0&guild_id=%s' % (e_guild.guild_id, PVP_LAKE_ID, self.guild_id)) if resp['error']: return e_members = self.tolist(ct.body.enemy_member_list.guild_member) #see guild_member_list example #f**k! target = random.choice(e_members) resp, ct = self._dopost( 'battle/guild/battle', postdata= 'battle_type=%s&defender_guild_id=%s&event_id=%s&guild_id=%s&user_id=%s' % (2, e_guild.guild_id, PVP_LAKE_ID, self.guild_id, target.user.id)) if resp['error']: return result = ct.body.battle_result out_str = [] if result.winner == '1': self.logger.info('YOU WIN 233') else: self.logger.info('YOU LOSE TAT') self.logger.info('G+%s EXP+%s' % (int(result.after_gold) - int(result.before_gold), int(result.before_exp) - int(result.after_exp))) if result.after_level != result.before_level: self.logger.info('升级了:↑%s' % result.after_level) event_result = result.battle_event_result self.logger.info( 'PVP点数:+%s(%s) 倍率:%s 持续时间:%s(%s)' % (event_result.get_point, event_result.battle_point, event_result.bonus_rate, hms(int(event_result.bonus_end_time[:-3]) - time.time()), time.strftime( '%X', time.localtime(int( event_result.bonus_end_time[:-3]))))) #[:-3] => /1000
def test_object_dict_of_object_dict(self): od = object_dict() od.test = object_dict({'name': 'test_two', 'value': 2}) self.assertEquals(od.test.name, 'test_two') self.assertEquals(od.test.value, 2) self.assertEquals(od.test, {'name': 'test_two', 'value': 2})
def test_object_dict_returns_value(self): od = object_dict() od.test = {'value': 1} self.assertEquals(od.test, 1)
def test_object_dict(self): od = object_dict() od.fish = 'fish' self.assertEquals(od['fish'], 'fish')
def do(*args): self = object_dict() #moke the MAClient class for k in plugin_vals: setattr(self, k, plugin_vals[k]) self._dopost = lambda *args, **kwargs:_dopost(self, *args, **kwargs) self.tolist = tolist #get guild id resp, ct = self._dopost('mainmenu') if resp['error']: return if ct.header.your_data.guild_join_state != '1': self.logger.error('你还木有加入公会o(` · ~ · ′。)o ') return self.guild_id = ct.header.your_data.guild_id self.guild_name = ct.header.your_data.guild_name #select pvp lake PVP_LAKE_ID = -1 resp, ct = self._dopost('battle/area') if resp['error']: return for l in ct.body.competition_parts.lake: if hasattr(l, 'event_id') and int(l.event_id) >= 70:#test PVP_LAKE_ID = int(l.event_id) if PVP_LAKE_ID == -1: self.logger.error('公会PVP湖未找到("▔□▔)') return #request enemy guild resp, ct = self._dopost('battle/guild/lobby', postdata = 'event_id=%s&event_part_id=0&guild_id=%s' % (PVP_LAKE_ID, self.guild_id)) if resp['error']: return #self.logger.info() e_guild = ct.body.guild_battle_info.enemy_guild_info m_guild = ct.body.guild_battle_info.my_guild_info self.logger.info(('土豪券 剩余%03s\n' % ct.body.ticket_num) + '[%s] Lv.%02s ID:%s\n' '本场战斗点数:%03s 累积点数:%03s\n' '本场对战记录: %s胜%s败 排名:%s\n' '============= VS =============\n' '[%s] Lv.%02s ID:%s\n' '本场战斗点数:%03s 累积点数:%03s\n' '本场对战记录: %s胜%s败 排名:%s' % ( m_guild.guild_name.center(8), m_guild.guild_level, m_guild.guild_id, m_guild.daily_battle_point, m_guild.season_battle_point, m_guild.win_count, m_guild.lose_count, m_guild.ranking, e_guild.guild_name.center(8), e_guild.guild_level, e_guild.guild_id, 0 if e_guild.daily_battle_point == {} else e_guild.daily_battle_point, e_guild.season_battle_point, e_guild.win_count, e_guild.lose_count, e_guild.ranking ) ) #request member list resp, ct = self._dopost('battle/guild/enemy_member_list', postdata = 'enemy_guild_id=%s&event_id=%s&event_part_id=0&guild_id=%s' % (e_guild.guild_id, PVP_LAKE_ID, self.guild_id)) if resp['error']: return e_members = self.tolist(ct.body.enemy_member_list.guild_member) #see guild_member_list example #f**k! target = random.choice(e_members) resp, ct = self._dopost('battle/guild/battle', postdata = 'battle_type=%s&defender_guild_id=%s&event_id=%s&guild_id=%s&user_id=%s' % (2, e_guild.guild_id, PVP_LAKE_ID, self.guild_id, target.user.id)) if resp['error']: return result = ct.body.battle_result out_str = [] if result.winner == '1': self.logger.info('YOU WIN 233') else: self.logger.info('YOU LOSE TAT') self.logger.info('G+%s EXP+%s' % (int(result.after_gold) - int(result.before_gold), int(result.before_exp) - int(result.after_exp))) if result.after_level != result.before_level: self.logger.info('升级了:↑%s' % result.after_level) event_result = result.battle_event_result self.logger.info('PVP点数:+%s(%s) 倍率:%s 持续时间:%s(%s)' % (event_result.get_point, event_result.battle_point, event_result.bonus_rate, hms(int(event_result.bonus_end_time[:-3]) - time.time()), time.strftime('%X', time.localtime(int(event_result.bonus_end_time[:-3])))))#[:-3] => /1000