summaryrefslogtreecommitdiff
path: root/check/app/server
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-04-29 01:36:27 +0200
committerJules Laplace <julescarbon@gmail.com>2019-04-29 01:36:27 +0200
commit86e34a1bc43d1995e20c52fa639412c46105d400 (patch)
tree35623620556e6cfac2ca67e2b6f4f61cd2329e2a /check/app/server
parentdbfaa9024c844dd5c14259c858564e32149afd87 (diff)
import csvHEADmaster
Diffstat (limited to 'check/app/server')
-rw-r--r--check/app/server/api.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/check/app/server/api.py b/check/app/server/api.py
index 324a63a..184e28d 100644
--- a/check/app/server/api.py
+++ b/check/app/server/api.py
@@ -30,6 +30,20 @@ def index():
"""
return jsonify({ 'status': 'ok' })
+def fetch_url(url):
+ if not url:
+ return None, 'no_image'
+ basename, ext = os.path.splitext(url)
+ if ext.lower() not in valid_exts:
+ return None, 'not_an_image'
+ ext = ext[1:].lower()
+
+ remote_request = urllib.request.Request(url)
+ remote_response = urllib.request.urlopen(remote_request)
+ raw = remote_response.read()
+ im = Image.open(io.BytesIO(raw)).convert('RGB')
+ return raw, im
+
def get_params(default_threshold=MATCH_THRESHOLD, default_limit=MATCH_LIMIT):
try:
threshold = int(request.form.get('threshold') or default_threshold)
@@ -58,17 +72,9 @@ def get_params(default_threshold=MATCH_THRESHOLD, default_limit=MATCH_LIMIT):
# Fetch remote URL
else:
url = request.form.get('url')
- if not url:
- return None, 'no_image'
- basename, ext = os.path.splitext(url)
- if ext.lower() not in valid_exts:
- return None, 'not_an_image'
- ext = ext[1:].lower()
-
- remote_request = urllib.request.Request(url)
- remote_response = urllib.request.urlopen(remote_request)
- raw = remote_response.read()
- im = Image.open(io.BytesIO(raw)).convert('RGB')
+ raw, im = fetch_url(url)
+ if raw is None:
+ return raw, im # error
return (threshold, limit, url, ext, raw, im,), None
@api.route('/v1/match', methods=['POST'])