Example #1
0
    def load(self, date):
        """
    Fetch game data from mlb.com and generate a list of Game objects
    """
        streams = self.loadStreams(date)
        iphone_xml = XML.ElementFromURL(Util.DateURL(date, C["URL"]["GAMES"]),
                                        cacheTime=C["GAME_CACHE_TTL"],
                                        isHTML=True)
        # for some reason switching to the soup parser (isHTML=True) made every game
        # appear twice.  keep track of which games we've already listed.
        games_parsed = {}
        for xml in iphone_xml.xpath('game'):
            game = Game.fromXML(xml)
            if game:
                try:
                    pseudo_id = game.home_team.fullName(
                    ) + game.away_team.fullName()
                except:
                    pseudo_id = None
                if pseudo_id in games_parsed:
                    continue
                games_parsed[pseudo_id] = True

                if game.event_id:
                    game.streams = streams[game.event_id]
                    # game.streams.game = game
                else:
                    game.streams = []
                self.append(game)
Example #2
0
 def loadGames(self, date, streams):
   """
   Fetch game data from mlb.com and generate a list of Game objects
   """
   games = []
   iphone_xml = XML.ElementFromURL(Util.DateURL(date, C["URL"]["GAMES"]), cacheTime=C["GAME_CACHE_TTL"])
   for xml in iphone_xml.xpath('game'):
     game = Game.fromXML(xml)
     game.streams = streams[game.event_id] if game.event_id else {}
     games.append(game)
   
   # move favorite team's game(s) to the top
   for i, game in enumerate(games):
     if game.home_team.isFavorite() or game.away_team.isFavorite():
       games.insert(0, games.pop(i))
   
   return games
Example #3
0
 def load(self, date):
   """
   Fetch game data from mlb.com and generate a list of Game objects
   """
   streams = self.loadStreams(date)
   iphone_xml = XML.ElementFromURL(Util.DateURL(date, C["URL"]["GAMES"]), cacheTime=C["GAME_CACHE_TTL"], isHTML=True)
   # for some reason switching to the soup parser (isHTML=True) made every game
   # appear twice.  keep track of which games we've already listed.
   games_parsed = {}
   for xml in iphone_xml.xpath('game'):
     game = Game.fromXML(xml)
     if game:
       try: pseudo_id = game.home_team.fullName() + game.away_team.fullName()
       except: pseudo_id = None
       if pseudo_id in games_parsed:
         continue
       games_parsed[pseudo_id] = True
       
       if game.event_id:
         game.streams = streams[game.event_id]
         # game.streams.game = game
       else:
         game.streams = []
       self.append(game)