Updated to v2.6

Внесены различные изменения в RPC и конфигурацию
This commit is contained in:
Profitroll 2022-02-01 17:38:27 +02:00
parent 09a3d66656
commit c0076bf5aa
5 changed files with 106 additions and 66 deletions

View File

@ -122,7 +122,7 @@ def tgsend(enabled, message):
except Exception as excep: except Exception as excep:
appendLog(f'Failed to send TG message "{message}": {exp}') appendLog(f'Failed to send TG message "{message}": {exp}')
playSound("warning", nowtime()) playSound(getConfig("sound_warning"), nowtime())
print(f'{nowtime()} Не удалось отправить Telegram сообщение "{message}" (Ошибка: {exp})') print(f'{nowtime()} Не удалось отправить Telegram сообщение "{message}" (Ошибка: {exp})')
@ -380,17 +380,17 @@ def main(source='deamon'):
if getConfig("debug"): if getConfig("debug"):
if retries == 2: if retries == 2:
playSound("warning", nowtime()) playSound(getConfig("sound_warning"), nowtime())
tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* обнаружена {profilename}") tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* обнаружена {profilename}")
if retries == 36: if retries == 36:
playSound("warning", nowtime()) playSound(getConfig("sound_warning"), nowtime())
tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 3 минуты {profilename}") tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 3 минуты {profilename}")
print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}3{RESET} минуты') print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}3{RESET} минуты')
appendLog(f'Lesson delay exceeded: {retries} retries') appendLog(f'Lesson delay exceeded: {retries} retries')
if retries == 120: if retries == 120:
playSound("warning", nowtime()) playSound(getConfig("sound_warning"), nowtime())
tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 10 минут {profilename}") tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 10 минут {profilename}")
print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}10{RESET} минут') print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}10{RESET} минут')
appendLog(f'Lesson delay exceeded: {retries} retries') appendLog(f'Lesson delay exceeded: {retries} retries')
@ -398,17 +398,17 @@ def main(source='deamon'):
if retries == 360: if retries == 360:
if getConfig("debug"): if getConfig("debug"):
playSound("warning", nowtime()) playSound(getConfig("sound_warning"), nowtime())
tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 30 минут, конференция сбошена {profilename}") tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 30 минут, конференция сбошена {profilename}")
print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}30{RESET} минут, конференция сброшена') print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}30{RESET} минут, конференция сброшена')
else: else:
playSound("warning", nowtime()) playSound(getConfig("sound_warning"), nowtime())
tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 30 минут, конференция сбошена {profilename}") tgsend(getConfig("telegram_enabled"), f"⚠ Задержка конференции *{lesson_name}* превысила 30 минут, конференция сбошена {profilename}")
print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}30{RESET} минут, конференция сброшена') print(f'{nowtime()} Задержка конференции {CYAN}{lesson_name}{RESET} превысила {BRED}30{RESET} минут, конференция сброшена')
appendLog(f'Lesson delay exceeded: {retries} retries') appendLog(f'Lesson delay exceeded: {retries} retries')
playSound("ended", nowtime()) playSound(getConfig("sound_ended"), nowtime())
if lesson_obs: if lesson_obs:
@ -475,7 +475,7 @@ def main(source='deamon'):
setTitle(f'Идёт конференция "{lesson_name}"', sysname) 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}") tgsend(getConfig("telegram_enabled"), f"▶ Зашёл на конференцию *{lesson_name}* в *{nowtime(False, False, False)}* {profilename}")
appendLog(f'Joined lesson {lesson_name} at {nowtime(False, False, False)}') appendLog(f'Joined lesson {lesson_name} at {nowtime(False, False, False)}')
@ -503,7 +503,7 @@ def main(source='deamon'):
keyboard.release(start) keyboard.release(start)
record_now = True record_now = True
print(f'{nowtime()} Сигнал записи OBS отправлен.') print(f'{nowtime()} Сигнал записи OBS отправлен.')
playSound("recordstart", nowtime()) playSound(getConfig("sound_recordstart"), nowtime())
lesson_duration = (datetime.now() - lesson_start).total_seconds() 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.)') 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: if lesson_obs:
keyboard.press(stop) keyboard.press(stop)
time.sleep(.25) time.sleep(.25)
keyboard.release(stop) keyboard.release(stop)
print(f'{nowtime()} Сигнал остановки записи через OBS отправлен.') print(f'{nowtime()} Сигнал остановки записи через OBS отправлен.')
playSound("recordstop", nowtime()) playSound(getConfig("sound_recordstop"), nowtime())
record_now = False record_now = False
time.sleep(3) time.sleep(3)
@ -579,7 +579,7 @@ def main(source='deamon'):
lessons_list = getLessons() lessons_list = getLessons()
else: else:
playSound("started", nowtime()) playSound(getConfig("sound_started"), nowtime())
tgsend(getConfig("telegram_enabled"), f"▶ Присоединился к конференции *{lesson_name}* в *{nowtime(False, False, False)}* {profilename}") tgsend(getConfig("telegram_enabled"), f"▶ Присоединился к конференции *{lesson_name}* в *{nowtime(False, False, False)}* {profilename}")
appendLog(f'Joined lesson {lesson_name} at {nowtime(False, False, False)}') 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"))}') 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 end_unix = int(time.time())+getConfig("shutdown_timeout")*60
rpc.shutdown(end_unix) rpc.shutdown(end_unix)
shutdown = inputimeout(prompt=f'{nowtime()} Нажмите {CYAN}Enter{RESET} чтобы предотвратить выключение ПК...', timeout=getConfig("shutdown_timeout")*60) shutdown = inputimeout(prompt=f'{nowtime()} Нажмите {CYAN}Enter{RESET} чтобы предотвратить выключение ПК...', timeout=getConfig("shutdown_timeout")*60)
@ -637,6 +637,28 @@ def main(source='deamon'):
time.sleep(5) time.sleep(5)
appendLog('Shutting PC down') appendLog('Shutting PC down')
os.system("shutdown /s /t 1") 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': # elif getConfig("end_mode") == 'restart':
# from datetime import datetime, time # from datetime import datetime, time
# from time import sleep # from time import sleep

