Exemple #1
0
    def _get_character_achievements(self, name, realm, site):
        urls = WoWSpyderLib.get_character_achievement_urls(name, realm, site)
        achievements = []

        for url in urls:
            source = self._download_url(url)
            achievements.append(self._parse_character_achievements( \
                StringIO.StringIO(source), name, realm, site))

        return WoWSpyderLib.merge(achievements)
Exemple #2
0
 def _get_character_statistics(self, name, realm, site):
     urls = WoWSpyderLib.get_character_statistics_urls(name, realm, site)
     statistics = []
     
     for url in urls:
         source = self._download_url(url)
         statistics.append(self._parse_character_statistics( \
             StringIO.StringIO(source), name, realm, site))
         
     return WoWSpyderLib.merge(statistics)
Exemple #3
0
    def _parse_guild_characters(self, name, realm, site):
        """Page through a guild, creating characters."""
        character_list = []

        log.debug(name + " " + realm + ": Downloading guild page")

        source = self._download_url( \
            WoWSpyderLib.get_guild_url(name, realm, site, page=1))

        character_list.append(self._parse_guild_file(StringIO.StringIO(source), site))

        return WoWSpyderLib.merge(character_list)
Exemple #4
0
             log.debug(battlegroup + " " + realm + \
                 ": Downloading arena page " + str(page) + " of " \
                 + str(max_pages))
             
             try:
                 source = self._download_url( \
                     WoWSpyderLib.get_arena_url(battlegroup, realm, site, page=page, \
                         ladder_number=ladder_number))
             except Exception, e:
                 log.warning("Couldn't get arena page, continuing... ERROR: " + str(e))
                 continue
             
             teams = self._parse_arena_file(StringIO.StringIO(source), site, get_characters=get_characters)
             all_teams.append(teams)
             
     return WoWSpyderLib.merge(all_teams)
         
 def _parse_arena_file(self, xml_file_object, site, get_characters=False):
     """Parse the XML of an arena page"""
     xml = minidom.parse(xml_file_object)
     team_nodes = xml.getElementsByTagName("arenaTeam")
     teams = []
     
     for team_node in team_nodes:
         name = team_node.attributes["name"].value
         realm = team_node.attributes["realm"].value
         size = team_node.attributes["size"].value
         
         try:
             team = self._tp.get_team(name, realm, site, size, get_characters=get_characters)
         except Exception, e: