summaryrefslogtreecommitdiff
path: root/megapixels/app/server
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-12-15 16:40:34 +0100
committerJules Laplace <julescarbon@gmail.com>2018-12-15 16:40:34 +0100
commit485cf0e4665c660d4e5e1fba00a95bc8036809c6 (patch)
tree80c9d7c9aace32c5c05e4441b5d2ca10ae2dd438 /megapixels/app/server
parent2ee8cd6a77c3efed77e58d706f4ee76418770e54 (diff)
db stuff
Diffstat (limited to 'megapixels/app/server')
-rw-r--r--megapixels/app/server/api.py89
1 files changed, 32 insertions, 57 deletions
diff --git a/megapixels/app/server/api.py b/megapixels/app/server/api.py
index 428c53b1..c5e27dd2 100644
--- a/megapixels/app/server/api.py
+++ b/megapixels/app/server/api.py
@@ -1,30 +1,13 @@
-from flask import Blueprint, jsonify
+import os
+import re
+import time
+from flask import Blueprint, request, jsonify
+from PIL import Image # todo: try to remove PIL dependency
from app.models.sql_factory import list_datasets, get_dataset, get_table
-# from jinja2 import TemplateNotFound
-
-# import os
-# import sys
-# import json
-# import time
-# import argparse
-# import cv2 as cv
-# import numpy as np
-# from datetime import datetime
-# from flask import Flask, request, render_template, jsonify
-# from PIL import Image # todo: try to remove PIL dependency
-# import re
-
-# sanitize_re = re.compile('[\W]+')
-# valid_exts = ['.gif', '.jpg', '.jpeg', '.png']
-
-# from dotenv import load_dotenv
-# load_dotenv()
-
-# from feature_extractor import FeatureExtractor
-
-# DEFAULT_LIMIT = 50
+sanitize_re = re.compile('[\W]+')
+valid_exts = ['.gif', '.jpg', '.jpeg', '.png']
api = Blueprint('api', __name__)
@@ -40,40 +23,32 @@ def show(name):
else:
return jsonify({ 'status': 404 })
-@api.route('/dataset/<name>/test', methods=['POST'])
-def test(name):
- print('hiiiiii')
- return jsonify({ 'test': 'OK', 'dataset': name })
-
-# @router.route('/<dataset>/face', methods=['POST'])
-# def upload(name):
-# file = request.files['query_img']
-# fn = file.filename
-# if fn.endswith('blob'):
-# fn = 'filename.jpg'
+@api.route('/dataset/<dataset>/face', methods=['POST'])
+def upload(name):
+ file = request.files['query_img']
+ fn = file.filename
+ if fn.endswith('blob'):
+ fn = 'filename.jpg'
-# basename, ext = os.path.splitext(fn)
-# print("got {}, type {}".format(basename, ext))
-# if ext.lower() not in valid_exts:
-# return jsonify({ 'error': 'not an image' })
+ basename, ext = os.path.splitext(fn)
+ print("got {}, type {}".format(basename, ext))
+ if ext.lower() not in valid_exts:
+ return jsonify({ 'error': 'not an image' })
-# uploaded_fn = datetime.now().isoformat() + "_" + basename
-# uploaded_fn = sanitize_re.sub('', uploaded_fn)
-# uploaded_img_path = "static/uploaded/" + uploaded_fn + ext
-# uploaded_img_path = uploaded_img_path.lower()
-# print('query: {}'.format(uploaded_img_path))
+ img = Image.open(file.stream).convert('RGB')
+
+ # vec = db.load_feature_vector_from_file(uploaded_img_path)
+ # vec = fe.extract(img)
+ # print(vec.shape)
+ # results = db.search(vec, limit=limit)
-# img = Image.open(file.stream).convert('RGB')
-# # img.save(uploaded_img_path)
-# # vec = db.load_feature_vector_from_file(uploaded_img_path)
-# vec = fe.extract(img)
-# # print(vec.shape)
+ query = {
+ 'timing': time.time() - start,
+ }
+ results = []
-# results = db.search(vec, limit=limit)
-# query = {
-# 'timing': time.time() - start,
-# }
-# print(results)
-# return jsonify({
-# 'results': results,
-# })
+ print(results)
+ return jsonify({
+ 'query': query,
+ 'results': results,
+ })