def scrape(self): scrape_date = datetime.now() # Scrape yesterday's games up until 10am Central # Dates/times are UTC, which is 5 hours ahead of Central if scrape_date.hour < 15: scrape_date -= timedelta(days=1) for game in Scraper.game_data(scrape_date): Game.from_scoreboard_data(game) for stat in CachedStats.all(): stat.delete()
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)
def get(self, *a): start, end = daterange(a) games = [] while start <= end: for game in Scraper.game_data(start): games.append(Game.from_scoreboard_data(game)) start += timedelta(days=1) for stat in CachedStats.all(): stat.delete()