Exemplo n.º 1
0
def tolist(obj):
    if not isinstance(obj, list):
        if isinstance(obj, unicode):
            return [object_dict({'value': obj})]
        return [obj]
    else:
        return obj
Exemplo n.º 2
0
def tolist(obj):
    if not isinstance(obj, list):
        if isinstance(obj, unicode):
            return [object_dict({'value':obj})]
        return [obj]
    else:
        return obj
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
 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})
Exemplo n.º 5
0
 def test_object_dict_returns_value(self):
     od = object_dict()
     od.test = {'value': 1}
     self.assertEquals(od.test, 1)
Exemplo n.º 6
0
 def test_object_dict(self):
     od = object_dict()
     od.fish = 'fish'
     self.assertEquals(od['fish'], 'fish')
Exemplo n.º 7
0
    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