Compare commits

...

12 Commits
v2.2 ... master

Author SHA1 Message Date
Profitroll c0076bf5aa Updated to v2.6
Внесены различные изменения в RPC и конфигурацию
2022-02-01 17:38:27 +02:00
Profitroll 09a3d66656 Updated to v2.6 2022-02-01 17:34:08 +02:00
Profitroll 504b748789 Updated to v2.6
Temporary fix for Python 3.10 RPC issue. (https://github.com/profitrollgame/AutoZoom/issues/1)
2022-02-01 17:32:46 +02:00
Profitroll fe0a1a5202 Removed GitBook
Returned back to normal GitHub Wiki
2022-01-23 00:09:03 +02:00
Profitroll 4aa988f236
GitBook: [#4] Added other pages 2021-11-29 13:19:33 +00:00
Profitroll 3cb46f2b26
GitBook: [#3] Icons 2021-11-29 13:11:03 +00:00
Profitroll 0cdf5d8ce1
GitBook: [#1] Вики начала разбиваться на странички 2021-11-29 12:28:32 +00:00
Profitroll 25bf0064b7 Updated to v2.5 2021-11-05 18:47:43 +02:00
Profitroll 363de17c08 Update 2.4 2021-11-03 09:20:15 +02:00
Profitroll 66ec64fa30 Обновление v2.3 2021-08-01 11:14:33 +03:00
Profitroll a573edc03a Merge branch 'master' of https://github.com/profitrollgame/AutoZoom 2021-05-08 01:28:45 +03:00
Profitroll 5d2da989d6 Обновление v2.2 2021-05-08 01:28:41 +03:00
8 changed files with 479 additions and 375 deletions

View File

@ -39,9 +39,15 @@ AutoZoom создан для автоматизации присоединени
2. Попробуйте запустить ваш `start.bat` в папке `AutoZoom`. Возможно, он сам отправит вас на страницу загрузки Python. 2. Попробуйте запустить ваш `start.bat` в папке `AutoZoom`. Возможно, он сам отправит вас на страницу загрузки Python.
Если же этого не произошло - сделать это можно вручную с официального сайта или из магазина приложений Если же этого не произошло - сделать это можно вручную с официального сайта или из магазина приложений
Microsoft Store (https://www.microsoft.com/ru-ru/p/python-37/9nj46sx7x90p?activetab=pivot:overviewtab&source=lp). Microsoft Store (https://www.microsoft.com/ru-ru/p/python-37/9nj46sx7x90p?activetab=pivot:overviewtab&source=lp).
В случае установки без MS Store - достаточно скачать инсталлер с оф. сайта Python (https://www.python.org/downloads/).
Для установки на Linux необходимо использовать стандартный менеджер пакетов (apt, yum, rpm и т.д.)
Инструкции по установке версий Python3 на Linux вы можете самостоятельно в зависимости от дистрибутива
и желаемой к установке версии Python3.
Для установки на Android (в данном случае - внутри Termux) нужно ввести `pkg install python`.
3. Дважды нажмите на `start.bat` и выберите пункт "Редактор" чтобы редактировать ваши уроки на любой 3. Дважды нажмите на `start.bat` и выберите пункт "Редактор" чтобы редактировать ваши уроки на любой
удобный день. Введите все нужные данные. Название конференции, дату, время, ссылку на приглашение. удобный день. Введите все нужные данные. Название конференции, дату, время, ссылку на приглашение.
В случае установки на Linux/Android - скрипт запуска будет `start.sh` и его можно запустить через `bash ./start.sh`
4. Теперь самая важная часть. Установите Zoom (https://zoom.us/download) на свой ПК. 4. Теперь самая важная часть. Установите Zoom (https://zoom.us/download) на свой ПК.
Запустите его и зарегистрируйтесь/войдите в аккаунт. При входе ОБЯЗАТЕЛЬНО Запустите его и зарегистрируйтесь/войдите в аккаунт. При входе ОБЯЗАТЕЛЬНО

View File

@ -44,12 +44,6 @@ import ast
import inputimeout import inputimeout
import telegram_send import telegram_send
if getOS() == "windows":
import winsound
from playsound import playsound
else:
from playsound import playsound
menu_choose = None menu_choose = None
try: try:
@ -61,12 +55,12 @@ except Exception as exp:
def nowtime(seconds=True, noice=True, color=True): def nowtime(seconds=True, noice=True, color=True):
now = datetime.now() now = datetime.now()
if seconds == True: if seconds:
justnow = now.strftime("%H:%M:%S") justnow = now.strftime("%H:%M:%S")
else: else:
justnow = now.strftime("%H:%M") justnow = now.strftime("%H:%M")
if noice == True: if noice:
if not color: if not color:
beautiful = f'[{justnow}]' beautiful = f'[{justnow}]'
else: else:
@ -128,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})')
@ -273,7 +267,26 @@ def main(source='deamon'):
today = date.today().strftime("%d.%m.%Y") today = date.today().strftime("%d.%m.%Y")
if (today == lesson_date) or (getDayNum(today) == lesson_repeat_day): diff = ((datetime.strptime(today, "%d.%m.%Y") - datetime.strptime(lesson_date, "%d.%m.%Y")).days)
if getConfig("debug"):
print(f'{nowtime()} Конференция {CYAN}{lesson_name}{RESET}: Разница дней {BRED}{diff}{RESET}, Повторение {BRED}{lesson_repeat}{RESET}.')
if diff > 0 and not lesson_repeat:
if getConfig("remove_old"):
del lessons_list[lessons_list.index(les)]
saveJson(files_folder+'lessons.json', lessons_list)
appendLog(f'Old lesson named {lesson_name} removed')
if getConfig("debug"):
print(f'{nowtime()} Старая конференция {CYAN}{lesson_name}{RESET} за {CYAN}{lesson_date} {RESET}в {BRED}{lesson_time}{RESET} удалена.')
lessons_list = getLessons()
elif (today == lesson_date) or (getDayNum(today) == lesson_repeat_day):
print(f'{BBLACK}================================================{RESET}\n') print(f'{BBLACK}================================================{RESET}\n')
print(f'{nowtime()} Найдена конференция {CYAN}{lesson_name}{RESET} в {BRED}{lesson_time}{RESET}. Ждём начала...') print(f'{nowtime()} Найдена конференция {CYAN}{lesson_name}{RESET} в {BRED}{lesson_time}{RESET}. Ждём начала...')
@ -367,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')
@ -385,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:
@ -462,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)}')
@ -473,7 +486,7 @@ def main(source='deamon'):
try: try:
obs_process = subprocess.Popen(getConfig("obs_exe"), cwd=getConfig("obs_core")) obs_process = subprocess.Popen(getConfig("obs_exe"), cwd=getConfig("obs_core"))
appendLog(f'Sent instruction to open OBS') appendLog(f'Sent instruction to open OBS')
time.sleep(5) time.sleep(getConfig("obs_delay"))
except Exception as exp: except Exception as exp:
appendLog(f'Failed to open OBS: {exp}') appendLog(f'Failed to open OBS: {exp}')
print(f'{nowtime()} Не удалось открыть OBS для записи.') print(f'{nowtime()} Не удалось открыть OBS для записи.')
@ -490,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()
@ -525,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)
@ -566,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)}')
@ -609,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)
@ -624,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
@ -643,6 +678,7 @@ def main(source='deamon'):
rpc.disconnect() rpc.disconnect()
clear() clear()
sys.exit() sys.exit()
elif source == 'menu': elif source == 'menu':
appendLog(f'Waiting for any input') appendLog(f'Waiting for any input')
@ -652,6 +688,7 @@ def main(source='deamon'):
clear() clear()
setTitle("AutoZoom (Главная)", sysname) setTitle("AutoZoom (Главная)", sysname)
return return
except KeyboardInterrupt: except KeyboardInterrupt:
if source == 'deamon': if source == 'deamon':
appendLog(f'Deamon stopped, waiting for any input') appendLog(f'Deamon stopped, waiting for any input')
@ -661,6 +698,7 @@ def main(source='deamon'):
rpc.disconnect() rpc.disconnect()
clear() clear()
sys.exit() sys.exit()
elif source == 'menu': elif source == 'menu':
appendLog(f'Deamon stopped, waiting for any input') appendLog(f'Deamon stopped, waiting for any input')

