def upload_photo(): f = request.files['file'] header = f.headers['Content-Type'] parsed_header = parse_options_header(header) blob_key = parsed_header[1]['blob-key'] image = Image(blobKey=blob_key, id=blob_key) image.put() return make_response(blob_key, http.CREATED)
def get_image_by_link(): image = Image.query(Image.link == request.args.get(LINK)) if image.get() is not None: return make_response(jsonify({BLOB: image.get().blobKey}), http.OK) else: return make_response("No images", http.NOT_FOUND)
def get_images_collaborative(user, key_words, pictograms): def callback(images_used): return images_used.user recommended_images = pictograms images = Image.query(ndb.OR(Image.keyWords.keyWord.IN(key_words), Image.tags.tag.IN(key_words))).fetch(keys_only=True) if len(images) > 0: query = ImageUsed.query(ImageUsed.image.IN(images)) if query.count() > 0: users = query.map(callback) query = RelatedUsers.query(ndb.OR(RelatedUsers.user1 == user, RelatedUsers.user2 == user)).filter( ndb.OR(RelatedUsers.user1.IN(users), RelatedUsers.user2.IN(users))).order(- RelatedUsers.relation) related = query.fetch(LIMIT_OF_RUSERS) for ru in related: if ru.relation > MINIMUM_RELATION: related_user = ru.get_related_user(user) images_used = ImageUsed.query(ImageUsed.user == related_user, ImageUsed.image.IN(images)).order(ImageUsed.count) for image_used in images_used: image = image_used.image if not (image.id() in recommended_images): recommended_images.append({tfg_server.BLOB: image.id(), tfg_server.LINK: image.get().link}) break if len(recommended_images) > IMAGES_COLLABORATIVE: break else: break return recommended_images
def get_pictograms(key_words): images = [] pictograms = Image.query(Image.keyWords.keyWord.IN(PICTOGRAM_TAG), Image.tags.tag.IN(key_words)) for pictogram in pictograms: images.append({tfg_server.BLOB: pictogram.blobKey, tfg_server.LINK: pictogram.link}) return images