Esempio n. 1
0
    def get(self):
        logging.info('Generate LeaderboardStats')

        cheevers = Cheever.query().order(-Cheever.numScore).fetch(10)
        for pos in range(0, cheevers.__len__()):
            leaderboardPos_key = ndb.Key('LeaderboardStats', str(pos) + 's')
            leaderboardPos = leaderboardPos_key.get()
            if not leaderboardPos:
                leaderboardPos = LeaderboardStats(key=leaderboardPos_key)

            leaderboardPos.populate(
                username=cheevers[pos].username,
                statType='score',
                value=cheevers[pos].numScore
            )
            leaderboardPos.put()

        cheevers = Cheever.query().order(-Cheever.numContribs).fetch(10)
        for pos in range(0, cheevers.__len__()):
            leaderboardPos_key = ndb.Key('LeaderboardStats', str(pos) + 'st')
            leaderboardPos = leaderboardPos_key.get()
            if not leaderboardPos:
                leaderboardPos = LeaderboardStats(key=leaderboardPos_key)

            leaderboardPos.populate(
                username=cheevers[pos].username,
                statType='contribution',
                value=cheevers[pos].numContribs
            )

            leaderboardPos.put()

        memcache.delete('contribStats')
        memcache.delete('scoreStats')