View File

@ -65,8 +65,11 @@ def listLessons(from_where='remove'):
def sortLessons(dictionary): def sortLessons(dictionary):
dictionary.sort(key = lambda x: datetime.strptime(x['time'], '%H:%M')) if getConfig("debug"):
dictionary.sort(key = lambda x: datetime.strptime(x['date'], '%d.%m.%Y')) print(dictionary)
dictionary.sort(key = lambda x: datetime.strptime(x["time"], '%H:%M'))
dictionary.sort(key = lambda x: datetime.strptime(x["date"], '%d.%m.%Y'))
appendLog('Lessons dictionary sorted') appendLog('Lessons dictionary sorted')
@ -95,6 +98,7 @@ def addLesson():
lessons_got = getLessons() lessons_got = getLessons()
lessname = input(f'{RESET}Введите (своё) имя конференции:\n{BBLACK}Нужно лишь для отображения в Discord и самом AutoZoom{RESET}\n\n > {CYAN}') lessname = input(f'{RESET}Введите (своё) имя конференции:\n{BBLACK}Нужно лишь для отображения в Discord и самом AutoZoom{RESET}\n\n > {CYAN}')
lessname = strCleaner(lessname)
local_lessons.update({"name": lessname}) local_lessons.update({"name": lessname})
while True: while True:
@ -204,6 +208,7 @@ def addLesson():
clear() clear()
lesslink = input(f'{RESET}Введите ссылку на конференцию:\n{BBLACK}Формат: {BRED}https://us01web.zoom.us/j/ИДЕНТИФИКАТОР?pwd=ПАРОЛЬ{RESET}\n{BBLACK}Либо введите {YELLOW}1 {BBLACK}для добавления по номеру и паролю{RESET}\n\n > {BRED}').replace(" ", "") lesslink = input(f'{RESET}Введите ссылку на конференцию:\n{BBLACK}Формат: {BRED}https://us01web.zoom.us/j/ИДЕНТИФИКАТОР?pwd=ПАРОЛЬ{RESET}\n{BBLACK}Либо введите {YELLOW}1 {BBLACK}для добавления по номеру и паролю{RESET}\n\n > {BRED}').replace(" ", "")
lesslink = strCleaner(lesslink)
if lesslink.replace(' ', '') == '1': if lesslink.replace(' ', '') == '1':
clear() clear()
@ -309,6 +314,8 @@ def editLesson():
clear() clear()
lessname = input(f'{RESET}Введите (своё) имя конференции:\n{BBLACK}Нужно лишь для отображения в Discord и самом AutoZoom{RESET}\n\nОригинальное имя: {CYAN}{lessons_got[edi]["name"]}{RESET}\n\n > {CYAN}') lessname = input(f'{RESET}Введите (своё) имя конференции:\n{BBLACK}Нужно лишь для отображения в Discord и самом AutoZoom{RESET}\n\nОригинальное имя: {CYAN}{lessons_got[edi]["name"]}{RESET}\n\n > {CYAN}')
lessname = strCleaner(lessname)
if lessname == '': if lessname == '':
lessname = lessons_got[edi]["name"] lessname = lessons_got[edi]["name"]
local_lessons.update({"name": lessname}) local_lessons.update({"name": lessname})
@ -366,10 +373,23 @@ def editLesson():
while True: while True:
clear() clear()
try: try:
lesstime = input(f'{RESET}Введите время конференции ({BRED}ЧЧ:ММ{RESET}):\n\nОригинальное время: {BRED}{lessons_got[edi]["time"]}{RESET}\n\n > {BRED}') lesstime = input(f'{RESET}Введите время конференции ({BRED}ЧЧ:ММ{RESET}):\n\nОригинальное время: {BRED}{lessons_got[edi]["time"]}{RESET}\n\n > {BRED}')
finallesstime = (datetime.strptime(lesstime, "%H:%M"))
if lesstime == '':
finallesstime = lessons_got[edi]["time"]
lesstime = lessons_got[edi]["time"]
local_lessons.update({"time": lesstime}) local_lessons.update({"time": lesstime})
else:
try:
finallesstime = (datetime.strptime(lesstime, "%H:%M"))
finallesstime = lesstime
local_lessons.update({"time": lesstime})
abort = "skip" abort = "skip"
conflict = False conflict = False
conflictles = '' conflictles = ''
@ -408,12 +428,15 @@ def editLesson():
if abort == "restart": if abort == "restart":
continue continue
else: else:
break break
except Exception as exp: except Exception as exp:
none = input(exp) none = input(exp)
pass pass
except:
continue
break break
except: except:
@ -421,6 +444,7 @@ def editLesson():
clear() clear()
lesslink = input(f'{RESET}Введите ссылку на конференцию:\n{BBLACK}Формат: {BRED}https://us01web.zoom.us/j/ИДЕНТИФИКАТОР?pwd=ПАРОЛЬ{RESET}\n{BBLACK}Либо введите {YELLOW}1 {BBLACK}для добавления по номеру и паролю{RESET}\n\n > {BRED}').replace(" ", "") lesslink = input(f'{RESET}Введите ссылку на конференцию:\n{BBLACK}Формат: {BRED}https://us01web.zoom.us/j/ИДЕНТИФИКАТОР?pwd=ПАРОЛЬ{RESET}\n{BBLACK}Либо введите {YELLOW}1 {BBLACK}для добавления по номеру и паролю{RESET}\n\n > {BRED}').replace(" ", "")
lesslink = strCleaner(lesslink)
if lesslink.replace(' ', '') == '1': if lesslink.replace(' ', '') == '1':
clear() clear()
@ -587,6 +611,32 @@ def removeAllLessons():
return return
def debugLesson():
try:
from profile import debuglink, name
appendLog('Debug link added to the list')
local_lessons = {}
lessons_got = getLessons()
local_lessons.update({"name": "Debug Lesson"})
local_lessons.update({"date": date.today().strftime("%d.%m.%Y")})
local_lessons.update({"time": "00:00"})
local_lessons.update({"link": debuglink})
local_lessons.update({"repeat": False})
local_lessons.update({"repeat_day": None})
local_lessons.update({"record": True})
lessons_got.append(dict(local_lessons))
sortLessons(lessons_got)
saveJson(files_folder+'lessons.json', lessons_got)
return f"{RESET}Конференция для отладки профиля {CYAN}{name} {RESET}была добавлена."
except:
return f"{RESET}Для отладки нужен профиль {BRED}profile.py {RESET}со ссылкой на конференцию {BRED}debuglink {RESET}и именем {BRED}name{RESET}."
def editor(): def editor():
try: try:
setTitle("AutoZoom (Редактор)", getOS()) setTitle("AutoZoom (Редактор)", getOS())

