1
This commit is contained in:
parent
bfddc0607d
commit
d7c46b0cc5
156
hlna.py
156
hlna.py
@ -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'<div class="workshopItemTitle">(.+)</div>', modname)
|
||||
modname = modname and modname.group(1)
|
||||
|
||||
@ -531,61 +538,51 @@ def modextract(id_mod, id_game_workshop, dir_ark_mods):
|
||||
|
||||
|
||||
@hlna.command(help='Выключение/включение серверов (без удаления) <hlna switch -m all -d')
|
||||
@click.option("-m", required=True, help="Название cервера")
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option("-m", required=False, help="Название cервера")
|
||||
@click.option("-e/-d", default=True, help="-e активировать карты, -d деактивировать")
|
||||
def switch(m, e):
|
||||
def switch(g, m, e): #добавить all
|
||||
if g == "ark":
|
||||
m = m.split(",")
|
||||
if not os.path.isdir(dir_deactivated):
|
||||
create_dir(dir_deactivated)
|
||||
if e:
|
||||
port_s = []
|
||||
query_p = []
|
||||
for k in list_config:
|
||||
data = read_yaml(k)
|
||||
port_s.append(data['Port'])
|
||||
query_p.append(data['QueryPort'])
|
||||
port_s, query_p, rcon_p = ports_array()
|
||||
|
||||
state_config = list_config if e else delist_config
|
||||
state_msg = "активных" if e else "не активных"
|
||||
for i in m:
|
||||
try:
|
||||
if i in list_config:
|
||||
print(f"Карта {i} уже есть в активных")
|
||||
continue
|
||||
data = read_yaml(i, False)
|
||||
if data['Port'] in port_s:
|
||||
print("Предлагаем заменить")
|
||||
continue
|
||||
if data['QueryPort'] in query_p:
|
||||
print("Заменить query port?")
|
||||
if i in state_config:
|
||||
print(f"Карта {i} уже есть в {state_msg}")
|
||||
continue
|
||||
data = read_yaml(i, not e)
|
||||
if e:
|
||||
data['Port'] = ports(data['Port'], port_s, e)
|
||||
data['QueryPort'] = ports(data['QueryPort'], port_s, e)
|
||||
data['RCONPort'] = ports(data['RCONPort'], port_s, e)
|
||||
yaml_create("ARK", data['map'], data['Cluster'], data['SessionName'], data['Port'], data['QueryPort'],
|
||||
data['RCONEnabled'], data['RCONPort'], data['ServerAdminPassword'], data['ServerPassword'],
|
||||
data['MaxPlayers'], data['ModsId'], data['Listen'], data['ServerPath'], data['clusterid'],
|
||||
data['clusterdir'])
|
||||
x = os.system(
|
||||
f"mv {dir_deactivated}{i} {dir_maps_ark} >> {dir_logs}{date} 2>&1")
|
||||
os.system(f"systemctl --user stop ark_{i}")
|
||||
os.system(f"systemctl --user disable ark_{i}")
|
||||
f"rm {dir_deactivated}{i} >> {dir_logs}{date} 2>&1")
|
||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
||||
f.write(f"[{t}] File {i} has been moved to {dir_maps_ark}\n")
|
||||
f.write(f"[{t}] Сервер {i} перемещён из {state_msg}\n")# переписать эту залупу
|
||||
else:
|
||||
x = os.system(f"mv {dir_maps_ark}{i} {dir_deactivated} >> {dir_logs}{date} 2>&1")
|
||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
||||
f.write(f"[{t}] Сервер {i} перемещён из {state_msg}\n")
|
||||
if x == 0:
|
||||
print(f"Карта активирована - {i}")
|
||||
print(f"Готов - {i}")
|
||||
start = "start" if e else "stop"
|
||||
enable = "enable" if e else "disable"
|
||||
os.system(f"systemctl --user {start} ark_{i}")
|
||||
os.system(f"systemctl --user {enable} ark_{i}")
|
||||
else:
|
||||
print(f"{i} либо уже активирована, либо такой карты нет")
|
||||
except:
|
||||
print("ошибка при активации карты")
|
||||
else:
|
||||
for i in m:
|
||||
try:
|
||||
if i in delist_config:
|
||||
print(f"Карта {i} уже есть в деактивированных")
|
||||
continue
|
||||
x = os.system(
|
||||
f"mv {dir_maps_ark}{i} {dir_deactivated} >> {dir_logs}{date} 2>&1")
|
||||
os.system(f"systemctl --user enable ark_{i}")
|
||||
os.system(f"systemctl --user start ark_{i}")
|
||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
||||
f.write(f"[{t}] File {i} has been moved to {dir_deactivated}\n")
|
||||
if x == 0:
|
||||
print(f"Карта деактивирована - {i}")
|
||||
else:
|
||||
print(f"{i} либо деактивирована, либо такой карты нет")
|
||||
except:
|
||||
print("ошибка при деактивации карты")
|
||||
|
||||
|
||||
@hlna.command(help='Выводит статус настроеных серверов')
|
||||
@ -648,7 +645,6 @@ def start(g, m):
|
||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||
def stop(g, m):
|
||||
|
||||
start_stop("stop", g, m)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user