From d40320beefe2bdbcf4f90eae5ea7822b9a25ac8b Mon Sep 17 00:00:00 2001 From: sitisll Date: Fri, 17 Feb 2023 14:18:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2,=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=BA=D0=B0=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=B8=20'/ShooterGame/Binaries/Linux'=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dodo-bot.py | 2 +- dodo.py | 49 ++++++++++++++++++++++++++++++++++++------------- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/dodo-bot.py b/dodo-bot.py index 23b9cb3..2831d2a 100644 --- a/dodo-bot.py +++ b/dodo-bot.py @@ -5,7 +5,7 @@ import telebot from telebot import types key_api = input("Укажите ключ бота") -dodo_bot = telebot.Telebot(f"{key_api}", parse_mode=None) +dodo_bot = telebot.Telebot(f"{key_api, parse_mode=None) @bot.message_handler(commans=['start', 'help']) diff --git a/dodo.py b/dodo.py index 51158ef..73f42de 100755 --- a/dodo.py +++ b/dodo.py @@ -1,11 +1,15 @@ #!/usr/bin/env python3 +"Модуль для создания и управления серверами Арк" import os +import traceback + import yaml import threading from pathlib import Path import click import colorama +import datetime home_dir = Path.home() dir_server = f"{home_dir}/ARK_Servers/" @@ -23,6 +27,14 @@ if x>0: list_config.remove('.directory') +def logging(l): + "Записываем логи в файл" + with open(dir_server + "logs", "a") as filelog: + now1 = datetime.datetime.today() + now1 = now1.strftime("%d-%m %H:%M | ") + filelog.write(now1 + l) + + def print_line(text): "Добавление тире вокруг текста, покраска" print(colorama.Fore.YELLOW + "-"*30) @@ -32,22 +44,32 @@ def print_line(text): def create_dir(directory): "Проверка и создание директории" - if not os.path.exists(directory): - os.mkdir(directory) + try: + if not os.path.exists(directory): + os.mkdir(directory) + except: + logging(traceback.format_exc()) + logging(f"Не удалось создать директорию - {directory}") + + def check_int(number=""): "Проверка на ввод числа" + x="" while True: try: x = input(number) - if x == "": + if bool(x) == True: + x = x.replace(' ', '') + x = x.replace(',', '') + x = int(x) + return x + else: return 0 - x = x.replace(' ', '') - x = x.replace(',', '') - x = int(x) - return x except ValueError: + logging(traceback.format_exc()) + logging(f"Не прошла проверка на ввод числа, func(check_int) ввод пользователя {x}") print("Введите число") @@ -189,7 +211,6 @@ def yaml_create(cluster_server, map_server, name_server, port_server, query_port } ] - print(cluster_id) if cluster_id != None: settings_dodo[0]['clusterid'] = cluster_id settings_dodo[0]['clusterdir'] = cluster_dir_override @@ -235,6 +256,8 @@ def start(map_server=list_config): if len(map_list) <= len(map_server) and check == True: break except: + logging(traceback.format_exc()) + logging(f"Ошибка при выборе карт для запуска, пользователь ввел - {map_list}") print("Неправильный ввод") @@ -251,9 +274,11 @@ def start(map_server=list_config): def start(i): os.chdir(dir_server + i + "/ShooterGame/Binaries/Linux/") os.system(f"./ShooterGameServer {i}?SessionName={name_server}?Port={port_server}?QueryPort={query_port}?MaxPlayers={max_players}?GameModIds={mods_id}?listen={listen_server} -clusterid={cluster_id} -ClusterDirOverride={cluster_dir_ovverride}") - threads = threading.Thread(target=start, args=(i,)) - threads.start() - + if os.path.exists(dir_server + i + "/ShooterGame/Binaries/Linux/"): + threads = threading.Thread(target=start, args=(i,)) + threads.start() + else: + print("Сервер не установлен, проверьте, достаточно ли места на диске для установки карты") def read_yaml(map_server): with open(f"{home_dir}/.config/dodo/{map_server}", "r") as yamlfile: @@ -270,8 +295,6 @@ def read_yaml(map_server): cluster_server = data['Cluster'] cluster_id = data['clusterid'] cluster_dir_ovverride = data['clusterdir'] - print(cluster_id) - print(cluster_dir_ovverride) return cluster_server, name_server, port_server, query_port, password_server, max_players, dir_server, mods_id, listen_server, cluster_id, cluster_dir_ovverride