Commit 6ea2d50cfa7740a4d59263018a0db53d7d2ff1f3

Authored by Erickson Silva
1 parent cc482bb5
Exists in devel

Modifica TranslationSerer para armazenar informações sobre a plataforma dos sinais requisitados.

Showing 1 changed file with 30 additions and 17 deletions   Show diff stats
src/TranslationServer.py
... ... @@ -55,27 +55,36 @@ def init_mode(args):
55 55 def check_database():
56 56 cursor = conn.cursor()
57 57 cursor.execute('CREATE DATABASE IF NOT EXISTS signsdb;')
58   - query_string_table = """CREATE TABLE IF NOT EXISTS signs (
  58 + create_signs_table = """CREATE TABLE IF NOT EXISTS signs (
59 59 id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
60 60 sign_name VARCHAR(255) NOT NULL,
61 61 amount int NOT NULL,
62 62 has CHAR(3) )"""
63   - cursor.execute(query_string_table)
  63 + create_platforms_table = """CREATE TABLE IF NOT EXISTS platforms (
  64 + platform_name VARCHAR(255) NOT NULL PRIMARY KEY,
  65 + amount int NOT NULL )"""
  66 + insert_platforms_default = "INSERT IGNORE INTO platforms (platform_name, amount) VALUES (%s, %s)"
  67 + cursor.execute(create_signs_table)
  68 + cursor.execute(create_platforms_table)
  69 + cursor.execute(insert_platforms_default, ("ANDROID", 0))
  70 + cursor.execute(insert_platforms_default, ("IOS", 0))
  71 + cursor.execute(insert_platforms_default, ("WEBGL", 0))
  72 + cursor.execute(insert_platforms_default, ("STANDALONE", 0))
64 73 cursor.close()
65 74  
66   -def insert_row_db(sign_name, value, has):
  75 +def insert_sign_db(sign_name, value, has):
67 76 cursor = conn.cursor()
68 77 query_string = "INSERT INTO signs (sign_name, amount, has) VALUES (%s, %s, %s)"
69 78 cursor.execute(query_string, (sign_name, value, has));
70 79 conn.commit()
71 80  
72   -def update_row_db(sign_name, amount, has):
  81 +def update_sign_db(sign_name, amount, has):
73 82 cursor = conn.cursor()
74 83 query_string = "UPDATE signs SET amount=%s, has=%s WHERE sign_name=%s"
75 84 cursor.execute(query_string, (amount, has, sign_name));
76 85 conn.commit()
77 86  
78   -def select_row_db(sign_name):
  87 +def select_sign_db(sign_name):
79 88 cursor = conn.cursor()
80 89 query_string = "SELECT amount FROM signs WHERE sign_name=%s"
81 90 cursor.execute(query_string, (sign_name));
... ... @@ -85,19 +94,24 @@ def select_row_db(sign_name):
85 94 return None
86 95 return amount
87 96  
88   -def insert_or_update_sign_db(sign_name, has):
89   - value_sign_name = select_row_db(sign_name)
90   - if value_sign_name is None:
91   - insert_row_db(sign_name, 1, has)
92   - else:
93   - update_row_db(sign_name, value_sign_name+1, has)
  97 +def update_platform_db(platform_name):
  98 + cursor = conn.cursor()
  99 + query_string = "UPDATE platforms SET amount=amount+1 WHERE platform_name=%s"
  100 + cursor.execute(query_string, (platform_name));
  101 + conn.commit()
94 102  
95 103 def check_sign(sign_name, sign_type):
  104 + if " " in sign_name: abort(400)
96 105 bundle_path = os.path.join(BUNDLES_PATH[sign_type], sign_name)
97 106 file_exists = os.path.exists(bundle_path)
98 107 if RUN_MODE == "full":
99 108 has = "YES" if file_exists else "NO"
100   - insert_or_update_sign_db(sign_name, has)
  109 + value_sign_name = select_sign_db(sign_name)
  110 + if value_sign_name is None:
  111 + insert_sign_db(sign_name, 1, has)
  112 + else:
  113 + update_sign_db(sign_name, value_sign_name+1, has)
  114 + update_platform_db(sign_type)
101 115 if file_exists:
102 116 return send_file(bundle_path, as_attachment=True)
103 117 abort(404)
... ... @@ -117,14 +131,13 @@ def load_statistics_page():
117 131 @check_run_mode
118 132 def get_sign():
119 133 sign_name = request.args.get('name').encode("UTF-8").upper()
120   - if " " in sign_name: abort(400)
121 134 sign_type = request.args.get('type').encode("UTF-8").upper()
122 135 return check_sign(sign_name, sign_type)
123 136  
124 137 if __name__ == "__main__":
125   - parser = argparse.ArgumentParser(description='This is a PyMOTW sample program')
126   - parser.add_argument('--port', help='foo help', default=3000)
127   - parser.add_argument("--mode", help="Video title", default="translate")
  138 + parser = argparse.ArgumentParser(description='Translation server and signs download for VLibras.')
  139 + parser.add_argument('--port', help='Port where the server will be available.', default=3000)
  140 + parser.add_argument("--mode", help="So that the server will work.", default="translate")
128 141 args = parser.parse_args()
129 142 init_mode(args)
130 143 - app.run(host="0.0.0.0", port=int(args.port), threaded=True, debug=False)
  144 + app.run(host="0.0.0.0", port=int(args.port), threaded=True, debug=False)
131 145 \ No newline at end of file
... ...