def get(self): access_token=self.request.get('fbtoken') if not access_token: self.redirect("/") return profile=json.load(urllib.urlopen("https://graph.facebook.com/me?"+ urllib.urlencode(dict(access_token=access_token)))) id=profile["id"] user=UserMeta.all().filter("fb_id =",id).get() if user: rand_string=base64.urlsafe_b64encode(os.urandom(32)) if not user.auth_verify: user.auth_verify=[] user.auth_verify.append(rand_string) self.response.set_cookie("fb_user",id+":"+rand_string,expires=datetime.datetime.now()+datetime.timedelta(days=30)); user.access_token=access_token save_user(user) if not self.request.get('app'): self.redirect("/") else: self.response.out.write(json.dumps({"auth":id+":"+rand_string})) return else: if self.request.get('app'): self.response.out.write("Error") return template_values={'first_name':profile["first_name"],'surname':profile["last_name"],'fb_id':id,'access_token':access_token} template=jinja_environment.get_template('templates/signup.html') self.response.out.write(template.render(template_values))
def view_game(self,team_id=None): user_meta=get_meta() if not user_meta: self.redirect("/") team_user=None if team_id: team_user=UserMeta.get_by_id(int(team_id)) else: team_user=get_meta() round=int(self.request.get('round')) game=Game.all().filter("round =",round).get() team=get_team(team_user,game) if not team: self.response.out.write("Error: team not found") return batsmen=[] dnbat=[] bowlers=[] dnbowl=[] fielders=[] dnf=[] batsmen=PlayerGame.all().filter("game =",game).filter("player IN",team.batsmen).run() bowlers=PlayerGame.all().filter("game =",game).filter("player IN",team.bowlers).run() fielders=PlayerGame.all().filter("game =",game).filter("player IN",team.fielders).run() template_values={'user_meta':user_meta,'lockout':lockout(),'current_round':current_round,'batsmen':batsmen,'bowlers':bowlers,'fielders':fielders,'team':team,'game':game} if check_mobile(): template=jinja_environment.get_template('templates/mobile/game.html') else: template=jinja_environment.get_template('templates/game.html') self.response.out.write(template.render(template_values))
def get(self): user_meta=get_meta() if not user_meta: self.redirect("/") teams=UserMeta.all().order('-total_points') template_values={'user_meta':user_meta,'page':'ladder','teams':teams} if check_mobile(): template=jinja_environment.get_template('templates/mobile/ladder.html') else: template=jinja_environment.get_template('templates/ladder.html') self.response.out.write(template.render(template_values))
def get_meta(user=None): if not user: user=users.get_current_user() if not user: return fb_get_meta() meta=memcache.get("u"+user.user_id()) if meta is not None: return meta else: meta=UserMeta.all().filter('user_id =',user.user_id()).get() if meta is not None: memcache.add("u"+user.user_id(),meta) return meta
def post(self): if self.request.get('code')!='RESET': return self.response.out.write("Reset failed. No harm done") check_admin(self) players=Player.all().run() for p in players: p.batting_price=p.initial_batting_price p.bowling_price=p.initial_bowling_price p.fielding_price=p.initial_fielding_price p.put() usermetas=UserMeta.all().run() for u in usermetas: u.total_trades=10 u.round_trades=2 u.total_points=0 u.put() teams=Team.all().run() for t in teams: if t.game.round > 1: t.delete() else: t.batting_score=0 t.bowling_score=0 t.fielding_score=0 t.total_score=0 t.put() playergames=PlayerGame.all().run() for p in playergames: p.delete() games=Game.all().run() for g in games: g.played=False g.result='tie' g.score="0/0" g.opposition_score="0/0" g.batExtras=0 g.bowlExtras=0 g.put() u=Utilities.all().get() u.current_round=1 u.next_game=Game.all().filter('round =',1).get() u.lockout=False u.put() memcache.flush_all() self.response.out.write('System reset. I hope you meant to do that!');
def fb_get_meta(): fb=webapp2.get_request().cookies.get("fb_user") if not fb: fb=webapp2.get_request().get("auth") if fb: fb=fb.split(":",1) meta=memcache.get("fb"+fb[0]) if meta is None: meta=UserMeta.all().filter('fb_id =',fb[0]).get() if meta is not None: memcache.add("fb"+fb[0],meta) if meta is not None: if len(fb)> 1 and fb[1] in meta.auth_verify: return meta else: return None else: return None
def get(self): check_admin(self) us=UserMeta.all().run() for u in us: budget=209000 team=Team.all().filter('user =',u).get() if team: for k in team.batsmen: p=db.get(k) budget -= p.batting_price for k in team.bowlers: p=db.get(k) budget -= p.bowling_price for k in team.fielders: p=db.get(k) budget -= p.fielding_price u.budget = budget save_user(u)
def get(self,team_id=None): user_meta=get_meta() if not user_meta: self.redirect("/") if self.request.get('round'): self.view_game(team_id) return team_user=None if team_id: team_user=UserMeta.get_by_id(int(team_id)) else: team_user = get_meta() game=next_game() round=current_round()-1 if round < 0: round = 5 if not game: game=Game.all().filter("round =", round).get() team=get_team(team_user,game) if not team: if team_user.key()!=user_meta.key(): self.response.out.write("Error: team not found") else: self.redirect('/team/select') return batsmen=[] bowlers=[] fielders=[] for key in team.batsmen: batsmen.append(Player.get(key)) for key in team.bowlers: bowlers.append(Player.get(key)) for key in team.fielders: fielders.append(Player.get(key)) template_values={'user_meta':user_meta,'lockout': lockout(),'current_round':current_round(),'batsmen':batsmen,'bowlers':bowlers,'fielders':fielders,'team_user':team_user,'team':team} if check_mobile(): template=jinja_environment.get_template('templates/mobile/view_team.html') else: template=jinja_environment.get_template('templates/view_team.html') self.response.out.write(template.render(template_values))
def game_completed(game): utilities=Utilities.all().get() next_game=Game.all().filter('round =',utilities.next_game.round+1).get() team.finish_round(game,next_game) game.played=True if game.key() == utilities.next_game.key(): utilities.next_game=next_game memcache.set("next_game",next_game) if utilities.next_game: utilities.current_round=utilities.next_game.round memcache.set("current_round",utilities.current_round) else: utilities.current_round=-1 memcache.set("current_round",-1) utilities.lockout=False memcache.set("lockout",False) utilities.put() for u in UserMeta.all().run(): u.round_trades=2 if utilities.current_round == -1: u.round_trades=0 save_user(u)
def createLeague(self): l=League() teams=UserMeta.all().fetch(16) l.put() l.createLeague(teams)