попытка в змейку)

This commit is contained in:
Евгений Храмов 2023-06-07 17:49:16 +03:00
parent 4fed6b897c
commit 21c1a68ec1

91
hlna.py

@ -12,6 +12,7 @@ import tarfile
import logging import logging
import datetime import datetime
import requests import requests
import threading
import subprocess import subprocess
import yaml import yaml
@ -167,28 +168,29 @@ def print_line(*text, flag="", sep=" ", end="\n"):
def zmeyuka(stdscr, func): def zmeyuka(stdscr, func):
print_line(func)
curses.curs_set(0) curses.curs_set(0)
stdscr.nodelay(1) stdscr.nodelay(1)
x = 0
y = 0
stdscr.addstr(y, x, "")
stdscr.refresh()
def nachalo_stroki(): def nachalo_stroki():
nonlocal x, y while func.do_run:
while True: zmejka = '⠇⠋⠙⠸⠴⠦'
stdscr.addstr(0, 0, "", curses.A_REVERSE) for i in range(len(zmejka)):
stdscr.refresh() print('\r' + zmejka[i], end="", flush=True)
time.sleep(0.1) time.sleep(0.25)
stdscr.addstr(y, x, " ") th = threading.Thread(target=func)
x += 1 th.start()
if x > curses.COLS - 1: # Запуск потока со змеюкой
x = 0 zmeyuka_thread = threading.Thread(target=nachalo_stroki)
y +=1 zmeyuka_thread.start()
stdscr.addstr(y, x, "") # Ожидаем завершение функции
stdscr.refresh() th.join()
# Убираем змеюку
zmeyuka_thread.do_run = False
zmeyuka_thread.join()
curses.curs_set(1)
stdscr.nodelay(0)
def check_int(number=""): def check_int(number=""):
@ -743,32 +745,35 @@ def modupdate(g, m, id_mod, dir_mod_ark):
g = g.lower() g = g.lower()
if g == "ark": if g == "ark":
print_line(f"Проверяем обновление мода {id_mod}", flag="CYAN") print_line(f"Проверяем обновление мода {id_mod}", flag="CYAN")
with open(os.path.join(dir_mod_ark, f"appworkshop_346110.acf"), "r") as f: if os.path.isfile(f"{dir_mod_ark}/appworkshop_346110.acf"):
content = f.readlines() with open(os.path.join(dir_mod_ark, f"appworkshop_346110.acf"), "r") as f:
content = "".join(content) content = f.readlines()
locale_date = "" content = "".join(content)
for line in content.splitlines(): locale_date = ""
if '\t"WorkshopItemsInstalled"' in line: for line in content.splitlines():
for line in content.splitlines(): if '\t"WorkshopItemsInstalled"' in line:
if f'\t\t"timeupdated"' in line: for line in content.splitlines():
locale_date = line.split('"')[3] if f'\t\t"timeupdated"' in line:
if '}' in line: locale_date = line.split('"')[3]
break if '}' in line:
break break
break
data = {
'itemcount': 1,
'publishedfileids[0]': id_mod
}
zapros = requests.post('http://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1', data=data)
json_zapros = zapros.json()
steam_date = json_zapros['response']['publishedfiledetails'][0]['time_updated']
data = { if int(steam_date) != int(locale_date):
'itemcount': 1, print_line(f"Обновляем мод {id_mod}", flag="CYAN")
'publishedfileids[0]': id_mod moddownload(g, m, id_mod, dir_mod_ark)
} else:
zapros = requests.post('http://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1', data=data) print_line(f"Мод {id_mod} обновлен", flag="GREEN")
json_zapros = zapros.json()
steam_date = json_zapros['response']['publishedfiledetails'][0]['time_updated']
if int(steam_date) != int(locale_date):
print_line(f"Обновляем мод {id_mod}", flag="CYAN")
moddownload(g, m, id_mod, dir_mod_ark)
else: else:
print_line(f"Мод {id_mod} обновлен", flag="GREEN") print_line(f"Информация об обновлении не найдена. Переустанавливаем мод {id_mod}", flag="CYAN")
moddownload(g, m, id_mod, dir_mod_ark)
def modupdateall(g, m): def modupdateall(g, m):
@ -858,7 +863,6 @@ def moddownload(g, m, id_mod, dir_mod_ark):
f"mv {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf {dir_mod_ark}/appworkshop_{id_game_workshop}.acf") f"mv {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf {dir_mod_ark}/appworkshop_{id_game_workshop}.acf")
@hlna.command(help='Выключение/включение серверов (без удаления) <hlna switch -m all -d') @hlna.command(help='Выключение/включение серверов (без удаления) <hlna switch -m all -d')
@click.argument('g', nargs=1) @click.argument('g', nargs=1)
@click.option("-m", required=True, help="Название cервера") @click.option("-m", required=True, help="Название cервера")
@ -1014,7 +1018,6 @@ 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} {i}", flag="GREEN") print_line(f"Готово {action} для {g} {i}", 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: