15 Commits
v1.4 ... v2.0

Author SHA1 Message Date
2183db0515 Обновление 2.0 2021-04-24 03:08:43 +03:00
Profitroll
310faaf79b Мелкие изменения
Добавлен центр поддержки.
2021-04-23 02:39:12 +03:00
5206b3e2fa Обновление 1.8 2021-04-07 23:57:02 +03:00
7598e594da Фикс номера версии 2021-04-06 01:53:48 +03:00
747e666cf1 Обновление 1.7
Фиксы багов связанных с RPC и файлами.
2021-04-06 01:32:55 +03:00
c8e3f64762 Фикс версии 2021-01-22 15:03:17 +02:00
84d47b131c Обновление 1.6
• Исправлены баги с подгрузкой конфига;
• Добавлена возможность выбора пути через Настройки;
• В демоне больше не нужно выбирать OBS если ранее было выбрано "Нет".
2021-01-22 14:53:33 +02:00
eb33215856 Обновлён до 1.5 2021-01-21 14:01:44 +02:00
243e06ee0b Обновление 1.5
• Добавлен Discord RPC;
• Вывод может быть цаетным (опционально);
• Звуковые эффекты теперь можно выключить;
• Пункты меню "Помощь" и "Настройки" сильно изменены.
2021-01-21 14:00:58 +02:00
2b50827e58 Последний фикс README на сегодня :) 2021-01-16 00:22:22 +02:00
79901de58c Ещё один фикс README 2021-01-16 00:21:26 +02:00
5354e0e487 Update README.md 2021-01-16 00:19:23 +02:00
f0b5985aaa Фикс заголовков 2021-01-16 00:13:28 +02:00
bd722212b5 Мелкий фикс MD 2021-01-16 00:10:19 +02:00
3f679531f7 TXT файл был заменён на MD 2021-01-16 00:09:14 +02:00
14 changed files with 1951 additions and 496 deletions

View File

