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)
|
logging.critical(msg)
|
||||||
return print(msg)
|
return print(msg)
|
||||||
|
|
||||||
|
|
||||||
# Read the actual archive data
|
# Read the actual archive data
|
||||||
data = b''
|
data = b''
|
||||||
read_data = 0
|
read_data = 0
|
||||||
@ -167,15 +166,44 @@ def config():
|
|||||||
print_line("Пока есть только ARK и 7Days xD")
|
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):
|
def config_ark(list_config=list_config):
|
||||||
"""конфигурирование сервера арк"""
|
"""конфигурирование сервера арк"""
|
||||||
create_dir(dir_server_ark)
|
create_dir(dir_server_ark)
|
||||||
create_dir(dir_maps_ark)
|
create_dir(dir_maps_ark)
|
||||||
path_server()
|
path_server()
|
||||||
"""Сбор данных для конфига"""
|
"""Сбор данных для конфига"""
|
||||||
port_s = []
|
|
||||||
rcon_p = []
|
|
||||||
query_p = []
|
|
||||||
|
|
||||||
cluster_id = ""
|
cluster_id = ""
|
||||||
cluster_dir_override = ""
|
cluster_dir_override = ""
|
||||||
@ -230,11 +258,9 @@ def config_ark(list_config=list_config):
|
|||||||
break
|
break
|
||||||
|
|
||||||
if list_config:
|
if list_config:
|
||||||
for k in list_config:
|
port_s, query_p, rcon_p = ports_array()
|
||||||
data_port = read_yaml(k, game="ARK")
|
else:
|
||||||
port_s.append(data_port['Port'])
|
port_s = query_p = rcon_p = []
|
||||||
rcon_p.append(data_port['RCONPort'])
|
|
||||||
query_p.append(data_port['QueryPort'])
|
|
||||||
|
|
||||||
if amount_map == 1:
|
if amount_map == 1:
|
||||||
map_s = "TheIsland"
|
map_s = "TheIsland"
|
||||||
@ -264,19 +290,6 @@ def config_ark(list_config=list_config):
|
|||||||
# Если вдруг каким-то боком проверка не отработает и не будет нужной цифры
|
# Если вдруг каким-то боком проверка не отработает и не будет нужной цифры
|
||||||
map_s = 'TheIsland'
|
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:
|
if list_config:
|
||||||
data = read_yaml(list_config[-1], game="ARK")
|
data = read_yaml(list_config[-1], game="ARK")
|
||||||
while True:
|
while True:
|
||||||
@ -301,22 +314,15 @@ def config_ark(list_config=list_config):
|
|||||||
list_config.append(name_server) # если enter, то ставим последним элементом карту
|
list_config.append(name_server) # если enter, то ставим последним элементом карту
|
||||||
break
|
break
|
||||||
|
|
||||||
print("Укажите порт сервера: ")
|
port = check_int("Укажите порт сервера: ")
|
||||||
port_server = ports(port_s)
|
port_server = ports(port, port_s, True)
|
||||||
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("Укажите query порт сервера: ")
|
||||||
|
query_port = ports(port, query_p, False)
|
||||||
|
|
||||||
|
port = check_int("Укажите порт сервера: ")
|
||||||
|
rcon_port = ports(port, rcon_p, True)
|
||||||
rcon_enabled = True
|
rcon_enabled = True
|
||||||
if rcon_p == []:
|
|
||||||
rcon_port = 27020
|
|
||||||
else:
|
|
||||||
rcon_port = max(rcon_p) + 1
|
|
||||||
|
|
||||||
password_server = input("Укажите пароль Сервера: \n")
|
password_server = input("Укажите пароль Сервера: \n")
|
||||||
adminpassword_server = 123
|
adminpassword_server = 123
|
||||||
@ -335,7 +341,7 @@ def config_ark(list_config=list_config):
|
|||||||
listen_server = False
|
listen_server = False
|
||||||
else:
|
else:
|
||||||
listen_server = True
|
listen_server = True
|
||||||
"""Вызов создания конфига"""
|
|
||||||
yaml_create("ARK", "", cluster_server, map_s, list_config[-1], port_server, query_port,
|
yaml_create("ARK", "", cluster_server, map_s, list_config[-1], port_server, query_port,
|
||||||
rcon_enabled, rcon_port, adminpassword_server, password_server, max_players,
|
rcon_enabled, rcon_port, adminpassword_server, password_server, max_players,
|
||||||
cluster_id, cluster_dir_override, listen_server)
|
cluster_id, cluster_dir_override, listen_server)
|
||||||
@ -343,7 +349,7 @@ def config_ark(list_config=list_config):
|
|||||||
|
|
||||||
def config_7daystodie():
|
def config_7daystodie():
|
||||||
"""конфигурирование сервера 7 days to die"""
|
"""конфигурирование сервера 7 days to die"""
|
||||||
list_simvols = ("$","@","-",".","%","{","}","+","/")
|
list_simvols = ("$", "@", "-", ".", "%", "{", "}", "+", "/")
|
||||||
create_dir(dir_server_7days)
|
create_dir(dir_server_7days)
|
||||||
config_7days = input("Введите имя конфига (serverconfig):\n")
|
config_7days = input("Введите имя конфига (serverconfig):\n")
|
||||||
if config_7days == "":
|
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"rm -rf {dir_ark_mods}")
|
||||||
os.system(f"mv -f {dir_steam_workshop} {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 = re.search(r'<div class="workshopItemTitle">(.+)</div>', modname)
|
||||||
modname = modname and modname.group(1)
|
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')
|
@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 деактивировать")
|
@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(",")
|
m = m.split(",")
|
||||||
if not os.path.isdir(dir_deactivated):
|
if not os.path.isdir(dir_deactivated):
|
||||||
create_dir(dir_deactivated)
|
create_dir(dir_deactivated)
|
||||||
if e:
|
if e:
|
||||||
port_s = []
|
port_s, query_p, rcon_p = ports_array()
|
||||||
query_p = []
|
|
||||||
for k in list_config:
|
state_config = list_config if e else delist_config
|
||||||
data = read_yaml(k)
|
state_msg = "активных" if e else "не активных"
|
||||||
port_s.append(data['Port'])
|
|
||||||
query_p.append(data['QueryPort'])
|
|
||||||
for i in m:
|
for i in m:
|
||||||
try:
|
try:
|
||||||
if i in list_config:
|
if i in state_config:
|
||||||
print(f"Карта {i} уже есть в активных")
|
print(f"Карта {i} уже есть в {state_msg}")
|
||||||
continue
|
|
||||||
data = read_yaml(i, False)
|
|
||||||
if data['Port'] in port_s:
|
|
||||||
print("Предлагаем заменить")
|
|
||||||
continue
|
|
||||||
if data['QueryPort'] in query_p:
|
|
||||||
print("Заменить query port?")
|
|
||||||
continue
|
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(
|
x = os.system(
|
||||||
f"mv {dir_deactivated}{i} {dir_maps_ark} >> {dir_logs}{date} 2>&1")
|
f"rm {dir_deactivated}{i} >> {dir_logs}{date} 2>&1")
|
||||||
os.system(f"systemctl --user stop ark_{i}")
|
|
||||||
os.system(f"systemctl --user disable ark_{i}")
|
|
||||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
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:
|
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:
|
else:
|
||||||
print(f"{i} либо уже активирована, либо такой карты нет")
|
print(f"{i} либо уже активирована, либо такой карты нет")
|
||||||
except:
|
except:
|
||||||
print("ошибка при активации карты")
|
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='Выводит статус настроеных серверов')
|
@hlna.command(help='Выводит статус настроеных серверов')
|
||||||
@ -648,7 +645,6 @@ def start(g, m):
|
|||||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||||
def stop(g, m):
|
def stop(g, m):
|
||||||
|
|
||||||
start_stop("stop", g, m)
|
start_stop("stop", g, m)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user