View File

@ -29,14 +29,23 @@ default_config = {
"telegram_enabled": False, "telegram_enabled": False,
"use_colors": True, "use_colors": True,
"run_fullscreen": False, "run_fullscreen": False,
"use_rpc": True, "rpc_use": True,
"rpc_id": "800049969960058882",
"sounds": True, "sounds": True,
"remove_old": True,
"end_mode": "shutdown", "end_mode": "shutdown",
"obs_exe": None, "obs_exe": None,
"obs_core": None, "obs_core": None,
"obs_delay": 10,
"update_check": True, "update_check": True,
"write_logs": True, "write_logs": True,
"log_size": 512 "log_size": 512,
"sound_ended": "ended",
"sound_recordstart": "recordstart",
"sound_recordstop": "recordstop",
"sound_shutdown": "shutdown",
"sound_started": "started",
"sound_warning": "warning"
} }
@ -70,6 +79,17 @@ else:
clear = lambda: os.system('clear') clear = lambda: os.system('clear')
# Импортирование игралки звуков
try:
if getOS() == "windows":
import winsound
from playsound import playsound
elif getOS() == "unix":
from playsound import playsound
except:
pass
# Установка заголовка окна cmd.exe # Установка заголовка окна cmd.exe
def setTitle(title, system): def setTitle(title, system):
if system == "windows": if system == "windows":
@ -206,6 +226,16 @@ def playSound(soundname, timing=''):
print(f'{timing} Не удалось проиграть playsound звук "{soundname}" (Ошибка: {exp})') print(f'{timing} Не удалось проиграть playsound звук "{soundname}" (Ошибка: {exp})')
# Функция удаления ненужного мусора из строки
def strCleaner(string):
output = string.replace('"', '\"').replace('\n', '')
appendLog(f"String cleaned: {output}")
return output
# Функция добавления переменных, если их нет # Функция добавления переменных, если их нет
def repairConfig(some_dic): def repairConfig(some_dic):
@ -333,6 +363,10 @@ def getConfig(some_var):
except: except:
try: try:
try:
setConfig(some_var, default_config[some_var])
return default_config[some_var]
except:
repairConfig(config_list) repairConfig(config_list)
config_list = json.load(json_file) config_list = json.load(json_file)
json_file.close() json_file.close()