@@ -1,20 +1,19 @@
Добро пожаловать в AutoZoom! ## Добро пожаловать в AutoZoom!
В этом файле описаны все шаги которые нужно выполнить для работы с программой. В этом файле описаны все шаги которые нужно выполнить для работы с программой.
Содержание ### Содержание
1. Описание и информация 1. [Описание и информация](https://github.com/profitrollgame/autozoom#1-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B)
2. Инструкция по установке 2. [Инструкция по установке](https://github.com/profitrollgame/autozoom#21-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B5)
3. Инструкция по использованию 3. [Инструкция по использованию](https://github.com/profitrollgame/autozoom#3-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E)
4. Благодарности и помощь 4. [Благодарности и помощь](https://github.com/profitrollgame/autozoom#4-%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0)
GitHub вики проекта: https://github.com/profitrollgame/autozoom/wiki ### Полезные ссылки
Обратная связь и предложения: https://t.me/profitroll * [GitHub вики проекта](https://github.com/profitrollgame/autozoom/wiki)
Сообщить об ошибке/баге: https://github.com/profitrollgame/autozoom/issues * [Обратная связь и предложения](https://t.me/profitroll)
* [Сообщить об ошибке/баге](https://github.com/profitrollgame/autozoom/issues)
-----------------------= №1 =----------------------- ### 1. Информация и описание программы
--------- Информация и описание программы ----------
----------------------------------------------------
AutoZoom создан для автоматизации присоединения к AutoZoom создан для автоматизации присоединения к
всевозможным Zoom конференциями. С помощью этой утилиты всевозможным Zoom конференциями. С помощью этой утилиты
@@ -30,30 +29,23 @@ AutoZoom создан для автоматизации присоединени
для удобства, интереса ради или даже в шутку. для удобства, интереса ради или даже в шутку.
----------------------= №2.1 =---------------------- ### 2.1. Инструкция по установке
------------- Инструкция по установке --------------
----------------------------------------------------
1. Переложите папку 1. Пришло время найти место для нашей программы. Скопируйте папку из этого
Пришло время найти место для нашей программы. Скопируйте папку из этого
архива в любое удобное место на компьютере (если ещё этого не сделали). архива в любое удобное место на компьютере (если ещё этого не сделали).
2. Установите Python3 2. Попробуйте запустить ваш `start.bat` в папке `AutoZoom`. Возможно, он сам отправит вас на страницу загрузки Python.
Попробуйте запустить ваш 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).
3. Откройте редактор 3. Дважды нажмите на `start.bat` и выберите пункт "Редактор" чтобы редактировать ваши уроки на любой
Дважды нажмите на start.bat и выберите пункт "Редактор" чтобы редактировать ваши уроки на любой
удобный день. Введите все нужные данные. Название конференции, дату, время, ссылку на приглашение. удобный день. Введите все нужные данные. Название конференции, дату, время, ссылку на приглашение.
4. Настройте вход в Zoom 4. Теперь самая важная часть. Установите Zoom (https://zoom.us/download) на свой ПК.
Теперь самая важная часть. Установите Zoom (https://zoom.us/download) на свой ПК.
Запустите его и зарегистрируйтесь/войдите в аккаунт. При входе ОБЯЗАТЕЛЬНО Запустите его и зарегистрируйтесь/войдите в аккаунт. При входе ОБЯЗАТЕЛЬНО
нужно нажать на галочку о сохранении аккаунта "Не выполнять выход". нужно нажать на галочку о сохранении аккаунта "Не выполнять выход".
5. Настройки клиента Zoom 5. Нажмите на шестерёнку под вашим аватаром (правый верхний угол) и зайдите
Нажмите на шестерёнку под вашим аватаром (правый верхний угол) и зайдите
в пункт "Видеоизображение". В этом пункте найдите галочку "Выключать мое видео в пункт "Видеоизображение". В этом пункте найдите галочку "Выключать мое видео
при входе в конференцию" и активируйте её. Затем уберите галочку с "Всегда показывать диалоговое при входе в конференцию" и активируйте её. Затем уберите галочку с "Всегда показывать диалоговое
окно предварительного просмотра видео при подключении к видеоконференции". Замечательно, окно предварительного просмотра видео при подключении к видеоконференции". Замечательно,
@@ -61,27 +53,24 @@ Microsoft Store (https://www.microsoft.com/ru-ru/p/python-37/9nj46sx7x90p?active
подключать звук с компьютера" и "Отключить звук моего микрофона при подключении к конференции". Также подключать звук с компьютера" и "Отключить звук моего микрофона при подключении к конференции". Также
можно убрать галочку с "Нажмите и удерживайте клавишу пробел, чтобы временно включить свой звук", если нужно. можно убрать галочку с "Нажмите и удерживайте клавишу пробел, чтобы временно включить свой звук", если нужно.
Почти закончили. Теперь перейдите в пункт "Сочетания клавиш" и выключите всё вам не нужное дабы случайно Почти закончили. Теперь перейдите в пункт "Сочетания клавиш" и выключите всё вам не нужное дабы случайно
не помешать процессу автоматизации. Некоторые сочетания нужно удалить. Например, Alt+A лучше удалить нажав не помешать процессу автоматизации. Некоторые сочетания нужно удалить. Например, `Alt+A` лучше удалить нажав
сначала на неё, а потом на Backspace. Желательно убрать все ненужные сочетания сразу. сначала на неё, а потом на Backspace. Желательно убрать все ненужные сочетания сразу.
6. Готово 6. Вроде как всё настроено, пришло время открыть в папке приложения файл `start.bat` двойным нажатием и всё готово.
Вроде как всё настроено, пришло время открыть в папке приложения файл start.bat двойным нажатием и всё готово.
После вопроса про OBS можно перейти к опциональным шагам ниже для записи конференций или же просто нажать После вопроса про OBS можно перейти к опциональным шагам ниже для записи конференций или же просто нажать
"Н" на клавиатуре и перейти сразу к делу. "Н" на клавиатуре и перейти сразу к делу.
----------------------= №2.2 =---------------------- ### 2.2. Запись конференций
(Опционально) Запись конференций С [официального сайта](https://obsproject.com/download) скачайте и установите OBS Studio для записи всех конференций.
С официального сайта (https://obsproject.com/download) скачайте и установите OBS Studio для записи всех конференций.
После стандартного процесса установки откройте только что установленный OBS. В вопросах мастера настойки укажите, После стандартного процесса установки откройте только что установленный OBS. В вопросах мастера настойки укажите,
что вас интересует запись. Разрешение укажите нужное вам. что вас интересует запись. Разрешение укажите нужное вам.
Пройдя всё банальное и объяснённое в установщике отправляемся в настройки. Сразу же находим пункт "Вывод" в боковой Пройдя всё банальное и объяснённое в установщике отправляемся в настройки. Сразу же находим пункт "Вывод" в боковой
панели и меняем формат записи на mp4, если нужно будет потом редактировать видео. Если же нет не трогаем. панели и меняем формат записи на `mp4`, если нужно будет потом редактировать видео. Если же нет не трогаем.
Потом двигаемся к пункту "Горячие клавиши" и находим "Начать запись" и "Остановить запись". Тыкаем на поле мышкой, а Потом двигаемся к пункту "Горячие клавиши" и находим "Начать запись" и "Остановить запись". Тыкаем на поле мышкой, а
затем прожимаем необходимую комбинацию клавиш. Рекомендую устанавливать на старт "Shift+F7", а на остановку "Shift+F8", затем прожимаем необходимую комбинацию клавиш. Рекомендую устанавливать на старт `Shift+F7`, а на остановку `Shift+F8`,
однако можете поставить всё что вам удобно. однако можете поставить всё что вам удобно.
Чтобы наша запись работала правильно необходимо открыть в боковой панели "Общие" и в подразделе "Системный трей" поставить Чтобы наша запись работала правильно необходимо открыть в боковой панели "Общие" и в подразделе "Системный трей" поставить
@@ -99,61 +88,57 @@ Microsoft Store (https://www.microsoft.com/ru-ru/p/python-37/9nj46sx7x90p?active
Если нужно ещё и записать ваш голос с микрофона снова жмём + добавляя устройство ВХОДНОГО аудиопотока, Если нужно ещё и записать ваш голос с микрофона снова жмём + добавляя устройство ВХОДНОГО аудиопотока,
выбираем нужный микрофон и дальше снова "ОК". Замечательно, в OBS всё настроено. Двигаем в AutoZoom. выбираем нужный микрофон и дальше снова "ОК". Замечательно, в OBS всё настроено. Двигаем в AutoZoom.
В случае если вы ставили свои комбинации клавиш (вместо рекомендуемых), то сейчас нужно открыть run.bat в папке В случае если вы ставили свои комбинации клавиш (вместо рекомендуемых), то сейчас нужно открыть `start.bat` в папке
AutoZoom и выбрать пункт "Настройки". Затем выберите пункт "Начать запись" и введите желаемую комбинацию AutoZoom и выбрать пункт "Настройки". Затем выберите пункт "Начать запись" и введите желаемую комбинацию
клавиш (например, Shift+F7), нажмите Enter. Теперь выберите пункт "Остановить запись" и снова введите комбинацию клавиш. клавиш (например, `Shift+F7`), нажмите `Enter`. Теперь выберите пункт "Остановить запись" и снова введите комбинацию клавиш.
Желательно, чтобы комбинации были разными, дабы точно избежать сбоев, однако это не по принципиально. Чудесно, жмакаем Желательно, чтобы комбинации были разными, дабы точно избежать сбоев, однако это не по принципиально. Чудесно, жмакаем
последний пункт здесь и в меню редактора. Движемся дальше к run.bat. последний пункт здесь и в меню редактора. Движемся дальше к run.bat.
Открывая AutoZoom можно обнаружить, что он спрашивает хотим ли мы использовать OBS. Пишем Y или Д и жмём Enter. Открывая AutoZoom можно обнаружить, что он спрашивает хотим ли мы использовать OBS. Пишем `Y` или `Д` и жмём `Enter`.
В появившемся окне выбираем .exe файл нашего OBS. Обычно он лежит в "C:/Program Files/obs-studio/bin/64bit/obs64.exe", В появившемся окне выбираем .exe файл нашего OBS. Обычно он лежит в `C:/Program Files/obs-studio/bin/64bit/obs64.exe`,
но у вас может быть вместо 64bit папка 32bit, а файл obs32.exe. В случае с выбранным вами другим путём при но у вас может быть вместо `64bit` папка `32bit`, а файл `obs32.exe`. В случае с выбранным вами другим путём при
установке ищите файл там, куда кинули. установке ищите файл там, куда кинули.
После выбора `.exe` файла вам должно в консоль AutoZoom написать пути ядра и приложения OBS.
Они также будут храниться в файлах AutoZoom, если вдруг понадобится их изменить.
----------------------= №2.3 =----------------------
(Опционально) Telegram бот
### 2.3. Telegram бот
Если же вам нужно получать уведомления от бота через Telegram - такая опция тоже есть. Если же вам нужно получать уведомления от бота через Telegram - такая опция тоже есть.
Для этого нужно создать бота через BotFather (@BotFather) командой /newbot. Для этого нужно создать бота через BotFather ([@BotFather](https://t.me/botfather)) командой `/newbot`.
Затем вводим имя нашему боту, по сути любое которое нужно. Затем id бота чтобы оно заканчивалось на "bot" или "_bot". Затем вводим имя нашему боту, по сути любое которое нужно. Затем id бота чтобы оно заканчивалось на `bot` или `_bot`.
После этого мы получаем HTTP API (токен бота) который вводим во время запуска AutoZoom или же перейдя в пункт После этого мы получаем HTTP API (токен бота) который вводим во время запуска AutoZoom или же перейдя в пункт
настроек. После ввода туда токена нужно написать нашему только что созданному боту через его имя (то, что на "bot" кончается) настроек. После ввода туда токена нужно написать нашему только что созданному боту через его имя (то, что на "bot" кончается)
номер который выдаст AutoZoom. номер который выдаст AutoZoom.
По желанию можно введя команду /setuserpic и выбрав вашего бота ещё и сменить его аватар. По желанию можно введя команду `/setuserpic` и выбрав вашего бота ещё и сменить его аватар.
Теперь каждый раз когда AutoZoom будет начинать работу или заходить/покидать конференцию вы сразу же получите Теперь каждый раз когда AutoZoom будет начинать работу или заходить/покидать конференцию вы сразу же получите
сообщение в вашу личку Telegram. сообщение в вашу личку Telegram.
-----------------------= №3 =----------------------- ### 3. Инструкция по использованию
------------ Инструкция по использованию -----------
----------------------------------------------------
У нас есть рабочая и настроенная программа, но как же этим чудом теперь пользоваться? Всё очень просто. У нас есть рабочая и настроенная программа, но как же этим чудом теперь пользоваться? Всё очень просто.
Для начала открываем наш start.bat и тыкаем в пункт "Редактор". Там жмём "Добавить урок" и следуем шагам в приложении. Для начала открываем наш `start.bat` и тыкаем в пункт "Редактор". Там жмём "Добавить урок" и следуем шагам в приложении.
Чтобы удалить конференцию в меню редактора можно нажать "Удалить урок" и выбрать индекс (число слева посередине каждого урока). Чтобы удалить конференцию в меню редактора можно нажать "Удалить урок" и выбрать индекс (число слева посередине каждого урока).
Также, если вдруг что-то перенеслось, можно изменить конференции. нажав в редакторе "Изменить урок". Также, если вдруг что-то перенеслось, можно изменить конференции. нажав в редакторе "Изменить урок".
Если нужно записать программу в автозапуск - сделать это легко. Если нужно записать программу в автозапуск - сделать это легко.
Для этого создайте ярлык для daemon.bat или start.bat, вырежьте его и вставьте по пути автозапуска Для этого создайте ярлык для `daemon.bat` или `start.bat`, вырежьте его и вставьте по пути автозапуска
(обычно это "C:\Users\ПОЛЬЗОВАТЕЛЬ\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"). (обычно это `C:\Users\ПОЛЬЗОВАТЕЛЬ\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`).
Готово! Теперь при запуске компьютера через некоторое время после входа в пользователя у вас запустится AutoZoom сам. Это Готово! Теперь при запуске компьютера через некоторое время после входа в пользователя у вас запустится AutoZoom сам. Это
может быть полезно если хочется полностью автоматизировать присоединение к конференциям. может быть полезно если хочется полностью автоматизировать присоединение к конференциям.
Также если что-то пошло не так - можно в меню настроек сбросить все параметры до "По умолчанию". Также если что-то пошло не так - можно в меню настроек сбросить все параметры до "По умолчанию".
-----------------------= №4 =----------------------- ### 4. Заключительные слова
--------------- Заключительные слова ---------------
----------------------------------------------------
На этом полная установка подходит к концу. На этом полная установка подходит к концу.
Если же вы нашли ошибки не стесняйтесь писать в Telegram мне прямо в личку (https://t.me/profitroll). Если же вы нашли ошибки оставляйте свои репорты на [GitHub](https://github.com/profitrollgame/autozoom/issues) или пишите мне в [Telegram](https://t.me/profitroll).
Приятного использования! Приятного использования!
P.S.: Отдельное спасибо Kusyaka за помощь в создании сего творения. P.S.: Отдельное спасибо Kusyaka за помощь в создании сего творения.
Без тебя, если честно, у меня бы ничего не вышло, дружище <3 Без тебя, если честно, у меня бы ничего не вышло, дружище <3

24
colors.py Normal file
View File

@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
RESET = '\u001b[0m'
BLACK = '\u001b[30m'
RED = '\u001b[31m'
GREEN = '\u001b[32m'
YELLOW = '\u001b[33m'
BLUE = '\u001b[34m'
MAGENTA = '\u001b[35m'
CYAN = '\u001b[36m'
WHITE = '\u001b[37m'
BBLACK = '\u001b[30;1m'
BRED = '\u001b[31;1m'
BGREEN = '\u001b[32;1m'
BYELLOW = '\u001b[33;1m'
BBLUE = '\u001b[34;1m'
BMAGENTA = '\u001b[35;1m'
BCYAN = '\u001b[36;1m'
BWHITE = '\u001b[37;1m'
ULINE = '\u001b[4m'
REVERSE = '\u001b[7m'

1454
daemon.py

File diff suppressed because it is too large Load Diff

4
daemon.sh Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
echo "Running AutoZoom daemon with Python 3. Please read README.md!"
python3 daemon.py

View File

@@ -1,8 +0,0 @@
{
"debug": false,
"shutdown_timeout": 30,
"shutdown_enabled": true,
"start": "shift+f7",
"stop": "shift+f8",
"telegram_enabled": false
}

179
functions.py Normal file
View File

@@ -0,0 +1,179 @@
# -*- coding: utf-8 -*-
import pip
import time
import json
import os
import shutil
import gzip
from datetime import datetime
from pathlib import Path
path = Path(__file__).resolve().parent
sounds_folder = str(Path(str(path)+"/sounds/")) + os.sep
files_folder = str(Path(str(path)+"/files/")) + os.sep
logs_folder = str(Path(str(path)+"/logs/")) + os.sep
default_config = {
"debug": False,
"shutdown_timeout": 30,
"shutdown_enabled": True,
"start": "shift+f7",
"stop": "shift+f8",
"telegram_enabled": False,
"use_colors": True,
"run_fullscreen": False,
"use_rpc": True,
"sounds": True,
"end_mode": "shutdown",
"obs_exe": None,
"obs_core": None,
"update_check": True,
"write_logs": True,
"log_size": 512
}
# Функция проверки размера файла
def checkSize():
global logs_folder
i = 0
while i < 2:
try:
log = os.stat(logs_folder + 'latest.log')
if (log.st_size / 1024) > getConfig("log_size"):
with open(logs_folder + 'latest.log', 'rb') as f_in:
with gzip.open(f'{logs_folder}{datetime.now().strftime("%d.%m.%Y_%H:%M:%S")}.zip', 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
if getConfig("debug"):
print(f'Copied {logs_folder}{datetime.now().strftime("%d.%m.%Y_%H:%M:%S")}.zip')
open(logs_folder + 'latest.log', 'w').close()
i = 2
except FileNotFoundError:
if getConfig("debug"):
print('Log file not found')
time.sleep(2)
try:
log = open(logs_folder + 'latest.log', 'a')
open(logs_folder + 'latest.log', 'a').close()
except:
try:
os.mkdir(logs_folder)
log = open(logs_folder + 'latest.log', 'a')
open(logs_folder + 'latest.log', 'a').close()
except:
if getConfig("debug"):
time.sleep(2)
print('Log file could not be created')
i += 1
# Функция добавления в лог
def appendLog(message):
if getConfig("write_logs"):
global logs_folder
checkSize()
try:
log = open(logs_folder + 'latest.log', 'a')
open(logs_folder + 'latest.log', 'a').close()
except:
try:
os.mkdir(logs_folder)
log = open(logs_folder + 'latest.log', 'a')
open(logs_folder + 'latest.log', 'a').close()
except:
time.sleep(2)
print('Log file could not be created')
log.write(f'[{datetime.now().strftime("%H:%M:%S | %d.%m.%Y")}] {message}\n')
log.close()
# Функция добавления переменных, если их нет
def repairConfig(some_dic):
global files_folder
global default_config
for key in some_dic:
try:
some_dic[key]
except NameError:
some_dic[key] = default_config[key]
saveJson(files_folder+'config.json', some_dic)
def getConfig(some_var):
global files_folder
global default_config
if os.path.exists(files_folder):
if not os.path.exists(files_folder+'config.json'):
temp_config_list = default_config
saveJson(files_folder+'config.json', temp_config_list)
return temp_config_list[some_var]
else:
try:
with open(f"{files_folder}config.json", encoding="utf-8") as json_file:
config_list = json.load(json_file)
json_file.close()
try:
return config_list[some_var]
except:
try:
repairConfig(config_list)
config_list = json.load(json_file)
json_file.close()
return config_list[some_var]
except:
return default_config[some_var]
except:
return "Error"
else:
os.mkdir(files_folder)
if not os.path.exists(files_folder+'config.json'):
temp_config_list = default_config
saveJson(files_folder+'config.json', temp_config_list)
return temp_config_list[some_var]
else:
try:
with open(f"{files_folder}config.json", encoding="utf-8") as json_file:
config_list = json.load(json_file)
json_file.close()
try:
return config_list[some_var]
except:
try:
repairConfig(config_list)
config_list = json.load(json_file)
json_file.close()
return config_list[some_var]
except:
return default_config[some_var]
except:
return "Error"
def saveJson(filename, value):
with open(filename, 'w', encoding="utf-8") as f:
json.dump(value, f, indent=4, ensure_ascii=False)
f.close()

143
libinstaller.py Normal file
View File

@@ -0,0 +1,143 @@
# -*- coding: utf-8 -*-
import os, sys
from colors import *
from functions import getConfig
from functions import appendLog
# Работает не очень стабильно при отсутствии интернета
# try:
# if getConfig("debug"):
# updatepip = os.system('"{}" -m pip install -U '.format(sys.executable) + '--upgrade pip')
# print(f"{RESET}[{BGREEN}OK{RESET}] Обновлён {YELLOW}PIP{RESET}.")
# else:
# updatepip = os.system('"{}" -m pip install -U '.format(sys.executable) + '--upgrade pip' + " -q --no-warn-script-location")
# print(f"{RESET}[{BGREEN}OK{RESET}] Обновлён {YELLOW}PIP{RESET}.")
# except:
# updatepip = os.system('"{}" -m pip install -U '.format(sys.executable) + '--upgrade pip' + " -q --no-warn-script-location")
# if updatepip != 0:
# sys.exit(f"{RESET}[{BRED}ERR{RESET}] Обновление {YELLOW}PIP {RESET}провалилось.")
#########################################################
libs = []
###################################
try:
import easygui
except ModuleNotFoundError:
appendLog("No module easygui")
libs.append("easygui")
###################################
try:
import tkinter
except ModuleNotFoundError:
appendLog("No module tkinter")
libs.append("tkinter")
###################################
try:
import keyboard
except ModuleNotFoundError:
appendLog("No module keyboard")
libs.append("keyboard")
###################################
try:
import ast
except ModuleNotFoundError:
appendLog("No module ast")
libs.append("ast")
###################################
try:
import inputimeout
except ModuleNotFoundError:
appendLog("No module inputimeout")
libs.append("inputimeout")
###################################
try:
import telegram_send
except ModuleNotFoundError:
appendLog("No module telegram_send")
libs.append("telegram_send")
###################################
try:
import wget
except ModuleNotFoundError:
appendLog("No module wget")
libs.append("wget")
###################################
try:
import requests
except ModuleNotFoundError:
appendLog("No module requests")
libs.append("requests")
###################################
try:
import playsound
except ModuleNotFoundError:
appendLog("No module playsound")
libs.append("playsound")
###################################
try:
from zipfile import ZipFile
except ModuleNotFoundError:
appendLog("No module zipfile")
libs.append("zipfile")
###################################
try:
import asyncio
except ModuleNotFoundError:
appendLog("No module asyncio")
libs.append("asyncio")
###################################
try:
import getpass
except ModuleNotFoundError:
appendLog("No module getpass")
libs.append("getpass")
###################################
try:
from pypresence import Presence
except ModuleNotFoundError:
appendLog("No module pypresence")
libs.append("pypresence")
###################################
if len(libs) > 0:
print("Не хватает нужных модулей, пробуем установить...\nЭто может занять некоторое время. Пожалуйста, не закрывайте программу.")
appendLog('Missing some modules, trying to install them')
for each in libs:
try:
if getConfig("debug"):
response = os.system('"{}" -m pip install -U '.format(sys.executable) + each)
else:
response = os.system('"{}" -m pip install -U '.format(sys.executable) + each + " -q --no-warn-script-location")
except:
response = os.system('"{}" -m pip install -U '.format(sys.executable) + each + " -q --no-warn-script-location")
print(f"{RESET}[{BGREEN}OK{RESET}] Установлен модуль {YELLOW}{each}{RESET}.")
appendLog(f'Module {each} installed')
if response != 0:
appendLog(f'Failed to install {each}')
sys.exit(f"{RESET}[{BRED}ERR{RESET}] Установка {YELLOW}{each} {RESET}провалилась.")
appendLog('Everything seems to be installed')
print(f"{RESET}[{BGREEN}OK{RESET}] Все модули были успешно установлены.")
try:
import easygui
import tkinter
import keyboard
import ast
import inputimeout
import telegram_send
import wget
import requests
import playsound
import asyncio
import getpass
from zipfile import ZipFile
from pypresence import Presence
except ModuleNotFoundError:
sys.exit(f"\n#############################################################################\n{BGREEN} Пожалуйста, перезапустите программу для продолжения!{RESET}\n Если это сообщение видно не впервые - напишите {BRED}@profitroll {RESET}в {CYAN}Telegram {RESET}или\n включите {BRED}debug {RESET}в {BRED}files/config.json {RESET}и решите проблему самостоятельно.\n#############################################################################")
#########################################################

289
main.py
View File

@@ -1,55 +1,121 @@
# -*- coding: utf-8 -*-
import sys import sys
import pip
import webbrowser import webbrowser
import os import os
import time
import platform import platform
import subprocess import subprocess
from daemon import install
from pathlib import Path from pathlib import Path
install('wget') from functions import *
install('zipfile')
install('requests') os.system("title")
from daemon import main, editor, settings, clear
import rpc
if getConfig("use_colors"):
from colors import *
else:
RESET = ''
BLACK = RED = GREEN = YELLOW = BLUE = MAGENTA = CYAN = WHITE = ''
BBLACK = BRED = BGREEN = BYELLOW = BBLUE = BMAGENTA = BCYAN = BWHITE = ''
ULINE = REVERSE = ''
import libinstaller
import wget import wget
import requests import requests
import keyboard
import getpass
from zipfile import ZipFile from zipfile import ZipFile
from daemon import main, editor, settings, clear
version = 1.4 version = 2.0
path = Path(__file__).resolve().parent path = Path(__file__).resolve().parent
def mainMenu(): def mainMenu():
try: try:
os.system("title AutoZoom (Главная)")
global version global version
global path global path
while True: appendLog('Main menu opened')
serv_ver = requests.get("https://www.end-play.xyz/AutoZoomVersion.txt").text rpc.inMenu()
if float(serv_ver) > float(version):
show_version = ' (!)'
else:
show_version = ''
#clear() while True:
menu_choose = input(f'» Главное меню\n\n1. Запуск\n2. Редактор\n3. Настройки\n4. Обновление{show_version}\n5. Помощь и связь\n6. Закрыть приложение\n\n > ') if getConfig("update_check"):
print(f'{RESET}Загрузка данных о последней версии...')
try:
os.system("title Загрузка данных...")
serv_ver = requests.get("https://www.end-play.xyz/AutoZoomVersion.txt").text
os.system("title AutoZoom (Главная)")
clear()
except Exception as exp:
appendLog(f'Version number load failed {exp}')
os.system("title Ошибка загрузки данных")
print(f'Не удалось загрузить данные о последней версии.\nПроверьте подключение к сети и повторите попытку.\n\nСтатус сервера центра обновлений:\n{BRED}https://status.end-play.xyz/786373747{RESET}')
none = input('\n > ')
rpc.disconnect()
sys.exit()
if float(serv_ver) > float(version):
show_version = f' ({BRED}!{RESET})'
else:
show_version = ''
else:
os.system("title AutoZoom (Главная)")
show_version = ''
serv_ver = 'disabled'
appendLog('Skipping update check')
print(f'{BBLACK}»{RESET} Главное меню\n')
print(f' {BRED}1.{RESET} Запуск')
print(f' {BRED}2.{RESET} Редактор')
print(f' {BRED}3.{RESET} Настройки')
print(f' {BRED}4.{RESET} Обновление{show_version}')
print(f' {BRED}5.{RESET} Помощь и связь')
print(f' {BRED}6.{RESET} Закрыть приложение')
menu_choose = input(f'\n > {BRED}')
print(RESET)
if menu_choose == '1': if menu_choose == '1':
appendLog('Went to daemon')
main('menu') main('menu')
elif menu_choose == '2': elif menu_choose == '2':
appendLog('Went to editor')
rpc.inEditor()
editor() editor()
elif menu_choose == '3': elif menu_choose == '3':
appendLog('Went to settings')
rpc.inSettings()
settings() settings()
elif menu_choose == '4': elif menu_choose == '4':
appendLog('Went to updater')
rpc.inUpdater()
updater(serv_ver, version) updater(serv_ver, version)
elif menu_choose == '5': elif menu_choose == '5':
appendLog('Went to help')
rpc.inHelp()
helpMenu() helpMenu()
elif menu_choose == '6': elif menu_choose == '6':
appendLog('Exited AutoZoom')
rpc.disconnect()
clear() clear()
sys.exit() sys.exit()
else: else:
clear() clear()
continue continue
except: except KeyboardInterrupt:
rpc.disconnect()
clear() clear()
print(f'Закрываем приложение {BGREEN}AutoZoom{RESET}...')
sys.exit()
def os_arch(): def os_arch():
is_64bits = sys.maxsize > 2**32 is_64bits = sys.maxsize > 2**32
@@ -62,71 +128,123 @@ def os_arch():
def helpMenu(): def helpMenu():
try: try:
while True: while True:
os.system("title AutoZoom (Помощь)")
appendLog('Help menu opened')
clear() clear()
global version global version
global path global path
help_choose = input(f'» Меню помощи\n\n1. Документация\n2. Telegram проекта\n3. Связаться с автором\n4. Сводка информации\n5. В главное меню\n\n > ')
print(f'{BBLACK}»{RESET} Меню помощи\n')
print(f' {BRED}1.{RESET} Документация')
print(f' {BRED}2.{RESET} Сайт проекта')
print(f' {BRED}3.{RESET} Центр поддержки')
print(f' {BRED}4.{RESET} Telegram проекта')
print(f' {BRED}5.{RESET} Связаться с автором')
print(f' {BRED}6.{RESET} Сводка информации')
print(f' {BRED}7.{RESET} В главное меню')
help_choose = input(f'\n > {BRED}')
if help_choose == '1': if help_choose == '1':
try: try:
clear() clear()
appendLog('Opened AutoZoom wiki')
webbrowser.open("https://github.com/profitrollgame/autozoom/wiki") webbrowser.open("https://github.com/profitrollgame/autozoom/wiki")
except: except Exception as exp:
clear() clear()
none = input('Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: https://github.com/profitrollgame/autozoom/wiki\n\n > ') appendLog(f'Failed to open AutoZoom wiki: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://github.com/profitrollgame/autozoom/wiki{RESET}\n\n > ')
clear() clear()
elif help_choose == '2': elif help_choose == '2':
try: try:
clear() clear()
webbrowser.open("https://t.me/auto_zoom") appendLog('Opened AutoZoom website')
except: webbrowser.open("https://www.end-play.xyz/autozoom")
except Exception as exp:
clear() clear()
none = input('Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: https://t.me/auto_zoom\n\n > ') appendLog(f'Failed to open AutoZoom website: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://www.end-play.xyz/autozoom{RESET}\n\n > ')
clear() clear()
elif help_choose == '3': elif help_choose == '3':
try: try:
clear() clear()
webbrowser.open("https://t.me/profitroll") appendLog('Opened AutoZoom support center')
except: webbrowser.open("https://www.tidio.com/talk/ydqcvfvgkud3jjk2482uaesvjpeohlh3")
except Exception as exp:
clear() clear()
none = input('Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: https://t.me/profitroll\n\n > ') appendLog(f'Failed to open AutoZoom support center: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://www.tidio.com/talk/ydqcvfvgkud3jjk2482uaesvjpeohlh3{RESET}\n\n > ')
clear() clear()
if help_choose == '4': elif help_choose == '4':
clear() try:
print('» Информация о системе\n') clear()
print('Система:') appendLog('Opened AutoZoom Telegram group')
print(f'ОС: {platform.system()}') webbrowser.open("https://t.me/auto_zoom")
print(f'• Релиз: {platform.release()}') except Exception as exp:
print(f'• Разрядность: {os_arch()}') clear()
print('\nPython:') appendLog(f'Failed to open AutoZoom Telegram group: {exp}')
print(f'• Версия: {platform.python_version()}') none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://t.me/auto_zoom{RESET}\n\n > ')
print(f'• Вариант: {platform.python_implementation()}')
print(f'• Ревизия: {platform.python_revision()}')
print(f'• Расположение: {sys.path[4]}')
print('\nAutoZoom:')
print(f'• Версия: {version}')
print(f'• Расположение: {path}')
none = input('\n > ')
clear() clear()
elif help_choose == '5': elif help_choose == '5':
try:
clear()
appendLog('Opened AutoZoom\'s developer Telegram')
webbrowser.open("https://t.me/profitroll")
except Exception as exp:
clear()
appendLog(f'Failed to open AutoZoom\'s developer Telegram: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://t.me/profitroll{RESET}\n\n > ')
clear() clear()
if help_choose == '6':
clear()
appendLog(f'Showing system information:\n=============================================\nHelpful data for fault search:\n\nOS: {platform.system()}\nRelease: {platform.release()}\nArch: {os_arch()}\nPy Ver: {platform.python_version()}\nPIP Ver: {pip.__version__}\nImpl: {platform.python_implementation()}\nRev: {platform.python_revision()}\nPy Path: {sys.path[4]}\nAZ Ver: {version}\nAZ User: {getpass.getuser()}\nAZ Path: {path}\n=============================================')
print(f'{BBLACK}»{RESET} Информация о системе\n')
print(' Система:')
print(f' {BBLACK}{RESET} ОС: {YELLOW}{platform.system()}{RESET}')
print(f' {BBLACK}{RESET} Релиз: {YELLOW}{platform.release()}{RESET}')
print(f' {BBLACK}{RESET} Разрядность: {YELLOW}{os_arch()}{RESET}')
print('\n Python:')
print(f' {BBLACK}{RESET} Версия: {YELLOW}{platform.python_version()}{RESET}')
print(f' {BBLACK}{RESET} Версия PIP: {YELLOW}{pip.__version__}{RESET}')
print(f' {BBLACK}{RESET} Вариант: {YELLOW}{platform.python_implementation()}{RESET}')
print(f' {BBLACK}{RESET} Ревизия: {YELLOW}{platform.python_revision()}{RESET}')
print(f' {BBLACK}{RESET} Расположение: {BRED}{sys.path[4]}{RESET}')
print('\n AutoZoom:')
print(f' {BBLACK}{RESET} Версия: {YELLOW}{version}{RESET}')
print(f' {BBLACK}{RESET} Пользователь: {YELLOW}{getpass.getuser()}{RESET}')
print(f' {BBLACK}{RESET} Расположение: {BRED}{path}{RESET}')
none = input('\n > ')
clear()
elif help_choose == '7':
rpc.inMenu()
clear()
os.system("title AutoZoom (Главная)")
return return
else: else:
clear() clear()
continue continue
except KeyboardInterrupt: except KeyboardInterrupt:
rpc.inMenu()
clear() clear()
return return
def updater(serv_ver, version): def updater(serv_ver, version):
try: try:
while True: while True:
os.system("title AutoZoom (Обновления)")
appendLog('Updater menu opened')
clear() clear()
if float(serv_ver) > float(version): if float(serv_ver) > float(version):
show_version = ' (!)' show_version = f' ({BRED}!{RESET})'
serv_ver = serv_ver.rstrip('\n') serv_ver = serv_ver.rstrip('\n')
show_action = f'Обновить до {serv_ver}' show_action = f'Обновить до {BGREEN}{serv_ver}{RESET}'
changelog_text = f'Изменения в версии {serv_ver}:' changelog_text = f'Изменения в версии {BGREEN}{serv_ver}{RESET}:'
changelog_footer = '\nОбновитесь чтобы вышеуказанное работало.' changelog_footer = '\nОбновитесь чтобы вышеуказанное работало.'
elif serv_ver == 'disabled':
show_version = ''
show_action = f'Переустановить'
changelog_text = f'Изменения в вашей версии:'
changelog_footer = ''
else: else:
show_version = '' show_version = ''
show_action = f'Переустановить' show_action = f'Переустановить'
@@ -134,52 +252,103 @@ def updater(serv_ver, version):
changelog_footer = '' changelog_footer = ''
updater_choose = input(f'» Меню обновлений\n\n1. {show_action}\n2. Список изменений\n3. В главное меню\n\n > ') print(f'{BBLACK}»{RESET} Меню обновлений\n')
print(f' {BRED}1.{RESET} {show_action}')
print(f' {BRED}2.{RESET} Список изменений')
print(f' {BRED}3.{RESET} В главное меню')
updater_choose = input(f'\n > {BRED}')
if updater_choose == '1': if updater_choose == '1':
appendLog('Choosed to update')
while True: while True:
clear() clear()
updater_decide = input(f'1. Установить\n2. Отменить\n\n > ') print(f'{RESET}Подтвердите действие:\n')
print(f' {BRED}1.{RESET} Установить')
print(f' {BRED}2.{RESET} Отменить')
updater_decide = input('\n > ')
if updater_decide == '1': if updater_decide == '1':
appendLog('Trying to update AutoZoom')
clear() clear()
wget.download('https://www.end-play.xyz/AutoZoomLatest.zip', out='AutoZoomLatest.zip') try:
wget.download('https://www.end-play.xyz/AutoZoomLatest.zip', out='AutoZoomLatest.zip')
appendLog('Latest zip downloaded')
except Exception as exp:
print(f'Не удалось загрузить архив с последней версией.\nПроверьте подключение к сети и повторите попытку.\n\nСтатус сервера центра обновлений:\n{BRED}https://status.end-play.xyz/786373747{RESET}')
appendLog(f'Failed to download zip: {exp}')
none = input('\n > ')
continue
with ZipFile('AutoZoomLatest.zip', 'r') as zipObj: with ZipFile('AutoZoomLatest.zip', 'r') as zipObj:
zipObj.extractall() zipObj.extractall()
print('Все файлы были успешно загружены') print('Все файлы были успешно загружены')
appendLog('Latest zip extracted')
if os.path.exists("AutoZoomLatest.zip"): if os.path.exists("AutoZoomLatest.zip"):
os.remove("AutoZoomLatest.zip") os.remove("AutoZoomLatest.zip")
appendLog('Latest used zip deleted')
clear() clear()
none = input('Обновление завершено, перезапустите AutoZoom.\n\n > ') none = input('Обновление завершено, перезапустите AutoZoom.\n\n > ')
rpc.disconnect()
clear()
print(f'Закрываем приложение {BGREEN}AutoZoom{RESET}...')
appendLog('Exiting AutoZoom after an update')
sys.exit() sys.exit()
elif updater_decide == '2': elif updater_decide == '2':
clear() clear()
appendLog('Aborted update')
break break
else: else:
continue continue
elif updater_choose == '2': elif updater_choose == '2':
changelog = requests.get("https://www.end-play.xyz/AutoZoomChangelog.txt") appendLog('Choosed to check changelog')
changelog.encoding = None try:
clear() changelog = requests.get("https://www.end-play.xyz/AutoZoomChangelog.txt")
print(f'{changelog_text}\n') changelog.encoding = None
print(changelog.text) appendLog('Changelog loaded')
print(changelog_footer) clear()
print(f'{RESET}{changelog_text}\n')
none = input('\n > ') print(changelog.text)
continue print(changelog_footer)
none = input('\n > ')
continue
except Exception as exp:
print(f'{RESET}Не удалось загрузить чейнджлог.\nПроверьте подключение к сети и повторите попытку.\n\nСтатус сервера центра обновлений:\n{BRED}https://status.end-play.xyz/786373747{RESET}')
appendLog(f'Failed to check changelog: {exp}')
none = input('\n > ')
continue
elif updater_choose == '3': elif updater_choose == '3':
rpc.inMenu()
clear() clear()
appendLog('Returning to main menu')
os.system("title AutoZoom (Главная)")
return return
else: else:
continue continue
except:
except KeyboardInterrupt:
rpc.inMenu()
clear() clear()
return return
if __name__ == '__main__': if __name__ == '__main__':
os.system("title Загрузка main...")
from functions import getConfig
from daemon import clear from daemon import clear
import time
clear() clear()
mainMenu() if getConfig("run_fullscreen"):
keyboard.press('alt, enter')
time.sleep(.25)
keyboard.release('alt, enter')
os.system("title AutoZoom (Главная)")
mainMenu()
sys.exit()

12
requirements.txt Normal file
View File

@@ -0,0 +1,12 @@
easygui
tkinter
keyboard
ast
inputimeout
telegram_send
wget
requests
playsound
asyncio
zipfile
pypresence

229
rpc.py Normal file
View File

@@ -0,0 +1,229 @@
# -*- coding: utf-8 -*-
import time
import os
import sys
from colors import *
from functions import *
version = '2.0'
import libinstaller
from pypresence import Presence
client_id = '800049969960058882'
RPC = Presence(client_id,pipe=0)
connected = False
if getConfig("use_rpc"):
try:
RPC.connect()
connected = True
except:
pass
else:
connected = False
def disconnect():
global connected
if getConfig("use_rpc"):
try:
RPC.close()
connected = False
appendLog('Discord RPC disconnected')
except:
appendLog('Discord RPC failed to disconnect')
def connect():
global connected
try:
RPC.connect()
connected = True
appendLog('Discord RPC connected')
except:
appendLog('Discord RPC failed to connect')
def reset():
if getConfig("use_rpc"):
RPC.clear()
appendLog('Discord RPC status cleared')
def waitLesson(lesson, start):
try:
if getConfig("use_rpc"):
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'Ждём начала «{lesson}»', details='Конференция не началась', start=start)
appendLog(f'Discord RPC changed to waitLesson (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 onLesson(lesson, start):
try:
if getConfig("use_rpc"):
if connected == False:
connect()
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)
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():
try:
if getConfig("use_rpc"):
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):
try:
if getConfig("use_rpc"):
if connected == False:
connect()
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():
try:
if getConfig("use_rpc"):
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 inEditor():
try:
if getConfig("use_rpc"):
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():
try:
if getConfig("use_rpc"):
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():
try:
if getConfig("use_rpc"):
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():
try:
if getConfig("use_rpc"):
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__":
try:
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)

BIN
sounds/recordstart.wav Normal file

Binary file not shown.

BIN
sounds/recordstop.wav Normal file

Binary file not shown.

View File

@@ -1 +1,3 @@
python main.py echo AutoZoom needs Python 3 to work. Please read README.md!
python main.py
pause

4
start.sh Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
echo "AutoZoom needs Python 3 to work. Please read README.md!"
python3 main.py