def get_gallery_faces(sort_order='-chrono', with_tags=None, limit=9, user_id=None, page=0): ''' sort_order: 'chrono', '-chrono': chronological order 'score', '-score': sorted by score add if user_id has tagged each picture''' global FacePictures if sort_order == '-chrono': sort_query = {'datetime': -1} elif sort_order == 'chrono': sort_query = {'datetime': 1} elif sort_order == '-score': sort_query = {'score': -1} elif sort_order == 'score': sort_query = {'score': 1} else: # default soring order sort_query = {'datetime': -1} query = {'tag': {'$in': with_tags}} return FacePictures.find(query, sort=sort_query, limit=limit, skip=page * limit)
def get_random_face(extra_query=None, update_views=False): global FacePictures cursor = FacePictures.find(extra_query) nb_faces = cursor.count() rand = random.randint(0, nb_faces - 1) try: face = cursor[rand:rand][0] add_one_view_to(face) return face except KeyError: return None
def get_faces_for_raw_picture(facebook_id): return FacePictures.find({_FACEBOOK_ID: facebook_id})