Commit 6ea2d50cfa7740a4d59263018a0db53d7d2ff1f3
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 | ... | ... |