View File

@ -116,6 +116,7 @@ if getOS() != "android":
libs.append("playsound") libs.append("playsound")
else: else:
try: try:
if not "play-audio" in os.popen('pkg list-all').read():
os.system('pkg install play-audio') os.system('pkg install play-audio')
except: except:
appendLog("Could not install play-audio") appendLog("Could not install play-audio")

67
main.py
View File

@ -9,6 +9,8 @@ import platform
import subprocess import subprocess
from pathlib import Path from pathlib import Path
import libinstaller
from functions import * from functions import *
appendLog('main.py start initialized', startup=True) appendLog('main.py start initialized', startup=True)
@ -28,15 +30,13 @@ else:
BBLACK = BRED = BGREEN = BYELLOW = BBLUE = BMAGENTA = BCYAN = BWHITE = '' BBLACK = BRED = BGREEN = BYELLOW = BBLUE = BMAGENTA = BCYAN = BWHITE = ''
ULINE = REVERSE = '' ULINE = REVERSE = ''
import libinstaller
import wget import wget
import requests import requests
import keyboard import keyboard
import getpass import getpass
from zipfile import ZipFile from zipfile import ZipFile
version = 2.1 version = 2.6
path = Path(__file__).resolve().parent path = Path(__file__).resolve().parent
def mainMenu(): def mainMenu():
@ -63,7 +63,7 @@ def mainMenu():
except Exception as exp: except Exception as exp:
appendLog(f'Version number load failed {exp}') appendLog(f'Version number load failed {exp}')
setTitle("Ошибка загрузки данных", getOS()) setTitle("Ошибка загрузки данных", getOS())
print(f'Не удалось загрузить данные о последней версии.\nПроверьте подключение к сети и повторите попытку.\n\nСтатус сервера центра обновлений:\n{BRED}https://status.end-play.xyz/786373747{RESET}') print(f'Не удалось загрузить данные о последней версии.\nПроверьте подключение к сети и повторите попытку.\n\nСтатус сервера центра обновлений:\n{BRED}https://stats.uptimerobot.com/OqwR9iAqBg{RESET}')
todo = input(f'\nВведите {BRED}ignore {RESET}чтобы выключить проверку обновлений и продолжить\nлибо введите что угодно иное чтобы закрыть программу.\n\n > {BRED}') todo = input(f'\nВведите {BRED}ignore {RESET}чтобы выключить проверку обновлений и продолжить\nлибо введите что угодно иное чтобы закрыть программу.\n\n > {BRED}')
@ -167,8 +167,10 @@ def helpMenu():
print(f' {BRED}3.{RESET} Центр поддержки') print(f' {BRED}3.{RESET} Центр поддержки')
print(f' {BRED}4.{RESET} Telegram проекта') print(f' {BRED}4.{RESET} Telegram проекта')
print(f' {BRED}5.{RESET} Связаться с автором') print(f' {BRED}5.{RESET} Связаться с автором')
print(f' {BRED}6.{RESET} Сводка информации') print(f' {BRED}6.{RESET} Поддержать проект')
print(f' {BRED}7.{RESET} В главное меню') print(f' {BRED}7.{RESET} Список поддержавших')
print(f' {BRED}8.{RESET} Сводка информации')
print(f' {BRED}9.{RESET} В главное меню')
help_choose = input(f'\n > {BRED}') help_choose = input(f'\n > {BRED}')
@ -222,7 +224,27 @@ def helpMenu():
appendLog(f'Failed to open AutoZoom\'s developer Telegram: {exp}') appendLog(f'Failed to open AutoZoom\'s developer Telegram: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://t.me/profitroll{RESET}\n\n > ') none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://t.me/profitroll{RESET}\n\n > ')
clear() clear()
if help_choose == '6': elif help_choose == '6':
try:
clear()
appendLog('Opened AutoZoom\'s donation page')
webbrowser.open("https://www.end-play.xyz/autozoom/donate")
except Exception as exp:
clear()
appendLog(f'Failed to open AutoZoom\'s donation page: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://www.end-play.xyz/autozoom/donate{RESET}\n\n > ')
clear()
elif help_choose == '7':
try:
clear()
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}')
print(f'{RESET}Не удалось загрузить данные о списке поддержавших проект.\nВы можете посмотреть его самостоятельно: {BRED}https://www.end-play.xyz/AutoZoomDonors.txt')
none = input('\n > ')
clear()
if help_choose == '8':
clear() clear()
if getState("RBTray.exe"): if getState("RBTray.exe"):
@ -257,7 +279,7 @@ def helpMenu():
print(f' {BBLACK}{RESET} Discord RPC: {dsrpc}') print(f' {BBLACK}{RESET} Discord RPC: {dsrpc}')
none = input('\n > ') none = input('\n > ')
clear() clear()
elif help_choose == '7': elif help_choose == '9':
rpc.inMenu() rpc.inMenu()
clear() clear()
setTitle("AutoZoom (Главная)", getOS()) setTitle("AutoZoom (Главная)", getOS())
@ -282,10 +304,12 @@ def devMenu():
print(f' {BRED}1.{RESET} PlaySound test') print(f' {BRED}1.{RESET} PlaySound test')
print(f' {BRED}2.{RESET} WinSound test') print(f' {BRED}2.{RESET} WinSound test')
print(f' {BRED}3.{RESET} Play-audio test') print(f' {BRED}3.{RESET} Play-audio test')
print(f' {BRED}4.{RESET} OS check test') print(f' {BRED}4.{RESET} playSound function test')
print(f' {BRED}5.{RESET} Telegram test') print(f' {BRED}5.{RESET} OS check test')
print(f' {BRED}6.{RESET} Color test') print(f' {BRED}6.{RESET} Telegram test')
print(f' {BRED}7.{RESET} Exit to menu') print(f' {BRED}7.{RESET} Zoom meeting test')
print(f' {BRED}8.{RESET} Color test')
print(f' {BRED}9.{RESET} Exit to menu')
choose = input(f'\n > {BRED}') choose = input(f'\n > {BRED}')
@ -304,17 +328,27 @@ def devMenu():
continue continue
elif choose == '4': elif choose == '4':
playSound("debug")
continue
elif choose == '5':
clear() clear()
none = input(f'{RESET}{getOS()}\n\n > ') none = input(f'{RESET}{getOS()}\n\n > ')
continue continue
elif choose == '5': elif choose == '6':
clear() clear()
import telegram_send import telegram_send
telegram_send.send(messages=["Telegram message test"], parse_mode="markdown", conf=files_folder+"telegram.conf") telegram_send.send(messages=["Telegram message test"], parse_mode="markdown", conf=files_folder+"telegram.conf")
continue continue
elif choose == '6': elif choose == '7':
clear()
print(editor.debugLesson())
none = input(f'{RESET}\n > ')
continue
elif choose == '8':
clear() clear()
print(f'{BLACK}███{RED}███{GREEN}███{YELLOW}███{BLUE}███{MAGENTA}███{CYAN}███{WHITE}███') print(f'{BLACK}███{RED}███{GREEN}███{YELLOW}███{BLUE}███{MAGENTA}███{CYAN}███{WHITE}███')
print(f'{BBLACK}███{BRED}███{BGREEN}███{BYELLOW}███{BBLUE}███{BMAGENTA}███{BCYAN}███{BWHITE}███') print(f'{BBLACK}███{BRED}███{BGREEN}███{BYELLOW}███{BBLUE}███{BMAGENTA}███{BCYAN}███{BWHITE}███')
@ -324,7 +358,7 @@ def devMenu():
none = input(RESET+'\n > ') none = input(RESET+'\n > ')
continue continue
elif choose == '7': elif choose == '9':
rpc.inMenu() rpc.inMenu()
clear() clear()
setTitle("AutoZoom (Главная)", getOS()) setTitle("AutoZoom (Главная)", getOS())
@ -382,6 +416,7 @@ def updater(serv_ver, version):
print(f' {BRED}1.{RESET} Установить') print(f' {BRED}1.{RESET} Установить')
print(f' {BRED}2.{RESET} Отменить') print(f' {BRED}2.{RESET} Отменить')
updater_decide = input(f'\n > {BRED}') updater_decide = input(f'\n > {BRED}')
print(RESET)
if updater_decide == '1': if updater_decide == '1':
appendLog('Trying to update AutoZoom') appendLog('Trying to update AutoZoom')
@ -427,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

