diff --git a/src/TranslationServer.py b/src/TranslationServer.py index 440ea54..3dcc227 100644 --- a/src/TranslationServer.py +++ b/src/TranslationServer.py @@ -5,11 +5,13 @@ from flask import Flask, request, send_file, abort from functools import wraps from PortGlosa import traduzir from subprocess import check_output -import os, argparse +from threading import Lock +import os, argparse, thread RUN_MODE=None BUNDLES_PATH=None conn=None +lock = Lock() app=Flask(__name__, static_url_path="", static_folder="/var/www/") def check_run_mode(func): @@ -101,18 +103,22 @@ def update_platform_db(platform_name): cursor.execute(query_string, (platform_name)); conn.commit() +def update_statistic(sign_name, sign_type, file_exists): + if RUN_MODE == "full": + with lock: + has = "YES" if file_exists else "NO" + value_sign_name = select_sign_db(sign_name) + if value_sign_name is None: + insert_sign_db(sign_name, 1, has) + else: + update_sign_db(sign_name, value_sign_name+1, has) + update_platform_db(sign_type) + def check_sign(sign_name, sign_type): if " " in sign_name or sign_type not in BUNDLES_PATH: abort(400) bundle_path = os.path.join(BUNDLES_PATH[sign_type], sign_name) file_exists = os.path.exists(bundle_path) - if RUN_MODE == "full": - has = "YES" if file_exists else "NO" - value_sign_name = select_sign_db(sign_name) - if value_sign_name is None: - insert_sign_db(sign_name, 1, has) - else: - update_sign_db(sign_name, value_sign_name+1, has) - update_platform_db(sign_type) + thread.start_new_thread(update_statistic, (sign_name, sign_type, file_exists)) if file_exists: return send_file(bundle_path, as_attachment=True) abort(404) -- libgit2 0.21.2