diff --git a/src/TranslationServer.py b/src/TranslationServer.py index 9737277..2860f94 100644 --- a/src/TranslationServer.py +++ b/src/TranslationServer.py @@ -35,14 +35,24 @@ def dict_mode(): WEBGL_SIGNS_PATH=os.path.join(SIGNS_PATH, "WEBGL") BUNDLES_PATH={"IOS":IOS_SIGNS_PATH, "ANDROID":ANDROID_SIGNS_PATH, "STANDALONE":STANDALONE_SIGNS_PATH, "WEBGL":WEBGL_SIGNS_PATH} -def full_mode(): - dict_mode() +def connect_database(): import MySQLdb, warnings global conn warnings.filterwarnings('ignore', category=MySQLdb.Warning) - conn = MySQLdb.connect(user="root", db="signsdb") + while True: + try: + conn = MySQLdb.connect(user="root", db="signsdb") + except: + print "Trying to connect to the database...\n" + sleep(5) + continue + break check_database() +def full_mode(): + dict_mode() + connect_database() + def logger(): global app logfile = os.path.join(os.environ['HOME'], "translate.log") @@ -95,54 +105,89 @@ def check_database(): cursor.close() def insert_sign_db(sign_name, value, has): - cursor = conn.cursor() - query_string = "INSERT INTO signs (sign_name, amount, has) VALUES (%s, %s, %s)" - cursor.execute(query_string, (sign_name, value, has)); - conn.commit() + try: + cursor = conn.cursor() + query_string = "INSERT INTO signs (sign_name, amount, has) VALUES (%s, %s, %s)" + cursor.execute(query_string, (sign_name, value, has)); + conn.commit() + except MySQLdb.OperationalError: + connect_database() + print "Reconnecting..." + insert_sign_db(sign_name, value, has) def update_sign_db(sign_name, amount, has): - cursor = conn.cursor() - query_string = "UPDATE signs SET amount=%s, has=%s WHERE sign_name=%s" - cursor.execute(query_string, (amount, has, sign_name)); - conn.commit() + try: + cursor = conn.cursor() + query_string = "UPDATE signs SET amount=%s, has=%s WHERE sign_name=%s" + cursor.execute(query_string, (amount, has, sign_name)); + conn.commit() + except MySQLdb.OperationalError: + connect_database() + print "Reconnecting..." + update_sign_db(sign_name, amount, has) def select_sign_db(sign_name): - cursor = conn.cursor() - query_string = "SELECT amount FROM signs WHERE sign_name=%s" - cursor.execute(query_string, (sign_name)); try: - amount = cursor.fetchone()[0] - except TypeError: - return None - return amount + cursor = conn.cursor() + query_string = "SELECT amount FROM signs WHERE sign_name=%s" + cursor.execute(query_string, (sign_name)); + try: + amount = cursor.fetchone()[0] + except TypeError: + return None + return amount + except MySQLdb.OperationalError: + connect_database() + print "Reconnecting..." + select_sign_db(sign_name) def insert_translation_db(text, gloss): - cursor = conn.cursor() - query_string = "INSERT INTO translations (text, gloss, amount) VALUES (%s, %s, %s)" - cursor.execute(query_string, (text, gloss, 1)); - conn.commit() + try: + cursor = conn.cursor() + query_string = "INSERT INTO translations (text, gloss, amount) VALUES (%s, %s, %s)" + cursor.execute(query_string, (text, gloss, 1)); + conn.commit() + except MySQLdb.OperationalError: + connect_database() + print "Reconnecting..." + insert_translation_db(text, gloss) def update_translation_db(text, gloss): - cursor = conn.cursor() - query_string = "UPDATE translations SET amount=amount+1 WHERE text=%s AND gloss=%s" - cursor.execute(query_string, (text, gloss)); - conn.commit() + try: + cursor = conn.cursor() + query_string = "UPDATE translations SET amount=amount+1 WHERE text=%s AND gloss=%s" + cursor.execute(query_string, (text, gloss)); + conn.commit() + except MySQLdb.OperationalError: + connect_database() + print "Reconnecting..." + update_translation_db(text, gloss) def select_translation_db(text, gloss): - cursor = conn.cursor() - query_string = "SELECT amount FROM translations WHERE text=%s AND gloss=%s" - cursor.execute(query_string, (text, gloss)); try: - amount = cursor.fetchone()[0] - except TypeError: - return None - return amount + cursor = conn.cursor() + query_string = "SELECT amount FROM translations WHERE text=%s AND gloss=%s" + cursor.execute(query_string, (text, gloss)); + try: + amount = cursor.fetchone()[0] + except TypeError: + return None + return amount + except MySQLdb.OperationalError: + connect_database() + print "Reconnecting..." + select_translation_db(text, gloss) def update_platform_db(platform_name): - cursor = conn.cursor() - query_string = "UPDATE platforms SET amount=amount+1 WHERE platform_name=%s" - cursor.execute(query_string, (platform_name)); - conn.commit() + try: + cursor = conn.cursor() + query_string = "UPDATE platforms SET amount=amount+1 WHERE platform_name=%s" + cursor.execute(query_string, (platform_name)); + conn.commit() + except MySQLdb.OperationalError: + connect_database() + print "Reconnecting..." + update_platform_db(platform_name) def update_database_statistic(sign_name, platform_name, file_exists): if RUN_MODE == "full": -- libgit2 0.21.2