Commit c5e7c8c52858486988f7c026c1cd92af7ffd2ee8
1 parent
22654c8e
Exists in
devel
[TranslationServer] Modifica rota de download de bundles
Showing
1 changed file
with
13 additions
and
17 deletions
Show diff stats
src/TranslationServer.py
| 1 | 1 | #!/usr/bin/python |
| 2 | 2 | # -*- coding: utf-8 -*- |
| 3 | 3 | |
| 4 | -from flask import Flask, request, send_file, abort | |
| 4 | +from flask import Flask, request, abort, send_from_directory | |
| 5 | 5 | from functools import wraps |
| 6 | 6 | from PortGlosa import traduzir |
| 7 | 7 | from subprocess import check_output |
| ... | ... | @@ -103,7 +103,7 @@ def update_platform_db(platform_name): |
| 103 | 103 | cursor.execute(query_string, (platform_name)); |
| 104 | 104 | conn.commit() |
| 105 | 105 | |
| 106 | -def update_statistic(sign_name, sign_type, file_exists): | |
| 106 | +def update_statistic(sign_name, platform_name, file_exists): | |
| 107 | 107 | if RUN_MODE == "full": |
| 108 | 108 | with lock: |
| 109 | 109 | has = "YES" if file_exists else "NO" |
| ... | ... | @@ -112,16 +112,7 @@ def update_statistic(sign_name, sign_type, file_exists): |
| 112 | 112 | insert_sign_db(sign_name, 1, has) |
| 113 | 113 | else: |
| 114 | 114 | update_sign_db(sign_name, value_sign_name+1, has) |
| 115 | - update_platform_db(sign_type) | |
| 116 | - | |
| 117 | -def check_sign(sign_name, sign_type): | |
| 118 | - if " " in sign_name or sign_type not in BUNDLES_PATH: abort(400) | |
| 119 | - bundle_path = os.path.join(BUNDLES_PATH[sign_type], sign_name) | |
| 120 | - file_exists = os.path.exists(bundle_path) | |
| 121 | - thread.start_new_thread(update_statistic, (sign_name, sign_type, file_exists)) | |
| 122 | - if file_exists: | |
| 123 | - return send_file(bundle_path, as_attachment=True) | |
| 124 | - abort(404) | |
| 115 | + update_platform_db(platform_name) | |
| 125 | 116 | |
| 126 | 117 | @app.route("/translate", methods=['GET']) |
| 127 | 118 | def translate(): |
| ... | ... | @@ -135,12 +126,17 @@ def load_statistics_page(): |
| 135 | 126 | php_output = check_output(["php", page_path]) |
| 136 | 127 | return php_output |
| 137 | 128 | |
| 138 | -@app.route("/sign", methods=['GET']) | |
| 129 | +@app.route("/<platform>/<sign>", methods=['GET']) | |
| 139 | 130 | @check_run_mode |
| 140 | -def get_sign(): | |
| 141 | - sign_name = request.args.get('name').encode("UTF-8").upper() | |
| 142 | - sign_type = request.args.get('platform').encode("UTF-8").upper() | |
| 143 | - return check_sign(sign_name, sign_type) | |
| 131 | +def get_sign(platform, sign): | |
| 132 | + if " " in sign or platform not in BUNDLES_PATH: abort(400) | |
| 133 | + path = BUNDLES_PATH[platform] | |
| 134 | + bundle_path = os.path.join(path, sign) | |
| 135 | + file_exists = os.path.exists(os.path.join(path, sign)) | |
| 136 | + thread.start_new_thread(update_statistic, (sign, platform, file_exists)) | |
| 137 | + if file_exists: | |
| 138 | + return send_from_directory(BUNDLES_PATH[platform], sign) | |
| 139 | + abort(404) | |
| 144 | 140 | |
| 145 | 141 | if __name__ == "__main__": |
| 146 | 142 | parser = argparse.ArgumentParser(description='Translation server and signs download for VLibras.') | ... | ... |