Example #1
0
 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))
Example #2
0
 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))
Example #3
0
 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))
Example #4
0
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
Example #5
0
  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!');
Example #6
0
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
Example #7
0
 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)
Example #8
0
 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))
Example #9
0
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)
Example #10
0
 def createLeague(self):
   l=League()
   teams=UserMeta.all().fetch(16)
   l.put()
   l.createLeague(teams)