diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2019-04-29 01:36:27 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2019-04-29 01:36:27 +0200 |
| commit | 86e34a1bc43d1995e20c52fa639412c46105d400 (patch) | |
| tree | 35623620556e6cfac2ca67e2b6f4f61cd2329e2a /check/app/server | |
| parent | dbfaa9024c844dd5c14259c858564e32149afd87 (diff) | |
Diffstat (limited to 'check/app/server')
| -rw-r--r-- | check/app/server/api.py | 28 |
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']) |
