Esempio n. 1
0
def getGameHighScores(game, count=10):
    """Returns high Scores for a Game.
    """
    logging.info('##################### getGameHighScores ##################')    
    ref_scores = game.scores.order('-points').fetch(count)
    deref_scores = utils.prefetch_refprops(ref_scores, models.Score.player)
    return deref_scores   
Esempio n. 2
0
def getUserCheckins(user, count=10):
    """Returns Checkins for a User.
    """
    # Data format:
    # [{'id':id,    
    #   'player': 
    #       {'name': name, 'fb_id': fb_id},
    #   'badges': 
    #       [{'name':name,'key_name':key_name,'image_url':image_url,'banner_url':banner_url}, 
    #        {'name':name,'key_name':key_name,'image_url':image_url,'banner_url':banner_url}],
    #   'created': '3 minutes ago',
    #   'game': 
    #     {'name': name,'mid':mid,'bgg_id':bgg_id,'bgg_image_url':bgg_url,'image_url':image_url},
    #   'message': 'message    
    #   'gamelog':
    #     {'note':note, 
    #      [{'winner':boolean, 'points':int, 'name':player, 'fb_id':fb_id},
    #       {'winner':boolean, 'points':int, 'name':player, 'fb_id':fb_id}]
    #     } 
    #  }]    
    q_checkins = user.checkins.order('-created').fetch(count)
    deref_checkins = utils.prefetch_refprops(q_checkins, 
                                             models.Checkin.game)    
    checkins = []
    for c in deref_checkins:
        checkin = simplejson.loads(c.json)
        checkin['created'] = c.created
        checkin['id'] = str(c.key().id())
        checkins.append(checkin)
        logging.info('############# checkin ='+str(checkin)+' ##############')
    return checkins
Esempio n. 3
0
def getLatestCheckins(count=10):
    """Returns lastest Checkins.
    """
    logging.info('##################### getLatestCheckins ##################')    
    # Data format:
    # [{'id':id,     
    #   'player':
    #       {'name': name, 'fb_id': fb_id},
    #  'badges': 
    #       [{'name':name,'key_name':key_name,'image_url':image_url,'banner_url':banner_url}, 
    #        {'name':name,'key_name':key_name,'image_url':image_url,'banner_url':banner_url}],
    #   'created': '3 minutes ago',
    #   'game': 
    #     {'name': name, 'mid': mid, "bgg_id": bgg_id, "bgg_image_url": url, 'image_url':image_url},
    #    'message': 'message
    #  }]
    q = models.Checkin.all()
    q.order('-created')
    q_checkins = q.fetch(count)  
    deref_checkins = utils.prefetch_refprops(q_checkins, 
                                             models.Checkin.game)    
    checkins = []
    for c in deref_checkins:
        checkin = simplejson.loads(c.json)
        checkin['created'] = c.created
        checkin['id'] = str(c.key().id())
        checkins.append(checkin)
        logging.info('############# checkin ='+str(checkin)+' ##############')
    return checkins
Esempio n. 4
0
def getScoresFromFriends(profile_user, count=10):
    """Returns Scores for a User that were added by their friends.
    """
    logging.info('##################### getScoresFromFriends ###############')    
    query = profile_user.scores.filter('author !=', profile_user)
    ref_scores = query.fetch(count)
    deref_scores = utils.prefetch_refprops(ref_scores,
                                           models.Score.author,
                                           models.Score.game)
    return deref_scores   
Esempio n. 5
0
def getLatestCheckins(limit, time_since):
    """Returns lastest Checkins as a JSON Response.
    """
    logging.info(TRACE+'getLatestCheckins()')    
    q = models.Checkin.all()
    q.order("-created")
    q_checkins = q.fetch(limit)  
    deref_checkins = utils.prefetch_refprops(q_checkins, 
                                             models.Checkin.game)    
    data = []
    for c in deref_checkins:
        checkin = simplejson.loads(c.json)
        checkin["created"] = str(c.created)
        checkin["id"] = str(c.key().id())
        data.append(checkin)
    r = API200
    r['result'] = data 
    return r
Esempio n. 6
0
def getLatestUserCheckins(limit, time_since, fb_id):
    """Returns lastest Checkins for a given User as a JSON Response.
    """
    logging.info(TRACE+'getLatestUserCheckins()')
    user_key = db.Key.from_path('User', fb_id)   
    timestamp = datetime.datetime.fromtimestamp(time_since)
    q = models.Checkin.all()
    q.filter('created >', timestamp).filter('player =', user_key)
    q.order('-created', )    
    q_checkins = q.fetch(limit)  
    deref_checkins = utils.prefetch_refprops(q_checkins, 
                                             models.Checkin.game)    
    data = []
    for c in deref_checkins:
        checkin = simplejson.loads(c.json)
        checkin["created"] = str(c.created)
        checkin["id"] = str(c.key().id())
        data.append(checkin)
    r = API200
    r['result'] = data 
    return r
Esempio n. 7
0
def getUser(fb_id):
    """Returns JSON formated User Response.
    """
    logging.info(TRACE+'getUser('+fb_id+')')
    user = models.User.get_by_key_name(fb_id)    
    q_checkins = user.checkins.order('-created').fetch(10)
    deref_checkins = utils.prefetch_refprops(q_checkins, 
                                             models.Checkin.game)    
    checkins = []
    for c in deref_checkins:
        checkin = simplejson.loads(c.json)
        checkin['created'] = str(c.created)
        checkin['id'] = str(c.key().id())
        checkins.append(checkin)
    data = {'name': user.name, 
            'fb_id': fb_id, 
            'fb_profile_url': user.fb_profile_url,
            'fb_location_id': user.fb_location_id,
            'fb_location_name': user.fb_location_name,
            'checkins': checkins}

    r = API200
    r['result'] = data 
    return r
Esempio n. 8
0
 def query_from(cls, author):
     query = Post.all().filter("author =", author)
     objs = query.order("-created").fetch(100)
     prefetch_refprops(objs, Post.author)
     return objs
Esempio n. 9
0
 def query_for(cls, reader):
     query = PostIndex.all(keys_only=True).filter("b =", reader.key())
     indices = query.order("-created").fetch(100)
     objs = db.get([i.parent() for i in indices])
     prefetch_refprops(objs, Post.author)
     return objs