print_line
This commit is contained in:
parent
1acba298f4
commit
9d7330f560
86
hlna.py
86
hlna.py
@ -97,7 +97,7 @@ def unpack(src, dst):
|
|||||||
if size_unpacked != size_indexed:
|
if size_unpacked != size_indexed:
|
||||||
msg = f"Header-Index mismatch. Header indicates it should only have {size_unpacked} bytes when uncompressed but the index indicates {size_indexed} bytes."
|
msg = f"Header-Index mismatch. Header indicates it should only have {size_unpacked} bytes when uncompressed but the index indicates {size_indexed} bytes."
|
||||||
logging.critical(msg)
|
logging.critical(msg)
|
||||||
return print_line(msg, flag=False)
|
return print_line(msg, flag="RED")
|
||||||
|
|
||||||
# Read the actual archive data
|
# Read the actual archive data
|
||||||
data = b''
|
data = b''
|
||||||
@ -115,19 +115,19 @@ def unpack(src, dst):
|
|||||||
if len(uncompressed_data) != size_unpacked_chunk and read_data != len(compression_index):
|
if len(uncompressed_data) != size_unpacked_chunk and read_data != len(compression_index):
|
||||||
msg = f"Index contains more than one partial chunk: was {len(uncompressed_data)} when the full chunk size is {size_unpacked_chunk}, chunk {read_data}/{len(compression_index)}"
|
msg = f"Index contains more than one partial chunk: was {len(uncompressed_data)} when the full chunk size is {size_unpacked_chunk}, chunk {read_data}/{len(compression_index)}"
|
||||||
logging.critical(msg)
|
logging.critical(msg)
|
||||||
return print_line(msg, flag=False)
|
return print_line(msg, flag="RED")
|
||||||
else:
|
else:
|
||||||
msg = f"Uncompressed chunk size is not the same as in the index: was {len(uncompressed_data)} but should be {uncompressed}."
|
msg = f"Uncompressed chunk size is not the same as in the index: was {len(uncompressed_data)} but should be {uncompressed}."
|
||||||
logging.critical(msg)
|
logging.critical(msg)
|
||||||
return print_line(msg, flag=False)
|
return print_line(msg, flag="RED")
|
||||||
else:
|
else:
|
||||||
msg = f"Data types in the headers should be int's. Size Types: unpacked_chunk({type(size_unpacked_chunk)}), packed({type(size_packed)}), unpacked({type(size_unpacked)})"
|
msg = f"Data types in the headers should be int's. Size Types: unpacked_chunk({type(size_unpacked_chunk)}), packed({type(size_packed)}), unpacked({type(size_unpacked)})"
|
||||||
logging.critical(msg)
|
logging.critical(msg)
|
||||||
return print_line(msg, flag=False)
|
return print_line(msg, flag="RED")
|
||||||
else:
|
else:
|
||||||
msg = "The signature and format version is incorrect. Signature was {} should be 2653586369.".format(sigver)
|
msg = "The signature and format version is incorrect. Signature was {} should be 2653586369.".format(sigver)
|
||||||
logging.critical(msg)
|
logging.critical(msg)
|
||||||
return print_line(msg,flag=False)
|
return print_line(msg,flag="RED")
|
||||||
|
|
||||||
# Write the extracted data to disk
|
# Write the extracted data to disk
|
||||||
with open(dst, 'wb') as f:
|
with open(dst, 'wb') as f:
|
||||||
@ -135,9 +135,16 @@ def unpack(src, dst):
|
|||||||
logging.info("Archive has been extracted.")
|
logging.info("Archive has been extracted.")
|
||||||
|
|
||||||
|
|
||||||
def print_line(*text, flag=True):
|
def print_line(*text, flag=""):
|
||||||
"""Добавление обводки вокруг текста, покраска"""
|
"""Добавление обводки вокруг текста, покраска"""
|
||||||
color = colorama.Fore.GREEN if flag else colorama.Fore.RED
|
if flag == "RED":
|
||||||
|
color = colorama.Fore.RED
|
||||||
|
elif flag == "YELLOW":
|
||||||
|
color = colorama.Fore.YELLOW
|
||||||
|
elif flag == "GREEN":
|
||||||
|
color = colorama.Fore.GREEN
|
||||||
|
elif flag == "CYAN":
|
||||||
|
color = colorama.Fore.CYAN
|
||||||
print(colorama.Fore.YELLOW + "." * 30)
|
print(colorama.Fore.YELLOW + "." * 30)
|
||||||
print(color, *text)
|
print(color, *text)
|
||||||
print(colorama.Fore.YELLOW + "." * 30 + colorama.Style.RESET_ALL)
|
print(colorama.Fore.YELLOW + "." * 30 + colorama.Style.RESET_ALL)
|
||||||
@ -153,7 +160,7 @@ def check_int(number=""):
|
|||||||
x = int(x)
|
x = int(x)
|
||||||
return x
|
return x
|
||||||
except ValueError:
|
except ValueError:
|
||||||
print_line("Введите число")
|
print_line("Введите число", flag="CYAN")
|
||||||
|
|
||||||
|
|
||||||
@hlna.command(help='Выбор игры и сбор настроек для сервера(-ов)')
|
@hlna.command(help='Выбор игры и сбор настроек для сервера(-ов)')
|
||||||
@ -167,7 +174,7 @@ def config():
|
|||||||
elif count_game == 2:
|
elif count_game == 2:
|
||||||
config_7daystodie()
|
config_7daystodie()
|
||||||
else:
|
else:
|
||||||
print_line("Пока есть только ARK и 7Days xD")
|
print_line("Пока есть только ARK и 7Days xD", flag="YELLOW")
|
||||||
|
|
||||||
|
|
||||||
def ports_array():
|
def ports_array():
|
||||||
@ -192,13 +199,13 @@ def ports(port, ports_arr, flag):
|
|||||||
port = 27015
|
port = 27015
|
||||||
elif flag == 2:
|
elif flag == 2:
|
||||||
port = 23331
|
port = 23331
|
||||||
print_line("Port=", port)
|
print_line("Port=", port, flag="CYAN")
|
||||||
return port
|
return port
|
||||||
else:
|
else:
|
||||||
port = max(ports_arr) + 2
|
port = max(ports_arr) + 2
|
||||||
print_line("Port=", port)
|
print_line("Port=", port, flag="CYAN")
|
||||||
if port in ports_arr:
|
if port in ports_arr:
|
||||||
print("Порт уже занят")
|
print_line("Порт уже занят", flag="RED")
|
||||||
else:
|
else:
|
||||||
return port
|
return port
|
||||||
|
|
||||||
@ -300,15 +307,13 @@ def config_nameserver(map_s):
|
|||||||
new_name = f"{map_s}{str(count)}"
|
new_name = f"{map_s}{str(count)}"
|
||||||
count += 1
|
count += 1
|
||||||
list_config.append(new_name)
|
list_config.append(new_name)
|
||||||
print_line(list_config)
|
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
print_line(list_config)
|
|
||||||
list_config.append(map_s)
|
list_config.append(map_s)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
if name_server in list_config:
|
if name_server in list_config:
|
||||||
print_line("Имя занято", flag=False)
|
print_line("Имя занято", flag="RED")
|
||||||
config_nameserver(map_s)
|
config_nameserver(map_s)
|
||||||
else:
|
else:
|
||||||
list_config.append(name_server) # если enter, то ставим последним элементом карту
|
list_config.append(name_server) # если enter, то ставим последним элементом карту
|
||||||
@ -380,10 +385,8 @@ def config_ark(list_config=list_config):
|
|||||||
data = read_yaml(i, g="ark")
|
data = read_yaml(i, g="ark")
|
||||||
print(f"{i} : {data['map']}")
|
print(f"{i} : {data['map']}")
|
||||||
count_maps = config_nummap()
|
count_maps = config_nummap()
|
||||||
print_line(count_maps)
|
|
||||||
for i in range(count_maps):
|
for i in range(count_maps):
|
||||||
map_s, port_s, query_p, rcon_p = config_maps(i)
|
map_s, port_s, query_p, rcon_p = config_maps(i)
|
||||||
print_line(map_s, port_s, query_p, rcon_p)
|
|
||||||
list_config = config_nameserver(map_s)
|
list_config = config_nameserver(map_s)
|
||||||
port_server = config_ports(port_s)
|
port_server = config_ports(port_s)
|
||||||
query_port = config_query(query_p)
|
query_port = config_query(query_p)
|
||||||
@ -409,7 +412,7 @@ def config_7daystodie():
|
|||||||
elif config_7days == "serverconfig":
|
elif config_7days == "serverconfig":
|
||||||
config_7days = "serverconfig"
|
config_7days = "serverconfig"
|
||||||
elif config_7days in list_simvols:
|
elif config_7days in list_simvols:
|
||||||
print_line("Запрещённые символы", flag=False)
|
print_line("Запрещённые символы", flag="RED")
|
||||||
else:
|
else:
|
||||||
xml_parser()
|
xml_parser()
|
||||||
systemd_unit_create("7Days", config_7days)
|
systemd_unit_create("7Days", config_7days)
|
||||||
@ -425,9 +428,6 @@ def yaml_create(g, dir_server="", cluster_server="", map_s="", name_server="", p
|
|||||||
id_mods_ark="", cluster_id="", cluster_dir_override="", listen_server=""):
|
id_mods_ark="", cluster_id="", cluster_dir_override="", listen_server=""):
|
||||||
"""Создаёт на основании собранных данных yaml конфиг"""
|
"""Создаёт на основании собранных данных yaml конфиг"""
|
||||||
if g == "ark":
|
if g == "ark":
|
||||||
print_line(type(id_mods_ark))
|
|
||||||
print_line(id_mods_ark)
|
|
||||||
print_line(name_server)
|
|
||||||
path_yaml = dir_maps_ark + name_server
|
path_yaml = dir_maps_ark + name_server
|
||||||
settings = [
|
settings = [
|
||||||
{
|
{
|
||||||
@ -522,15 +522,15 @@ def mod(g, m, i, id_mods_ark):
|
|||||||
dir_mod_ark = f"{dir_mods_ark}/{id_mod}"
|
dir_mod_ark = f"{dir_mods_ark}/{id_mod}"
|
||||||
if not os.path.isfile(f"{dir_mod_ark}.mod"):
|
if not os.path.isfile(f"{dir_mod_ark}.mod"):
|
||||||
if i:
|
if i:
|
||||||
print_line(f"Скачиваем мод {id_mod}")
|
print_line(f"Скачиваем мод {id_mod}", flag="CYAN")
|
||||||
moddownload(g, m, id_mod, dir_mod_ark)
|
moddownload(g, m, id_mod, dir_mod_ark)
|
||||||
else:
|
else:
|
||||||
os.system(f"rm -rf {dir_mod_ark}")
|
os.system(f"rm -rf {dir_mod_ark}")
|
||||||
print_line(f"{dir_mod_ark} удалён")
|
print_line(f"{dir_mod_ark} удалён", flag="CYAN")
|
||||||
os.system(f"rm {dir_mods_ark}/{id_mod}.mod")
|
os.system(f"rm {dir_mods_ark}/{id_mod}.mod")
|
||||||
print_line(f"{dir_mods_ark}/{id_mod}.mod удалён")
|
print_line(f"{dir_mods_ark}/{id_mod}.mod удалён", flag="CYAN")
|
||||||
else:
|
else:
|
||||||
print_line(f"Мод уже установлен")
|
print_line(f"Мод уже установлен", flag="CYAN")
|
||||||
modupdate(g, m, id_mod, dir_mod_ark)
|
modupdate(g, m, id_mod, dir_mod_ark)
|
||||||
name_server = choose_map(g, m)
|
name_server = choose_map(g, m)
|
||||||
id_mods = id_mods[1:]
|
id_mods = id_mods[1:]
|
||||||
@ -541,14 +541,14 @@ def mod(g, m, i, id_mods_ark):
|
|||||||
data['RCONEnabled'], data['RCONPort'], data['ServerAdminPassword'], data['ServerPassword'],
|
data['RCONEnabled'], data['RCONPort'], data['ServerAdminPassword'], data['ServerPassword'],
|
||||||
data['MaxPlayers'], id_mods_ark, data['clusterid'], data['clusterdir'], data['Listen'])
|
data['MaxPlayers'], id_mods_ark, data['clusterid'], data['clusterdir'], data['Listen'])
|
||||||
else:
|
else:
|
||||||
print_line("Введите id модов через запятую без пробелов")
|
print_line("Введите id модов через запятую без пробелов", flag="CYAN")
|
||||||
else:
|
else:
|
||||||
print_line("Не поддерживаемая игра")
|
print_line("Не поддерживаемая игра", flag="RED")
|
||||||
|
|
||||||
|
|
||||||
def modupdate(g, m, id_mod, dir_mod_ark):
|
def modupdate(g, m, id_mod, dir_mod_ark):
|
||||||
if g == "ark":
|
if g == "ark":
|
||||||
print_line(f"Проверяем обновление мода {id_mod}")
|
print_line(f"Проверяем обновление мода {id_mod}", flag="CYAN")
|
||||||
with open(os.path.join(dir_mod_ark, f"appworkshop_346110.acf"), "r") as f:
|
with open(os.path.join(dir_mod_ark, f"appworkshop_346110.acf"), "r") as f:
|
||||||
content = f.readlines()
|
content = f.readlines()
|
||||||
content = "".join(content)
|
content = "".join(content)
|
||||||
@ -571,14 +571,14 @@ def modupdate(g, m, id_mod, dir_mod_ark):
|
|||||||
steam_date = json_zapros['response']['publishedfiledetails'][0]['time_updated']
|
steam_date = json_zapros['response']['publishedfiledetails'][0]['time_updated']
|
||||||
|
|
||||||
if int(steam_date) != int(locale_date):
|
if int(steam_date) != int(locale_date):
|
||||||
print_line(f"Обновляем мод {id_mod}")
|
print_line(f"Обновляем мод {id_mod}", flag="CYAN")
|
||||||
moddownload(g, m, id_mod, dir_mod_ark)
|
moddownload(g, m, id_mod, dir_mod_ark)
|
||||||
else:
|
else:
|
||||||
print_line(f"Мод {id_mod} обновлен")
|
print_line(f"Мод {id_mod} обновлен", flag="GREEN")
|
||||||
|
|
||||||
|
|
||||||
def modupdateall(g, m):
|
def modupdateall(g, m):
|
||||||
print_line("Проверяем обновление всех установленных модов")
|
print_line("Проверяем обновление всех установленных модов", flag="CYAN")
|
||||||
for file in os.listdir(dir_mods_ark):
|
for file in os.listdir(dir_mods_ark):
|
||||||
if os.path.isfile(os.path.join(dir_mods_ark, file)):
|
if os.path.isfile(os.path.join(dir_mods_ark, file)):
|
||||||
if file.endswith('.mod'):
|
if file.endswith('.mod'):
|
||||||
@ -701,23 +701,23 @@ def switch(g, m, e): #добавить all
|
|||||||
enable = "enable" if e else "disable"
|
enable = "enable" if e else "disable"
|
||||||
os.system(f"systemctl --user {enable} ark_{i}")
|
os.system(f"systemctl --user {enable} ark_{i}")
|
||||||
else:
|
else:
|
||||||
print_line(f"Ошибка перемещения {i}", flag=False)
|
print_line(f"Ошибка перемещения {i}", flag="RED")
|
||||||
except:
|
except:
|
||||||
print_line("ошибка операции", flag=False)
|
print_line("ошибка операции", flag="RED")
|
||||||
|
|
||||||
|
|
||||||
@hlna.command(help='Выводит статус настроеных серверов')
|
@hlna.command(help='Выводит статус настроеных серверов')
|
||||||
def status(list_config=list_config):
|
def status(list_config=list_config):
|
||||||
if list_config == [] and delist_config == []:
|
if list_config == [] and delist_config == []:
|
||||||
print_line("Сервера не сконфигурированы", flag=False)
|
print_line("Сервера не сконфигурированы", flag="RED")
|
||||||
else:
|
else:
|
||||||
for i in list_config:
|
for i in list_config:
|
||||||
data = read_yaml(i, g="ark")
|
data = read_yaml(i, g="ark")
|
||||||
x = os.system(f"lsof -w -i :{data['Port']}")
|
x = os.system(f"lsof -w -i :{data['Port']}")
|
||||||
if x == 0:
|
if x == 0:
|
||||||
print_line("Сервер запущен")
|
print_line("Сервер запущен", flag="GREEN")
|
||||||
else:
|
else:
|
||||||
print_line("Сервер не запущен", flag=False)
|
print_line("Сервер не запущен", flag="RED")
|
||||||
|
|
||||||
# этот принт надо отдельной функцией сделать, чтобы убрать дублирование текста
|
# этот принт надо отдельной функцией сделать, чтобы убрать дублирование текста
|
||||||
|
|
||||||
@ -786,11 +786,11 @@ def check_exist_servers(g):
|
|||||||
"""Проверяет наличие конфигов для активных карт"""
|
"""Проверяет наличие конфигов для активных карт"""
|
||||||
if g == "ark":
|
if g == "ark":
|
||||||
if list_config == []:
|
if list_config == []:
|
||||||
print_line("Нет сконфигурированных серверов", flag=False) # добавить отсюда вилку на вопрос с конфигурацией
|
print_line("Нет сконфигурированных серверов", flag="RED") # добавить отсюда вилку на вопрос с конфигурацией
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
elif g == "7days":
|
elif g == "7days":
|
||||||
print_line("7Days")
|
print_line("7Days", flag="CYAN")
|
||||||
|
|
||||||
|
|
||||||
def start_stop(action, g, m):
|
def start_stop(action, g, m):
|
||||||
@ -805,12 +805,12 @@ def start_stop(action, g, m):
|
|||||||
x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service")
|
x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service")
|
||||||
|
|
||||||
if x == 0:
|
if x == 0:
|
||||||
print_line(f"Готово {action} для {g}")
|
print_line(f"Готово {action} для {g}", flag="GREEN")
|
||||||
|
|
||||||
elif g == "7days":
|
elif g == "7days":
|
||||||
x = os.system(f"systemctl --user {action} 7days.service")
|
x = os.system(f"systemctl --user {action} 7days.service")
|
||||||
if x == 0:
|
if x == 0:
|
||||||
print_line("Готово")
|
print_line("Готово", flag="GREEN")
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -857,7 +857,7 @@ def choose_map(g, m, list_config=list_config):
|
|||||||
x = [int(i) for i in x]
|
x = [int(i) for i in x]
|
||||||
break
|
break
|
||||||
except:
|
except:
|
||||||
print_line("Неправильный ввод", flag=False)
|
print_line("Неправильный ввод", flag="RED")
|
||||||
for i in x:
|
for i in x:
|
||||||
name_servers.append(name_servers[i - 1])
|
name_servers.append(name_servers[i - 1])
|
||||||
print('Выбранные сервера:', name_servers)
|
print('Выбранные сервера:', name_servers)
|
||||||
@ -894,11 +894,11 @@ def rcon_local(m, c):
|
|||||||
passwd = dict_adminpwd[port]
|
passwd = dict_adminpwd[port]
|
||||||
with Client('127.0.0.1', port, passwd=str(passwd)) as client:
|
with Client('127.0.0.1', port, passwd=str(passwd)) as client:
|
||||||
response = client.run(c)
|
response = client.run(c)
|
||||||
print_line(f"Rcon выполнен {response} {dict_mapname[port]}")
|
print_line(f"Rcon выполнен {response} {dict_mapname[port]}", flag="GREEN")
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
except:
|
except:
|
||||||
print_line(f"Ошибка отправки команды {c} в {m}", flag=False)
|
print_line(f"Ошибка отправки команды {c} в {m}", flag="RED")
|
||||||
|
|
||||||
|
|
||||||
def zero(x=""):
|
def zero(x=""):
|
||||||
|
Loading…
Reference in New Issue
Block a user