227
rpc.py
View File

@ -6,18 +6,40 @@ import sys
from colors import * from colors import *
from functions import * from functions import *
version = '2.1' version = '2.6'
import libinstaller import libinstaller
from pypresence import Presence from pypresence import Presence
client_id = '800049969960058882' client_id = getConfig("rpc_id")
try:
RPC = Presence(client_id,pipe=0) RPC = Presence(client_id,pipe=0)
except Exception as exp:
appendLog(f'Discord RPC failed to initialize status due to {exp}')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.\nОшибка: {BRED}{exp}{RESET}')
time.sleep(1)
connected = False connected = False
if getConfig("use_rpc") and getOS != "android": rpc_dict = {
"large_image": "1024_cover",
"small_image": {
"waiting": "status_waiting",
"conference": "status_lesson",
"menu": "status_menu",
"shutdown": "status_shutdown",
"settings": "status_settings",
"debug": "status_debug",
"editor": "status_editing",
"updating": "status_updating",
"support": "status_support"
},
"large_text": "AutoZoom • v%version%\nhttp://bit.ly/auto_zoom"
}
if getConfig("rpc_use") and getOS != "android":
try: try:
RPC.connect() RPC.connect()
connected = True connected = True
@ -29,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
@ -48,19 +70,27 @@ 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 waitLesson(lesson, start):
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(large_image='1024_cover', small_image='status_waiting', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Ожидание', state=f'Ждём начала «{lesson}»', details='Конференция не началась', start=start) RPC.update(
appendLog(f'Discord RPC changed to waitLesson (Lesson: {lesson}, Start: {start})') large_image=rpc_dict["large_image"],
small_image=rpc_dict["small_image"][sml_img],
large_text=rpc_dict["large_text"].replace("%version%", str(version)),
small_text=sml_txt,
state=stt,
details=dtls,
start=start,
end=end
)
appendLog(f'Discord RPC changed: (Small image: {sml_img}, Small text: {sml_txt}, State: {stt}, Details: {dtls}, Start: {str(start)}, End: {str(end)})')
except AttributeError: except AttributeError:
appendLog('Discord RPC failed to change status') appendLog('Discord RPC failed to change status')
if getConfig("debug"): if getConfig("debug"):
@ -71,177 +101,46 @@ def waitLesson(lesson, start):
if getConfig("debug"): if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.') print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1) time.sleep(1)
except Exception as exp:
appendLog(f'Discord RPC failed to change status due to {exp}')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.\nОшибка: {BRED}{exp}{RESET}')
time.sleep(1)
def onLesson(lesson, start):
try: def waitLesson(conference, start):
if getConfig("use_rpc") and getOS != "android": changePresence("waiting", "Ожидание", f"Ждём начала «{conference}»", "Конференция не началась", start=start)
if connected == False:
connect() def onLesson(conference, start):
RPC.update(large_image='1024_cover', small_image='status_lesson', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Конференция', state=f'Слушаем «{lesson}»', details='Идёт конференция', start=start) changePresence("conference", "Конференция", f"Слушаем «{conference}»", "Идёт конференция", start=start)
appendLog(f'Discord RPC changed to onLesson (Lesson: {lesson}, Start: {start})')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def inMenu(): def inMenu():
try: changePresence("menu", "Главное меню", "Открыт список опций", "В главном меню")
if getConfig("use_rpc") and getOS != "android":
if connected == False:
connect()
RPC.update(large_image='1024_cover', small_image='status_menu', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Главное меню', state='Открыт список опций', details='В главном меню')
appendLog('Discord RPC changed to inMenu')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def shutdown(end): def shutdown(end):
try: changePresence("shutdown", "Выключение", "Отсчёт до авто-выключения", "Выключение ПК", end=end)
if getConfig("use_rpc") and getOS != "android":
if connected == False: def sleepmode(end):
connect() changePresence("shutdown", "Спящий режим", "Отсчёт до авто-засыпания", "Спящий режим ПК", end=end)
RPC.update(large_image='1024_cover', small_image='status_shutdown', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Выключение', state='Отсчёт до авто-выключения', details='Выключение ПК', end=end)
appendLog(f'Discord RPC changed to shutdown (End: {end})')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def inSettings(): def inSettings():
try: changePresence("settings", "Настройки", "Открыты настройки", "В главном меню")
if getConfig("use_rpc") and getOS != "android":
if connected == False:
connect()
RPC.update(large_image='1024_cover', small_image='status_settings', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Настройки', state='Открыты настройки', details='В главном меню')
appendLog('Discord RPC changed to inSettings')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def inDebug(): def inDebug():
try: changePresence("debug", "Отладка", "Открыто меню отладки", "В меню разработчика")
if getConfig("use_rpc") and getOS != "android":
if connected == False:
connect()
RPC.update(large_image='1024_cover', small_image='status_debug', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Отладка', state='Открыто меню отладки', details='В меню разработчика')
appendLog('Discord RPC changed to inDebug')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def inEditor(): def inEditor():
try: changePresence("editor", "Редактор", "Открыт редактор", "В главном меню")
if getConfig("use_rpc") and getOS != "android":
if connected == False:
connect()
RPC.update(large_image='1024_cover', small_image='status_editing', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Редактор', state='Открыт редактор', details='В главном меню')
appendLog('Discord RPC changed to inEditor')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def inUpdater(): def inUpdater():
try: changePresence("updating", "Обновление", "Открыт центр обновлений", "В главном меню")
if getConfig("use_rpc") and getOS != "android":
if connected == False:
connect()
RPC.update(large_image='1024_cover', small_image='status_updating', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Обновление', state='Открыт центр обновлений', details='В главном меню')
appendLog('Discord RPC changed to inUpdater')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def inHelp(): def inHelp():
try: changePresence("support", "Помощь", "Открыта помощь", "В главном меню")
if getConfig("use_rpc") and getOS != "android":
if connected == False:
connect()
RPC.update(large_image='1024_cover', small_image='status_support', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Помощь', state='Открыта помощь', details='В главном меню')
appendLog('Discord RPC changed to inHelp')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
def lessonEnded(): def lessonEnded():
try: changePresence("waiting", "Ожидание", "Ждём указаний", "Все конференции закончились")
if getConfig("use_rpc") and getOS != "android":
if connected == False:
connect()
RPC.update(large_image='1024_cover', small_image='status_waiting', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Ожидание', state=f'Ждём указаний', details='Все конференции закончились')
appendLog('Discord RPC changed to lessonEnded')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
except AssertionError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)
if __name__ == "__main__": if __name__ == "__main__":
try: changePresence("settings", "Отладка", "Модуль Discord RPC запущен в режиме тестирования", "Режим отладки")
RPC.connect()
RPC.update(large_image='1024_cover', small_image='status_settings', large_text=f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom', small_text='Отладка', state='Модуль Discord RPC запущен в режиме тестирования', details='Режим отладки')
appendLog('Discord RPC changed to debug')
except AttributeError:
appendLog('Discord RPC failed to change status')
if getConfig("debug"):
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
time.sleep(1)

View File

@ -413,6 +413,13 @@ def settings3():
else: else:
logs_val = f'{BRED}ERROR{RESET}' 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") shutdown_time_val = getConfig("shutdown_timeout")
start_val = getConfig("start") start_val = getConfig("start")
stop_val = getConfig("stop") stop_val = getConfig("stop")
@ -425,13 +432,22 @@ def settings3():
print(f' {BRED}2.{RESET} Размер лога действий ({YELLOW}{str(getConfig("log_size"))} Кб{RESET})') print(f' {BRED}2.{RESET} Размер лога действий ({YELLOW}{str(getConfig("log_size"))} Кб{RESET})')
print(f' {BBLACK}Размер файла лога превышая который он будет упакован в архив\n') print(f' {BBLACK}Размер файла лога превышая который он будет упакован в архив\n')
print(f' {BRED}3.{RESET} Добавить в автозапуск') print(f' {BRED}3.{RESET} Задержка до записи OBS ({YELLOW}{str(getConfig("obs_delay"))} сек.{RESET})')
print(f' {BBLACK}Через сколько секунд будет отправлен сигнал записи экрана\n')
print(f' {BRED}4.{RESET} Добавить в автозапуск')
print(f' {BBLACK}{winOnly(BRED, BBLACK, sysname, end=" ")}Автоматически запускать демона при входе в систему\n') print(f' {BBLACK}{winOnly(BRED, BBLACK, sysname, end=" ")}Автоматически запускать демона при входе в систему\n')
print(f' {BRED}4.{RESET} Сбросить все настройки') 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}7.{RESET} Сбросить все настройки')
print(f' {BBLACK}Восстановить настройки по умолчанию\n') print(f' {BBLACK}Восстановить настройки по умолчанию\n')
print(f' {BRED}5.{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}')
@ -459,6 +475,22 @@ def settings3():
if settings_choose == '3': if settings_choose == '3':
try:
clear()
log_size_value = int(input(f'{RESET}Введите через сколько секунд отправлять сигнал записи:\n\n > {BRED}'))
setConfig("obs_delay", log_size_value)
continue
except:
clear()
print(f'{RESET}Нужно использовать целое число.')
time.sleep(2)
continue
appendLog(f'Changed option "obs_delay" to {getConfig["obs_delay"]}')
continue
if settings_choose == '4':
if sysname == "windows": if sysname == "windows":
global swl global swl
@ -468,18 +500,18 @@ def settings3():
shutil.copyfile('daemon.bat', 'startdaemon.bat') shutil.copyfile('daemon.bat', 'startdaemon.bat')
with open('startdaemon.bat', 'r') as f : with open('startdaemon.bat', 'r', encoding='utf-8') as f :
filedata = f.read() filedata = f.read()
filedata = filedata.replace('python daemon.py', f'python {path}\\daemon.py') filedata = filedata.replace('python daemon.py', f'python {path}\\daemon.py')
with open('startdaemon.bat', 'w') as f: with open('startdaemon.bat', 'w', encoding="utf-8") as f:
f.write(filedata) f.write(filedata)
f.close() f.close()
swl.create_lnk(f'{path}\\startdaemon.bat', f'{pathlib.Path.home()}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\AutoZoomDaemon.lnk') swl.create_lnk(f'{path}\\startdaemon.bat', f'{pathlib.Path.home()}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\AutoZoomDaemon.lnk')
appendLog('Autorun script added') appendLog('Autorun script added')
none = input(f'Демон AutoZoom был добавлен в автозапуск.\nПуть: {BRED}{pathlib.Path.home()}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\AutoZoomDaemon.lnk{RESET}\n\n > ') none = input(f'{RESET}Демон AutoZoom был добавлен в автозапуск.\nПуть: {BRED}{pathlib.Path.home()}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\AutoZoomDaemon.lnk{RESET}\n\n > ')
continue continue
except Exception as exp: except Exception as exp:
@ -493,7 +525,16 @@ def settings3():
else: else:
continue continue
elif settings_choose == '4': 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') appendLog('Resetting configuration')
while True: while True:
@ -527,7 +568,7 @@ def settings3():
clear() clear()
continue continue
elif settings_choose == '5': elif settings_choose == '8':
appendLog('Returned to settings page 2') appendLog('Returned to settings page 2')
clear() clear()
return return