def get(self, *a): return_type = self.request.get("as").lower() or "text" key_name = CachedStats.generate_key("".join(filter(None, a)), return_type) cached = CachedStats.get_by_key_name(key_name) if not cached: cached = CachedStats(key_name = key_name) (start, end) = daterange(a) league = LeagueStats() query = Game.all().filter("date >= ", start).filter("date <= ", end) for game in query.run(): league.add_stats(game.home_stats()) league.add_stats(game.away_stats()) if return_type == "json": cached.response = league.to_json() else: template_values = {'league_stats': league} template = JINJA_ENVIRONMENT.get_template('index.html') cached.response = template.render(template_values) cached.put() if return_type == "json": self.response.headers["Content-Type"] = "application/json" self.response.write(cached.response) else: self.response.write(cached.response)
game_dates = [] if len(sys.argv) > 1: date_str = sys.argv[1] if date_str == "yesterday": game_dates.append(date.today() - timedelta(days=1)) elif date_str == "week": dte = date.today() cur_day = dte.weekday() if cur_day == 0: # If today is Monday, assume we want last week's stats dte -= timedelta(days=1) cur_day = dte.weekday() while cur_day >= 0: game_dates.append(dte) dte -= timedelta(days=1) cur_day -= 1 else: game_dates.append(datetime.strptime(date_str, "%Y%m%d")) if len(game_dates) == 0: game_dates.append(date.today()) league = LeagueStats() for game_date in game_dates: for game in Scraper.game_data(game_date): for team in game_stats(game): league.add_stats(team) print league