From 0e3dd23e3915ed4e9ab3584a236788d9c9d53380 Mon Sep 17 00:00:00 2001 From: none Date: Mon, 26 Feb 2024 13:39:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE-=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B0=D0=B9?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- updater.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/updater.py b/updater.py index a487f0d..71a103c 100644 --- a/updater.py +++ b/updater.py @@ -4,15 +4,60 @@ from time import sleep from db import * from network import * +# Логирование ошибок +import logging + def update_demon(serv_port): while True: try: + # Собираем порты ports = port_check(serv_port) conf = read() conf["ports"] = ports write(conf) - sleep(8) - except: + # Перебираем всех клиентов + for port in ports: + try: + # Проверяем у клиента его сайты и сравниваем + raw = client(port, "check_all").split("<>") + dest = [] # Приводим к виду ["just.j et", "2"] + for i in raw: + dest.append(i.split("_")) + # Проверяем наши сайты + raw = client(8001, "check_all", '127.0.0.1').split("<>") + our = [] # Приводим к виду ["just.jet", "2"] + for i in raw: + our.append(i.split("_")) + # Сравниваем + for i in range(len(dest)): + el = dest[i][0] + ver = dest[i][1] + # Проверяем есть ли у нас такое + found = False + for check in our: + if check[0] == el: + # Сверяем версии + if check[1] >= ver: + print("Ver_ok: ", el) + pass + else: + # Если версия новее + print("Ver_new: ", el) + client(port, f"get_{el}") + found = True + break # Если нашли - выходим + + if not found: + print("Not_found: ", el) + http_port = client(port, f"is_{el}") + client(http_port, f"get_{el}") + except: + pass + + break + sleep(5) + except Exception as e: print("UPDATER FALLED") + logging.critical(e, exc_info=True)