def post(self, week): week = int(week) title = self.request.POST.get('title') content = self.request.POST.get('content') if content: blog = breakdown.save_blog(week, title, content) view.render_json(self, build_blog_response(blog)) post = self.request.POST.get('post') == 'true' if post: breakdown.post_blog(week)
def get(self): data = {} for t in games.team_rankings(): team_name = str(t.key().name()) data[teams.id(team_name)] = { 'team': team_name, 'wins': t.wins, 'losses': t.losses, 'power_rank': t.power_rank, 'rush_defense': t.rush_defense_rank, 'rush_offense': t.rush_offense_rank, 'pass_defense': t.pass_defense_rank, 'pass_offense': t.pass_offense_rank, } view.render_json(self, data)
def get(self, week): week = int(week) data = [] for g in games.games_for_week(week): data.append({ 'date_str': g.date.strftime('%A, %b. %d'), 'time_str': g.date.strftime('%I:%M %p').lstrip('0'), 'datetime': time.mktime(g.tz_date().timetuple()), 'deadline': time.mktime(g.tz_deadline().timetuple()), 'favorite': teams.mascotname(g.favorite), 'spread': g.spread, 'home_team': { 'short': teams.shortname(g.home), 'city': teams.cityname(g.home), 'mascot': teams.mascotname(g.home), 'id': g.home, 'logo_x': g.home_x(), 'logo_y': g.home_y(), }, 'visiting_team': { 'short': teams.shortname(g.visiting), 'city': teams.cityname(g.visiting), 'mascot': teams.mascotname(g.visiting), 'id': g.visiting, 'logo_x': g.visiting_x(), 'logo_y': g.visiting_y(), } }) if not data: return None return view.render_json(self, data)
def get(self): data = defaultdict(list) entries_by_id = {} for e in entries.get_all_entries(): entries_by_id[e.key().id()] = e current_entry_id = None current_entry = None current_week = 1 for pick in entries.iterpicks(True): if current_entry_id != pick.entry_id: current_entry_id = pick.entry_id current_entry = entries_by_id[current_entry_id] current_week = 1 # fill empty weeks with buybacks while current_week < pick.week: data[current_entry.name].append({"status": "buyback", "team": ""}) current_week += 1 team = teams.shortname(pick.team) if pick.status not in (entries.Status.WIN, entries.Status.NONE): status = "violation" if pick.status == entries.Status.LOSS: status = "loss" if pick.buyback: status = "buyback" team = {"team": team, "status": status} data[entries_by_id[pick.entry_id].name].append(team) current_week += 1 return view.render_json(self, data)
def get(self, week): week = int(week) blog = breakdown.get_blog(week) (no_pick, picks, total) = breakdown.get_team_counts(week) status = breakdown.get_status_counts(week) data = { 'blog': build_blog_response(blog), 'stats': { 'no_pick': no_pick, 'teams': picks, 'total': total, 'wins': status.wins, 'losses': status.losses, 'violations': status.violations, }, } view.render_json(self, data)
def get(self): current_entry = None base = defaultdict(int) buybacks = defaultdict(int) prev_week = 0 for p in entries.iterpicks(): if current_entry != p.entry_id: current_entry = p.entry_id base[p.week] += 1 prev_week = 0 if p.buyback: buybacks[p.week] += p.week - prev_week prev_week = p.week data = { 'buybacks': dict((w,t*25) for w,t in buybacks.iteritems()), 'weeks': dict((w,t*w*25) for w,t in base.iteritems()) } data['total'] = sum(t for t in data['buybacks'].itervalues()) \ + sum(t for t in data['weeks'].itervalues()) view.render_json(self, data)
def return_comments(self, week, limit, before=None, after=None): data = [] count = 0 for c in breakdown.get_comments(week, limit + 1, before=before, after=after): count += 1 dt = copy.copy(c.created).replace(tzinfo=timezone.utc).astimezone(timezone.Pacific) data.append({ 'created_str': dt.strftime('%B %d, %H:%M %p').replace(' 0', ' '), 'created': c.created_ts(), 'text': c.text, 'user': c.username, }) if count == limit: break if data and before and data[-1]['created'] == int(before): # remove incorrectly match element from results... data = data[:-1] count -= 1 data = { 'limited': count >= limit, 'comments': data } view.render_json(self, data)
def _redirect(self, path, real): if real: self.redirect(path) else: view.render_json(self, {'redirect': path})