From c0076bf5aad39a0471b14fd6005a7d9042ea4009 Mon Sep 17 00:00:00 2001 From: Profitroll Date: Tue, 1 Feb 2022 17:38:27 +0200 Subject: [PATCH] Updated to v2.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Внесены различные изменения в RPC и конфигурацию --- daemon.py | 48 +++++++++++++++++++++++++++++------------ functions.py | 47 ++++++++++++++++++++++------------------ main.py | 4 ++-- rpc.py | 13 +++++++----- settings.py | 60 +++++++++++++++++++++++++++++----------------------- 5 files changed, 106 insertions(+), 66 deletions(-) diff --git a/daemon.py b/daemon.py index a759711..2ea8eda 100644 --- a/daemon.py +++ b/daemon.py @@ -122,7 +122,7 @@ def tgsend(enabled, message): except Exception as excep: appendLog(f'Failed to send TG message "{message}": {exp}') - playSound("warning", nowtime()) + playSound(getConfig("sound_warning"), nowtime()) print(f'{nowtime()} Не удалось отправить Telegram сообщение "{message}" (Ошибка: {exp})') @@ -380,17 +380,17 @@ def main(source='deamon'): if getConfig("debug"): if retries == 2: - playSound("warning", nowtime()) + playSound(getConfig("sound_warning"), nowtime()) tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* обнаружена {profilename}") if retries == 36: - playSound("warning", nowtime()) + playSound(getConfig("sound_warning"), nowtime()) tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 3 минуты {profilename}") print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}3{RESET} минуты') appendLog(f'Lesson delay exceeded: {retries} retries') if retries == 120: - playSound("warning", nowtime()) + playSound(getConfig("sound_warning"), nowtime()) tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 10 минут {profilename}") print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}10{RESET} минут') appendLog(f'Lesson delay exceeded: {retries} retries') @@ -398,17 +398,17 @@ def main(source='deamon'): if retries == 360: if getConfig("debug"): - playSound("warning", nowtime()) + playSound(getConfig("sound_warning"), nowtime()) tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 30 минут, конференция сбошена {profilename}") print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}30{RESET} минут, конференция сброшена') else: - playSound("warning", nowtime()) + playSound(getConfig("sound_warning"), nowtime()) tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 30 минут, конференция сбошена {profilename}") print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}30{RESET} минут, конференция сброшена') appendLog(f'Lesson delay exceeded: {retries} retries') - playSound("ended", nowtime()) + playSound(getConfig("sound_ended"), nowtime()) if lesson_obs: @@ -475,7 +475,7 @@ def main(source='deamon'): setTitle(f'Идёт конференция "{lesson_name}"', sysname) - playSound("started", nowtime()) + playSound(getConfig("sound_started"), nowtime()) tgsend(getConfig("telegram_enabled"), f"▶ Зашёл на конференцию *{lesson_name}* в *{nowtime(False, False, False)}* {profilename}") appendLog(f'Joined lesson {lesson_name} at {nowtime(False, False, False)}') @@ -503,7 +503,7 @@ def main(source='deamon'): keyboard.release(start) record_now = True print(f'{nowtime()} Сигнал записи OBS отправлен.') - playSound("recordstart", nowtime()) + playSound(getConfig("sound_recordstart"), nowtime()) lesson_duration = (datetime.now() - lesson_start).total_seconds() @@ -538,14 +538,14 @@ def main(source='deamon'): appendLog(f'Lesson {lesson_name} duration was {str(int(lesson_duration/60))} m. ({str(lesson_duration)} s.)') - playSound("ended", nowtime()) + playSound(getConfig("sound_ended"), nowtime()) if lesson_obs: keyboard.press(stop) time.sleep(.25) keyboard.release(stop) print(f'{nowtime()} Сигнал остановки записи через OBS отправлен.') - playSound("recordstop", nowtime()) + playSound(getConfig("sound_recordstop"), nowtime()) record_now = False time.sleep(3) @@ -579,7 +579,7 @@ def main(source='deamon'): lessons_list = getLessons() else: - playSound("started", nowtime()) + playSound(getConfig("sound_started"), nowtime()) tgsend(getConfig("telegram_enabled"), f"▶ Присоединился к конференции *{lesson_name}* в *{nowtime(False, False, False)}* {profilename}") appendLog(f'Joined lesson {lesson_name} at {nowtime(False, False, False)}') @@ -622,7 +622,7 @@ def main(source='deamon'): appendLog(f'Shutting PC down in {str(getConfig("shutdown_timeout"))}') - playSound("shutdown", nowtime()) + playSound(getConfig("sound_shutdown"), nowtime()) end_unix = int(time.time())+getConfig("shutdown_timeout")*60 rpc.shutdown(end_unix) shutdown = inputimeout(prompt=f'{nowtime()} Нажмите {CYAN}Enter{RESET} чтобы предотвратить выключение ПК...', timeout=getConfig("shutdown_timeout")*60) @@ -637,6 +637,28 @@ def main(source='deamon'): time.sleep(5) appendLog('Shutting PC down') os.system("shutdown /s /t 1") + elif getConfig("end_mode") == 'sleep': + try: + tgsend(getConfig("telegram_enabled"), f"⚠ Конференции кончились, отправление в сон {profilename}через {str(getConfig('shutdown_timeout'))} мин...") + print(f'{nowtime()} Ваш ПК автоматически заснёт через {BRED}{str(getConfig("shutdown_timeout"))} мин{RESET}.') + + appendLog(f'Falling asleep in {str(getConfig("shutdown_timeout"))}') + + playSound(getConfig("sound_shutdown"), nowtime()) + end_unix = int(time.time())+getConfig("shutdown_timeout")*60 + rpc.sleepmode(end_unix) + shutdown = inputimeout(prompt=f'{nowtime()} Нажмите {CYAN}Enter{RESET} чтобы предотвратить засыпание ПК...', timeout=getConfig("shutdown_timeout")*60) + + appendLog('Sleep mode aborted') + clear() + except TimeoutOccurred: + clear() + print(f'{nowtime()} Время вышло, уводим ваш ПК в спящий режим...') + time.sleep(3) + tgsend(getConfig("telegram_enabled"), f"⚠ Время таймаута исткело, переводим ПК в спящий режим...") + time.sleep(5) + appendLog('Activating PC sleep mode') + os.system("rundll32.exe powrprof.dll, SetSuspendState Sleep") # elif getConfig("end_mode") == 'restart': # from datetime import datetime, time # from time import sleep diff --git a/functions.py b/functions.py index c027a7c..3ec4348 100644 --- a/functions.py +++ b/functions.py @@ -20,26 +20,33 @@ yes_list = ['y', 'yes', 'д', 'да'] no_list = ['n', 'no', 'н', 'нет'] default_config = { - "firstboot": True, - "debug": False, - "shutdown_timeout": 30, - "shutdown_enabled": False, - "start": "shift+f7", - "stop": "shift+f8", - "telegram_enabled": False, - "use_colors": True, - "run_fullscreen": False, - "use_rpc": True, - "sounds": True, - "remove_old": True, - "end_mode": "shutdown", - "obs_exe": None, - "obs_core": None, - "obs_delay": 10, - "update_check": True, - "write_logs": True, - "log_size": 512 - } + "firstboot": True, + "debug": False, + "shutdown_timeout": 30, + "shutdown_enabled": False, + "start": "shift+f7", + "stop": "shift+f8", + "telegram_enabled": False, + "use_colors": True, + "run_fullscreen": False, + "rpc_use": True, + "rpc_id": "800049969960058882", + "sounds": True, + "remove_old": True, + "end_mode": "shutdown", + "obs_exe": None, + "obs_core": None, + "obs_delay": 10, + "update_check": True, + "write_logs": True, + "log_size": 512, + "sound_ended": "ended", + "sound_recordstart": "recordstart", + "sound_recordstop": "recordstop", + "sound_shutdown": "shutdown", + "sound_started": "started", + "sound_warning": "warning" +} # Функция возвращающая надпись Windows Only diff --git a/main.py b/main.py index 84322d6..d2b3d8b 100644 --- a/main.py +++ b/main.py @@ -237,7 +237,7 @@ def helpMenu(): elif help_choose == '7': try: clear() - print(f'{BBLACK}»{RESET} Список поддержавших проект:\n\n{(requests.get("https://www.end-play.xyz/AutoZoomDonors.txt").text).replace("-", RESET+" •"+BRED)}{RESET}') + print(f'{BBLACK}»{RESET} Список поддержавших проект:\n\n{(requests.get("https://www.end-play.xyz/AutoZoomDonors.txt").content.decode("utf-8")).replace("-", RESET+" •"+BRED)}{RESET}') except Exception as exp: clear() appendLog(f'Failed to load donation list {exp}') @@ -462,7 +462,7 @@ def updater(serv_ver, version): appendLog('Changelog loaded') clear() print(f'{RESET}{changelog_text}\n') - print(changelog.text) + print(changelog.content.decode('utf-8')) print(changelog_footer) none = input('\n > ') continue diff --git a/rpc.py b/rpc.py index 99f5687..1ff4601 100644 --- a/rpc.py +++ b/rpc.py @@ -11,7 +11,7 @@ version = '2.6' import libinstaller from pypresence import Presence -client_id = '800049969960058882' +client_id = getConfig("rpc_id") try: RPC = Presence(client_id,pipe=0) @@ -39,7 +39,7 @@ rpc_dict = { "large_text": "AutoZoom • v%version%\nhttp://bit.ly/auto_zoom" } -if getConfig("use_rpc") and getOS != "android": +if getConfig("rpc_use") and getOS != "android": try: RPC.connect() connected = True @@ -51,7 +51,7 @@ else: def disconnect(): global connected - if getConfig("use_rpc") and getOS != "android": + if getConfig("rpc_use") and getOS != "android": try: RPC.close() connected = False @@ -70,14 +70,14 @@ def connect(): appendLog('Discord RPC failed to connect') def reset(): - if getConfig("use_rpc") and getOS != "android": + if getConfig("rpc_use") and getOS != "android": RPC.clear() appendLog('Discord RPC status cleared') def changePresence(sml_img, sml_txt, stt, dtls, start=None, end=None): try: - if getConfig("use_rpc") and getOS != "android": + if getConfig("rpc_use") and getOS != "android": if connected == False: connect() RPC.update( @@ -120,6 +120,9 @@ def inMenu(): def shutdown(end): changePresence("shutdown", "Выключение", "Отсчёт до авто-выключения", "Выключение ПК", end=end) +def sleepmode(end): + changePresence("shutdown", "Спящий режим", "Отсчёт до авто-засыпания", "Спящий режим ПК", end=end) + def inSettings(): changePresence("settings", "Настройки", "Открыты настройки", "В главном меню") diff --git a/settings.py b/settings.py index 7dbaa70..0bac79f 100644 --- a/settings.py +++ b/settings.py @@ -298,9 +298,9 @@ def settings2(): print(f'{RESET}Нужно использовать целое число.') time.sleep(2) continue - + continue - + elif settings_choose == '2': if sysname == 'windows': @@ -317,10 +317,10 @@ def settings2(): print(f'{RESET}Нужно использовать комбинацию клавиш в виде текста.') time.sleep(2) continue - + clear() continue - + elif settings_choose == '3': if sysname == 'windows': @@ -337,18 +337,18 @@ def settings2(): print(f'{RESET}Нужно использовать комбинацию клавиш в виде текста.') time.sleep(2) continue - + clear() continue - + elif settings_choose == '4': - + setConfig("telegram_enabled", not getConfig("telegram_enabled")) appendLog(f'Changed option "telegram_enabled" to {getConfig("telegram_enabled")}') clear() continue - + elif settings_choose == '5': clear() @@ -367,30 +367,30 @@ def settings2(): except: clear() continue - + telegram_send.send(messages=[f"🎊 Конфигурация правильна, всё работает!"], parse_mode="markdown", conf=f"{files_folder}telegram.conf") appendLog('Telegram Send successfully configured') clear() continue - + elif settings_choose == '6': setConfig("update_check", not getConfig("update_check")) appendLog(f'Changed option "update_check" to {getConfig("update_check")}') clear() continue - + elif settings_choose == '7': appendLog('Going to settings page 3') clear() settings3() - + elif settings_choose == '8': appendLog('Returned to settings page 1') clear() return - + except KeyboardInterrupt: rpc.inMenu() clear() @@ -405,21 +405,21 @@ def settings3(): setTitle("AutoZoom (Настройки)", sysname) clear() - + if getConfig("write_logs"): logs_val = f'{BGREEN}Вкл.{RESET}' elif not getConfig("write_logs"): logs_val = f'{BRED}Выкл.{RESET}' else: logs_val = f'{BRED}ERROR{RESET}' - + if getConfig("remove_old"): remove_val = f'{BGREEN}Вкл.{RESET}' elif not getConfig("remove_old"): remove_val = f'{BRED}Выкл.{RESET}' else: remove_val = f'{BRED}ERROR{RESET}' - + shutdown_time_val = getConfig("shutdown_timeout") start_val = getConfig("start") stop_val = getConfig("stop") @@ -440,11 +440,14 @@ def settings3(): print(f' {BRED}5.{RESET} Удалять старые конференции ({remove_val})') print(f' {BBLACK}Автоматически удалять одноразовые конференции которые были до дня запуска\n') + + print(f' {BRED}6.{RESET} Кастомизация звуков и RPC') + print(f' {BBLACK}Изменить звуковые файлы и APPLICATION ID используемого Discord RPC\n') - print(f' {BRED}6.{RESET} Сбросить все настройки') + print(f' {BRED}7.{RESET} Сбросить все настройки') print(f' {BBLACK}Восстановить настройки по умолчанию\n') - print(f' {BRED}7.{RESET} Назад') + print(f' {BRED}8.{RESET} Назад') print(f' {BBLACK}Вернуться на предыдущую страницу{RESET}\n') print(f' {BBLACK}Для переключения параметров Вкл/Выкл просто введите номер{RESET}') #\n Если окно приложения слишком мелкое - увеличьте его или листайте это меню{RESET}') @@ -466,7 +469,7 @@ def settings3(): print(f'{RESET}Нужно использовать целое число.') time.sleep(2) continue - + appendLog(f'Changed option "log_size" to {getConfig["log_size"]}') continue @@ -482,7 +485,7 @@ def settings3(): print(f'{RESET}Нужно использовать целое число.') time.sleep(2) continue - + appendLog(f'Changed option "obs_delay" to {getConfig["obs_delay"]}') continue @@ -516,17 +519,22 @@ def settings3(): none = input(f'Не удалось добавить в автозапуск:\n{BRED}{exp}{RESET}\n\n > ') appendLog(f'Could not add autorun: {exp}') continue - + continue else: continue - + elif settings_choose == '5': setConfig("remove_old", not getConfig("remove_old")) appendLog(f'Changed option "remove_old" to {getConfig("remove_old")}') - + elif settings_choose == '6': + appendLog('Going to customize page') + clear() + customize() + + elif settings_choose == '7': appendLog('Resetting configuration') while True: @@ -554,17 +562,17 @@ def settings3(): else: clear() continue - + continue clear() continue - elif settings_choose == '7': + elif settings_choose == '8': appendLog('Returned to settings page 2') clear() return - + except KeyboardInterrupt: rpc.inMenu() clear()