попытка реализации змейки

This commit is contained in:
Евгений Храмов 2023-06-05 10:58:39 +03:00
parent 61f653be2b
commit 10b89ce25f

126
hlna.py

@ -5,6 +5,7 @@ import sys
import zlib
import time
import struct
import curses
import tarfile
import logging
import datetime
@ -65,56 +66,6 @@ def hlna():
pass
@hlna.command(help='Восстановление бэкапов серверов в <hlna restore ark>')
@click.argument('g', nargs=1)
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
@click.option('-d', required=True, help="Путь до zip архива")
def restore(g, m, d):
"""Получение пути к файлам внутри архива"""
with tarfile.open(d, 'r') as tar_file:
files = tar_file.getnames()
"""Извлечение файлов"""
for i in files:
with tar_file.extract(d, 'r:gz') as tar_file:
path_extarct = "./" if g == 'test' else "/"
tar_file.extract(i, path_extarct)
print_line(f"i - перемещен", flag="GREEN")
print_line(f"Бэкап {d} восстановлен", flag="GREEN")
@hlna.command(help='Бэкап серверов выбранной игры <hlna backup ark')
@click.argument('g', nargs=1)
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
def backup(g, m):
if g == "ark" or g == "ark_test":
name_servers = choose_map(g, m)
config_backup(g, m)
backup_path = f"{dir_server_ark}Backups" if g == "ark" else f"{dir_server_ark}Backups/test_backup"
if not backup_path:
backup_path = f"{dir_server_ark}Backups"
for i in name_servers:
data = read_yaml(g="ark", m=i)
map = data['map']
str(map)
source = [f"{dir_maps_ark}", f"{dir_ark_save}"]
target = f"{backup_path}/{g}_{i}_backup_{time.strftime('%Y_%m_%d')}.tar"
create_dir(backup_path)
with tarfile.open(target, 'w') as mytar:
for source_folder in source:
for root, dirs, files in os.walk(source_folder):
for file in files:
name, ext = os.path.splitext(file)
if ext == '.arkprofile' or name.startswith(map):
path = os.path.join(root, file)
mytar.add(path)
print_line(f"{path} - сохранён", flag="GREEN")
print_line(f"Конфиги сохранены в {target}", flag="GREEN")
elif g == "7days":
pass
else:
print("Поддерживает только ark и 7days")
def unpack(src, dst):
"""Добавить документацию"""
with open(src, 'rb') as f:
@ -212,6 +163,31 @@ def print_line(*text, flag="", sep=" ", end="\n"):
print(color + "." * max_length + colorama.Style.RESET_ALL)
def zmeyuka(stdscr, func):
curses.curs_set(0)
stdscr.nodelay(1)
x = 0
y = 0
stdscr.addstr(y, x, "")
stdscr.refresh()
def nachalo_stroki():
nonlocal x, y
while True:
stdscr.addstr(0, 0, "", curses.A_REVERSE)
stdscr.refresh()
time.sleep(0.1)
stdscr.addstr(y, x, " ")
x += 1
if x > curses.COLS - 1:
x = 0
y +=1
stdscr.addstr(y, x, "")
stdscr.refresh()
def check_int(number=""):
"""Проверка на ввод числа"""
while True:
@ -225,6 +201,56 @@ def check_int(number=""):
print_line("Введите число", flag="CYAN")
@hlna.command(help='Восстановление бэкапов серверов в <hlna restore ark>')
@click.argument('g', nargs=1)
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
@click.option('-d', required=True, help="Путь до zip архива")
def restore(g, m, d):
"""Получение пути к файлам внутри архива"""
with tarfile.open(d, 'r') as tar_file:
files = tar_file.getnames()
"""Извлечение файлов"""
for i in files:
with tar_file.extract(d, 'r:gz') as tar_file:
path_extarct = "./" if g == 'test' else "/"
tar_file.extract(i, path_extarct)
print_line(f"i - перемещен", flag="GREEN")
print_line(f"Бэкап {d} восстановлен", flag="GREEN")
@hlna.command(help='Бэкап серверов выбранной игры <hlna backup ark')
@click.argument('g', nargs=1)
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
def backup(g, m):
if g == "ark" or g == "ark_test":
name_servers = choose_map(g, m)
config_backup(g, m)
backup_path = f"{dir_server_ark}Backups" if g == "ark" else f"{dir_server_ark}Backups/test_backup"
if not backup_path:
backup_path = f"{dir_server_ark}Backups"
for i in name_servers:
data = read_yaml(g="ark", m=i)
map = data['map']
str(map)
source = [f"{dir_maps_ark}", f"{dir_ark_save}"]
target = f"{backup_path}/{g}_{i}_backup_{time.strftime('%Y_%m_%d')}.tar"
create_dir(backup_path)
with tarfile.open(target, 'w') as mytar:
for source_folder in source:
for root, dirs, files in os.walk(source_folder):
for file in files:
name, ext = os.path.splitext(file)
if ext == '.arkprofile' or name.startswith(map):
path = os.path.join(root, file)
mytar.add(path)
print_line(f"{path} - сохранён", flag="GREEN")
print_line(f"Конфиги сохранены в {target}", flag="GREEN")
elif g == "7days":
pass
else:
print("Поддерживает только ark и 7days")
@hlna.command(help='Выбор игры и сбор настроек для сервера(-ов)')
@click.argument('g', nargs=1)
@click.option('-b', required=False, default=False, help="Конфигурация бэкапов игры")