From 812da5dcfd15404c8803229dff7eeb14e0ea1134 Mon Sep 17 00:00:00 2001 From: siegmund0 <54911521+siegmund0@users.noreply.github.com> Date: Wed, 4 Sep 2019 16:35:33 -0300 Subject: [PATCH] Add files via upload --- script.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 script.py diff --git a/script.py b/script.py new file mode 100644 index 0000000..ff4619c --- /dev/null +++ b/script.py @@ -0,0 +1,59 @@ +from time import sleep +from os.path import getmtime +import json +import mysql.connector +import glob +import sys +import re +from pathlib import Path + +# prepare stuff +JSON_FILES="C:/dayzserver/ServerProfiles/Leaderboard/*.json" # Tipo de archivo a ver +POLLINNG_TIME = 60 # Cada cuanto tiempo detecta cambios (segundos) +FIELDS_TO_INSERT = ["id", "animalsKilled", "name", "deathsToZCount", "deathsToNaturalCauseCount", "deathsToAnimalCount", "suicideCount" +, "longestShot", "zKilled", "timeSurvived", "distTrav"] + +sql_insert = "REPLACE INTO NombreTabla ("+ (','.join(FIELDS_TO_INSERT)) +") VALUES ("+ ','.join("%s" for _ in FIELDS_TO_INSERT) +")" + + +def update_db(file, cursor): + fname = Path(file).name + with open(file) as f: + data = json.load(f) + data["id"] = re.match("Stats-(\\d*)\\.json", fname).group(1) + data["animalsKilled"] = len(data["animalsKilled"]) + values = tuple([data[x] for x in FIELDS_TO_INSERT]) + cursor.execute(sql_insert, values) + +last_modified_map = {} +db = None +try: + db = mysql.connector.connect( + host="localhost", + user="Usuario", + passwd="", + database = "NombreDB" + ) + cursor = db.cursor() + + while True: + needs_to_commit = False + + for file in glob.glob(JSON_FILES): + new_lm = getmtime(file) + last_modified = last_modified_map.get(file) + if new_lm != last_modified: + needs_to_commit = True + update_db(file, cursor) + + last_modified_map[file] = new_lm + + + if needs_to_commit: + db.commit() + + sleep(POLLINNG_TIME) +finally: + if db is not None: + cursor.close() + db.close() \ No newline at end of file