def getRankings():
   scoresByType = {t : list() for t in ScoreType.types()}
   
   players = Player.all(keys_only=True)
   for player in players:
     playerId = player.id_or_name()
     scoresHelper = ScoresHelper(playerId)
     if scoresHelper.hasScores():
       for scoreType in ScoreType.types():
         score = scoresHelper.getScore(scoreType)
         scoresByType[scoreType].append({'playerId':playerId, 'score':score})
     
   
   # Sort scores
   for scoreType in ScoreType.types():
     scoresByType[scoreType] = sorted(scoresByType[scoreType], key=operator.itemgetter('score'), reverse=True)
   
   rankings = {}
   for scoreType in ScoreType.types():
     rank = 1
     rankings[scoreType] = {}
     for t in scoresByType[scoreType]:
       rankings[scoreType][t['playerId']] = rank
       rank += 1
   
   return rankings
Beispiel #2
0
 def get(self):
   # Create default players if none exist
   q = db.Query(Player)
   if q.count() == 0:
     for pname in self.DEFAULT_PLAYER_NAMES: Player(name=pname).put()
   
   players = [{'name' : p.name, 'id' : p.key().id_or_name()} for p in Player.all()]
   self.response.out.write(json.dumps(players))