diff --git a/hlna.py b/hlna.py index 89c6048..ea3e74b 100755 --- a/hlna.py +++ b/hlna.py @@ -40,7 +40,7 @@ def create_dir(directory): """Проверка и создание директории""" if not os.path.exists(directory): os.makedirs(directory) - + create_dir(dir_config) @@ -96,7 +96,6 @@ def unpack(src, dst): logging.critical(msg) return print(msg) - # Read the actual archive data data = b'' read_data = 0 @@ -167,15 +166,44 @@ def config(): print_line("Пока есть только ARK и 7Days xD") +def ports_array(): + port_s = [] + query_p = [] + rcon_p = [] + for k in list_config: + data_port = read_yaml(k, game="ARK") + port_s.append(data_port['Port']) + query_p.append(data_port['QueryPort']) + rcon_p.append(data_port['RCONPort']) + return port_s, query_p, rcon_p + + +def ports(port, ports_arr, flag): + while True: + if not port: + if not ports_arr: + if flag == 0: + port = 7777 + elif flag == 1: + port = 27015 + elif flag == 2: + port = 27044 + print("Port=", port) + return port + else: + port = max(ports_arr) + 2 + if port in ports_arr: + print("Порт уже занят") + else: + return port + + def config_ark(list_config=list_config): """конфигурирование сервера арк""" create_dir(dir_server_ark) create_dir(dir_maps_ark) path_server() """Сбор данных для конфига""" - port_s = [] - rcon_p = [] - query_p = [] cluster_id = "" cluster_dir_override = "" @@ -230,11 +258,9 @@ def config_ark(list_config=list_config): break if list_config: - for k in list_config: - data_port = read_yaml(k, game="ARK") - port_s.append(data_port['Port']) - rcon_p.append(data_port['RCONPort']) - query_p.append(data_port['QueryPort']) + port_s, query_p, rcon_p = ports_array() + else: + port_s = query_p = rcon_p = [] if amount_map == 1: map_s = "TheIsland" @@ -264,19 +290,6 @@ def config_ark(list_config=list_config): # Если вдруг каким-то боком проверка не отработает и не будет нужной цифры map_s = 'TheIsland' - def ports(ports_arr): - while True: - port = check_int("") - if not port: - if not ports_arr: - return 0 - else: - port = max(ports_arr) + 2 - if port in ports_arr: - print("Порт уже занят") - else: - return port - if list_config: data = read_yaml(list_config[-1], game="ARK") while True: @@ -301,22 +314,15 @@ def config_ark(list_config=list_config): list_config.append(name_server) # если enter, то ставим последним элементом карту break - print("Укажите порт сервера: ") - port_server = ports(port_s) - if port_server == 0: - port_server = 7777 - print("Порт Сервера=", port_server) - print("Укажите query порт сервера: ") - query_port = ports(query_p) - if query_port == 0: - query_port = 27015 - print("Query Port=", query_port) + port = check_int("Укажите порт сервера: ") + port_server = ports(port, port_s, True) + port = check_int("Укажите query порт сервера: ") + query_port = ports(port, query_p, False) + + port = check_int("Укажите порт сервера: ") + rcon_port = ports(port, rcon_p, True) rcon_enabled = True - if rcon_p == []: - rcon_port = 27020 - else: - rcon_port = max(rcon_p) + 1 password_server = input("Укажите пароль Сервера: \n") adminpassword_server = 123 @@ -335,7 +341,7 @@ def config_ark(list_config=list_config): listen_server = False else: listen_server = True - """Вызов создания конфига""" + yaml_create("ARK", "", cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override, listen_server) @@ -343,7 +349,7 @@ def config_ark(list_config=list_config): def config_7daystodie(): """конфигурирование сервера 7 days to die""" - list_simvols = ("$","@","-",".","%","{","}","+","/") + list_simvols = ("$", "@", "-", ".", "%", "{", "}", "+", "/") create_dir(dir_server_7days) config_7days = input("Введите имя конфига (serverconfig):\n") if config_7days == "": @@ -494,7 +500,8 @@ def modextract(id_mod, id_game_workshop, dir_ark_mods): os.system(f"rm -rf {dir_ark_mods}") os.system(f"mv -f {dir_steam_workshop} {dir_ark_mods}") - modname = subprocess.check_output(['curl', '-s', f'https://steamcommunity.com/sharedfiles/filedetails/?id={id_mod}']).decode('utf-8') + modname = subprocess.check_output( + ['curl', '-s', f'https://steamcommunity.com/sharedfiles/filedetails/?id={id_mod}']).decode('utf-8') modname = re.search(r'