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:
|
||||
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)
|
||||
return print_line(msg, flag=False)
|
||||
return print_line(msg, flag="RED")
|
||||
|
||||
# Read the actual archive data
|
||||
data = b''
|
||||
@ -115,19 +115,19 @@ def unpack(src, dst):
|
||||
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)}"
|
||||
logging.critical(msg)
|
||||
return print_line(msg, flag=False)
|
||||
return print_line(msg, flag="RED")
|
||||
else:
|
||||
msg = f"Uncompressed chunk size is not the same as in the index: was {len(uncompressed_data)} but should be {uncompressed}."
|
||||
logging.critical(msg)
|
||||
return print_line(msg, flag=False)
|
||||
return print_line(msg, flag="RED")
|
||||
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)})"
|
||||
logging.critical(msg)
|
||||
return print_line(msg, flag=False)
|
||||
return print_line(msg, flag="RED")
|
||||
else:
|
||||
msg = "The signature and format version is incorrect. Signature was {} should be 2653586369.".format(sigver)
|
||||
logging.critical(msg)
|
||||
return print_line(msg,flag=False)
|
||||
return print_line(msg,flag="RED")
|
||||
|
||||
# Write the extracted data to disk
|
||||
with open(dst, 'wb') as f:
|
||||
@ -135,9 +135,16 @@ def unpack(src, dst):
|
||||
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(color, *text)
|
||||
print(colorama.Fore.YELLOW + "." * 30 + colorama.Style.RESET_ALL)
|
||||
@ -153,7 +160,7 @@ def check_int(number=""):
|
||||
x = int(x)
|
||||
return x
|
||||
except ValueError:
|
||||
print_line("Введите число")
|
||||
print_line("Введите число", flag="CYAN")
|
||||
|
||||
|
||||
@hlna.command(help='Выбор игры и сбор настроек для сервера(-ов)')
|
||||
@ -167,7 +174,7 @@ def config():
|
||||
elif count_game == 2:
|
||||
config_7daystodie()
|
||||
else:
|
||||
print_line("Пока есть только ARK и 7Days xD")
|
||||
print_line("Пока есть только ARK и 7Days xD", flag="YELLOW")
|
||||
|
||||
|
||||
def ports_array():
|
||||
@ -192,13 +199,13 @@ def ports(port, ports_arr, flag):
|
||||
port = 27015
|
||||
elif flag == 2:
|
||||
port = 23331
|
||||
print_line("Port=", port)
|
||||
print_line("Port=", port, flag="CYAN")
|
||||
return port
|
||||
else:
|
||||
port = max(ports_arr) + 2
|
||||
print_line("Port=", port)
|
||||
print_line("Port=", port, flag="CYAN")
|
||||
if port in ports_arr:
|
||||
print("Порт уже занят")
|
||||
print_line("Порт уже занят", flag="RED")
|
||||
else:
|
||||
return port
|
||||
|
||||
@ -300,15 +307,13 @@ def config_nameserver(map_s):
|
||||
new_name = f"{map_s}{str(count)}"
|
||||
count += 1
|
||||
list_config.append(new_name)
|
||||
print_line(list_config)
|
||||
break
|
||||
else:
|
||||
print_line(list_config)
|
||||
list_config.append(map_s)
|
||||
break
|
||||
else:
|
||||
if name_server in list_config:
|
||||
print_line("Имя занято", flag=False)
|
||||
print_line("Имя занято", flag="RED")
|
||||
config_nameserver(map_s)
|
||||
else:
|
||||
list_config.append(name_server) # если enter, то ставим последним элементом карту
|
||||
@ -380,10 +385,8 @@ def config_ark(list_config=list_config):
|
||||
data = read_yaml(i, g="ark")
|
||||
print(f"{i} : {data['map']}")
|
||||
count_maps = config_nummap()
|
||||
print_line(count_maps)
|
||||
for i in range(count_maps):
|
||||
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)
|
||||
port_server = config_ports(port_s)
|
||||
query_port = config_query(query_p)
|
||||
@ -409,7 +412,7 @@ def config_7daystodie():
|
||||
elif config_7days == "serverconfig":
|
||||
config_7days = "serverconfig"
|
||||
elif config_7days in list_simvols:
|
||||
print_line("Запрещённые символы", flag=False)
|
||||
print_line("Запрещённые символы", flag="RED")
|
||||
else:
|
||||
xml_parser()
|
||||
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=""):
|
||||
"""Создаёт на основании собранных данных yaml конфиг"""
|
||||
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
|
||||
settings = [
|
||||
{
|
||||
@ -522,15 +522,15 @@ def mod(g, m, i, id_mods_ark):
|
||||
dir_mod_ark = f"{dir_mods_ark}/{id_mod}"
|
||||
if not os.path.isfile(f"{dir_mod_ark}.mod"):
|
||||
if i:
|
||||
print_line(f"Скачиваем мод {id_mod}")
|
||||
print_line(f"Скачиваем мод {id_mod}", flag="CYAN")
|
||||
moddownload(g, m, id_mod, dir_mod_ark)
|
||||
else:
|
||||
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")
|
||||
print_line(f"{dir_mods_ark}/{id_mod}.mod удалён")
|
||||
print_line(f"{dir_mods_ark}/{id_mod}.mod удалён", flag="CYAN")
|
||||
else:
|
||||
print_line(f"Мод уже установлен")
|
||||
print_line(f"Мод уже установлен", flag="CYAN")
|
||||
modupdate(g, m, id_mod, dir_mod_ark)
|
||||
name_server = choose_map(g, m)
|
||||
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['MaxPlayers'], id_mods_ark, data['clusterid'], data['clusterdir'], data['Listen'])
|
||||
else:
|
||||
print_line("Введите id модов через запятую без пробелов")
|
||||
print_line("Введите id модов через запятую без пробелов", flag="CYAN")
|
||||
else:
|
||||
print_line("Не поддерживаемая игра")
|
||||
print_line("Не поддерживаемая игра", flag="RED")
|
||||
|
||||
|
||||
def modupdate(g, m, id_mod, dir_mod_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:
|
||||
content = f.readlines()
|
||||
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']
|
||||
|
||||
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)
|
||||
else:
|
||||
print_line(f"Мод {id_mod} обновлен")
|
||||
print_line(f"Мод {id_mod} обновлен", flag="GREEN")
|
||||
|
||||
|
||||
def modupdateall(g, m):
|
||||
print_line("Проверяем обновление всех установленных модов")
|
||||
print_line("Проверяем обновление всех установленных модов", flag="CYAN")
|
||||
for file in os.listdir(dir_mods_ark):
|
||||
if os.path.isfile(os.path.join(dir_mods_ark, file)):
|
||||
if file.endswith('.mod'):
|
||||
@ -701,23 +701,23 @@ def switch(g, m, e): #добавить all
|
||||
enable = "enable" if e else "disable"
|
||||
os.system(f"systemctl --user {enable} ark_{i}")
|
||||
else:
|
||||
print_line(f"Ошибка перемещения {i}", flag=False)
|
||||
print_line(f"Ошибка перемещения {i}", flag="RED")
|
||||
except:
|
||||
print_line("ошибка операции", flag=False)
|
||||
print_line("ошибка операции", flag="RED")
|
||||
|
||||
|
||||
@hlna.command(help='Выводит статус настроеных серверов')
|
||||
def status(list_config=list_config):
|
||||
if list_config == [] and delist_config == []:
|
||||
print_line("Сервера не сконфигурированы", flag=False)
|
||||
print_line("Сервера не сконфигурированы", flag="RED")
|
||||
else:
|
||||
for i in list_config:
|
||||
data = read_yaml(i, g="ark")
|
||||
x = os.system(f"lsof -w -i :{data['Port']}")
|
||||
if x == 0:
|
||||
print_line("Сервер запущен")
|
||||
print_line("Сервер запущен", flag="GREEN")
|
||||
else:
|
||||
print_line("Сервер не запущен", flag=False)
|
||||
print_line("Сервер не запущен", flag="RED")
|
||||
|
||||
# этот принт надо отдельной функцией сделать, чтобы убрать дублирование текста
|
||||
|
||||
@ -786,11 +786,11 @@ def check_exist_servers(g):
|
||||
"""Проверяет наличие конфигов для активных карт"""
|
||||
if g == "ark":
|
||||
if list_config == []:
|
||||
print_line("Нет сконфигурированных серверов", flag=False) # добавить отсюда вилку на вопрос с конфигурацией
|
||||
print_line("Нет сконфигурированных серверов", flag="RED") # добавить отсюда вилку на вопрос с конфигурацией
|
||||
else:
|
||||
return
|
||||
elif g == "7days":
|
||||
print_line("7Days")
|
||||
print_line("7Days", flag="CYAN")
|
||||
|
||||
|
||||
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")
|
||||
|
||||
if x == 0:
|
||||
print_line(f"Готово {action} для {g}")
|
||||
print_line(f"Готово {action} для {g}", flag="GREEN")
|
||||
|
||||
elif g == "7days":
|
||||
x = os.system(f"systemctl --user {action} 7days.service")
|
||||
if x == 0:
|
||||
print_line("Готово")
|
||||
print_line("Готово", flag="GREEN")
|
||||
else:
|
||||
return
|
||||
|
||||
@ -857,7 +857,7 @@ def choose_map(g, m, list_config=list_config):
|
||||
x = [int(i) for i in x]
|
||||
break
|
||||
except:
|
||||
print_line("Неправильный ввод", flag=False)
|
||||
print_line("Неправильный ввод", flag="RED")
|
||||
for i in x:
|
||||
name_servers.append(name_servers[i - 1])
|
||||
print('Выбранные сервера:', name_servers)
|
||||
@ -894,11 +894,11 @@ def rcon_local(m, c):
|
||||
passwd = dict_adminpwd[port]
|
||||
with Client('127.0.0.1', port, passwd=str(passwd)) as client:
|
||||
response = client.run(c)
|
||||
print_line(f"Rcon выполнен {response} {dict_mapname[port]}")
|
||||
print_line(f"Rcon выполнен {response} {dict_mapname[port]}", flag="GREEN")
|
||||
else:
|
||||
pass
|
||||
except:
|
||||
print_line(f"Ошибка отправки команды {c} в {m}", flag=False)
|
||||
print_line(f"Ошибка отправки команды {c} в {m}", flag="RED")
|
||||
|
||||
|
||||
def zero(x=""):
|
||||
|
Loading…
Reference in New Issue
Block a user