View File

@ -20,26 +20,33 @@ yes_list = ['y', 'yes', 'д', 'да']
no_list = ['n', 'no', 'н', 'нет'] no_list = ['n', 'no', 'н', 'нет']
default_config = { default_config = {
"firstboot": True, "firstboot": True,
"debug": False, "debug": False,
"shutdown_timeout": 30, "shutdown_timeout": 30,
"shutdown_enabled": False, "shutdown_enabled": False,
"start": "shift+f7", "start": "shift+f7",
"stop": "shift+f8", "stop": "shift+f8",
"telegram_enabled": False, "telegram_enabled": False,
"use_colors": True, "use_colors": True,
"run_fullscreen": False, "run_fullscreen": False,
"use_rpc": True, "rpc_use": True,
"sounds": True, "rpc_id": "800049969960058882",
"remove_old": True, "sounds": True,
"end_mode": "shutdown", "remove_old": True,
"obs_exe": None, "end_mode": "shutdown",
"obs_core": None, "obs_exe": None,
"obs_delay": 10, "obs_core": None,
"update_check": True, "obs_delay": 10,
"write_logs": True, "update_check": True,
"log_size": 512 "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 # Функция возвращающая надпись Windows Only

View File

@ -237,7 +237,7 @@ def helpMenu():
elif help_choose == '7': elif help_choose == '7':
try: try:
clear() 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: except Exception as exp:
clear() clear()
appendLog(f'Failed to load donation list {exp}') appendLog(f'Failed to load donation list {exp}')
@ -462,7 +462,7 @@ def updater(serv_ver, version):
appendLog('Changelog loaded') appendLog('Changelog loaded')
clear() clear()
print(f'{RESET}{changelog_text}\n') print(f'{RESET}{changelog_text}\n')
print(changelog.text) print(changelog.content.decode('utf-8'))
print(changelog_footer) print(changelog_footer)
none = input('\n > ') none = input('\n > ')
continue continue

13
rpc.py
View File

@ -11,7 +11,7 @@ version = '2.6'
import libinstaller import libinstaller
from pypresence import Presence from pypresence import Presence
client_id = '800049969960058882' client_id = getConfig("rpc_id")
try: try:
RPC = Presence(client_id,pipe=0) RPC = Presence(client_id,pipe=0)
@ -39,7 +39,7 @@ rpc_dict = {
"large_text": "AutoZoom • v%version%\nhttp://bit.ly/auto_zoom" "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: try:
RPC.connect() RPC.connect()
connected = True connected = True
@ -51,7 +51,7 @@ else:
def disconnect(): def disconnect():
global connected global connected
if getConfig("use_rpc") and getOS != "android": if getConfig("rpc_use") and getOS != "android":
try: try:
RPC.close() RPC.close()
connected = False connected = False
@ -70,14 +70,14 @@ def connect():
appendLog('Discord RPC failed to connect') appendLog('Discord RPC failed to connect')
def reset(): def reset():
if getConfig("use_rpc") and getOS != "android": if getConfig("rpc_use") and getOS != "android":
RPC.clear() RPC.clear()
appendLog('Discord RPC status cleared') appendLog('Discord RPC status cleared')
def changePresence(sml_img, sml_txt, stt, dtls, start=None, end=None): def changePresence(sml_img, sml_txt, stt, dtls, start=None, end=None):
try: try:
if getConfig("use_rpc") and getOS != "android": if getConfig("rpc_use") and getOS != "android":
if connected == False: if connected == False:
connect() connect()
RPC.update( RPC.update(
@ -120,6 +120,9 @@ def inMenu():
def shutdown(end): def shutdown(end):
changePresence("shutdown", "Выключение", "Отсчёт до авто-выключения", "Выключение ПК", end=end) changePresence("shutdown", "Выключение", "Отсчёт до авто-выключения", "Выключение ПК", end=end)
def sleepmode(end):
changePresence("shutdown", "Спящий режим", "Отсчёт до авто-засыпания", "Спящий режим ПК", end=end)
def inSettings(): def inSettings():
changePresence("settings", "Настройки", "Открыты настройки", "В главном меню") changePresence("settings", "Настройки", "Открыты настройки", "В главном меню")

View File

@ -298,9 +298,9 @@ def settings2():
print(f'{RESET}Нужно использовать целое число.') print(f'{RESET}Нужно использовать целое число.')
time.sleep(2) time.sleep(2)
continue continue
continue continue
elif settings_choose == '2': elif settings_choose == '2':
if sysname == 'windows': if sysname == 'windows':
@ -317,10 +317,10 @@ def settings2():
print(f'{RESET}Нужно использовать комбинацию клавиш в виде текста.') print(f'{RESET}Нужно использовать комбинацию клавиш в виде текста.')
time.sleep(2) time.sleep(2)
continue continue
clear() clear()
continue continue
elif settings_choose == '3': elif settings_choose == '3':
if sysname == 'windows': if sysname == 'windows':
@ -337,18 +337,18 @@ def settings2():
print(f'{RESET}Нужно использовать комбинацию клавиш в виде текста.') print(f'{RESET}Нужно использовать комбинацию клавиш в виде текста.')
time.sleep(2) time.sleep(2)
continue continue
clear() clear()
continue continue
elif settings_choose == '4': elif settings_choose == '4':
setConfig("telegram_enabled", not getConfig("telegram_enabled")) setConfig("telegram_enabled", not getConfig("telegram_enabled"))
appendLog(f'Changed option "telegram_enabled" to {getConfig("telegram_enabled")}') appendLog(f'Changed option "telegram_enabled" to {getConfig("telegram_enabled")}')
clear() clear()
continue continue
elif settings_choose == '5': elif settings_choose == '5':
clear() clear()
@ -367,30 +367,30 @@ def settings2():
except: except:
clear() clear()
continue continue
telegram_send.send(messages=[f"🎊 Конфигурация правильна, всё работает!"], parse_mode="markdown", conf=f"{files_folder}telegram.conf") telegram_send.send(messages=[f"🎊 Конфигурация правильна, всё работает!"], parse_mode="markdown", conf=f"{files_folder}telegram.conf")
appendLog('Telegram Send successfully configured') appendLog('Telegram Send successfully configured')
clear() clear()
continue continue
elif settings_choose == '6': elif settings_choose == '6':
setConfig("update_check", not getConfig("update_check")) setConfig("update_check", not getConfig("update_check"))
appendLog(f'Changed option "update_check" to {getConfig("update_check")}') appendLog(f'Changed option "update_check" to {getConfig("update_check")}')
clear() clear()
continue continue
elif settings_choose == '7': elif settings_choose == '7':
appendLog('Going to settings page 3') appendLog('Going to settings page 3')
clear() clear()
settings3() settings3()
elif settings_choose == '8': elif settings_choose == '8':
appendLog('Returned to settings page 1') appendLog('Returned to settings page 1')
clear() clear()
return return
except KeyboardInterrupt: except KeyboardInterrupt:
rpc.inMenu() rpc.inMenu()
clear() clear()
@ -405,21 +405,21 @@ def settings3():
setTitle("AutoZoom (Настройки)", sysname) setTitle("AutoZoom (Настройки)", sysname)
clear() clear()
if getConfig("write_logs"): if getConfig("write_logs"):
logs_val = f'{BGREEN}Вкл.{RESET}' logs_val = f'{BGREEN}Вкл.{RESET}'
elif not getConfig("write_logs"): elif not getConfig("write_logs"):
logs_val = f'{BRED}Выкл.{RESET}' logs_val = f'{BRED}Выкл.{RESET}'
else: else:
logs_val = f'{BRED}ERROR{RESET}' logs_val = f'{BRED}ERROR{RESET}'
if getConfig("remove_old"): if getConfig("remove_old"):
remove_val = f'{BGREEN}Вкл.{RESET}' remove_val = f'{BGREEN}Вкл.{RESET}'
elif not getConfig("remove_old"): elif not getConfig("remove_old"):
remove_val = f'{BRED}Выкл.{RESET}' remove_val = f'{BRED}Выкл.{RESET}'
else: else:
remove_val = f'{BRED}ERROR{RESET}' remove_val = f'{BRED}ERROR{RESET}'
shutdown_time_val = getConfig("shutdown_timeout") shutdown_time_val = getConfig("shutdown_timeout")
start_val = getConfig("start") start_val = getConfig("start")
stop_val = getConfig("stop") stop_val = getConfig("stop")
@ -440,11 +440,14 @@ def settings3():
print(f' {BRED}5.{RESET} Удалять старые конференции ({remove_val})') print(f' {BRED}5.{RESET} Удалять старые конференции ({remove_val})')
print(f' {BBLACK}Автоматически удалять одноразовые конференции которые были до дня запуска\n') 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' {BBLACK}Восстановить настройки по умолчанию\n')
print(f' {BRED}7.{RESET} Назад') print(f' {BRED}8.{RESET} Назад')
print(f' {BBLACK}Вернуться на предыдущую страницу{RESET}\n') print(f' {BBLACK}Вернуться на предыдущую страницу{RESET}\n')
print(f' {BBLACK}Для переключения параметров Вкл/Выкл просто введите номер{RESET}') #\n Если окно приложения слишком мелкое - увеличьте его или листайте это меню{RESET}') print(f' {BBLACK}Для переключения параметров Вкл/Выкл просто введите номер{RESET}') #\n Если окно приложения слишком мелкое - увеличьте его или листайте это меню{RESET}')
@ -466,7 +469,7 @@ def settings3():
print(f'{RESET}Нужно использовать целое число.') print(f'{RESET}Нужно использовать целое число.')
time.sleep(2) time.sleep(2)
continue continue
appendLog(f'Changed option "log_size" to {getConfig["log_size"]}') appendLog(f'Changed option "log_size" to {getConfig["log_size"]}')
continue continue
@ -482,7 +485,7 @@ def settings3():
print(f'{RESET}Нужно использовать целое число.') print(f'{RESET}Нужно использовать целое число.')
time.sleep(2) time.sleep(2)
continue continue
appendLog(f'Changed option "obs_delay" to {getConfig["obs_delay"]}') appendLog(f'Changed option "obs_delay" to {getConfig["obs_delay"]}')
continue continue
@ -516,17 +519,22 @@ def settings3():
none = input(f'Не удалось добавить в автозапуск:\n{BRED}{exp}{RESET}\n\n > ') none = input(f'Не удалось добавить в автозапуск:\n{BRED}{exp}{RESET}\n\n > ')
appendLog(f'Could not add autorun: {exp}') appendLog(f'Could not add autorun: {exp}')
continue continue
continue continue
else: else:
continue continue
elif settings_choose == '5': elif settings_choose == '5':
setConfig("remove_old", not getConfig("remove_old")) setConfig("remove_old", not getConfig("remove_old"))
appendLog(f'Changed option "remove_old" to {getConfig("remove_old")}') appendLog(f'Changed option "remove_old" to {getConfig("remove_old")}')
elif settings_choose == '6': elif settings_choose == '6':
appendLog('Going to customize page')
clear()
customize()
elif settings_choose == '7':
appendLog('Resetting configuration') appendLog('Resetting configuration')
while True: while True:
@ -554,17 +562,17 @@ def settings3():
else: else:
clear() clear()
continue continue
continue continue
clear() clear()
continue continue
elif settings_choose == '7': elif settings_choose == '8':
appendLog('Returned to settings page 2') appendLog('Returned to settings page 2')
clear() clear()
return return
except KeyboardInterrupt: except KeyboardInterrupt:
rpc.inMenu() rpc.inMenu()
clear() clear()