Обновление 1.5
• Добавлен Discord RPC; • Вывод может быть цаетным (опционально); • Звуковые эффекты теперь можно выключить; • Пункты меню "Помощь" и "Настройки" сильно изменены.
This commit is contained in:
parent
2b50827e58
commit
243e06ee0b
24
colors.py
Normal file
24
colors.py
Normal 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'
|
46
functions.py
Normal file
46
functions.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import pip
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import importlib
|
||||||
|
from pathlib import Path
|
||||||
|
from colors import *
|
||||||
|
|
||||||
|
path = Path(__file__).resolve().parent
|
||||||
|
sounds_folder = str(Path(str(path)+"/sounds/")) + os.sep
|
||||||
|
files_folder = str(Path(str(path)+"/files/")) + os.sep
|
||||||
|
|
||||||
|
def getConfig(some_var):
|
||||||
|
global files_folder
|
||||||
|
|
||||||
|
if os.path.exists(files_folder):
|
||||||
|
if not os.path.exists(files_folder+'config.json'):
|
||||||
|
temp_config_list = {}
|
||||||
|
temp_config_list["debug"] = False
|
||||||
|
temp_config_list["shutdown_timeout"] = 30
|
||||||
|
temp_config_list["shutdown_enabled"] = True
|
||||||
|
temp_config_list["start"] = "shift+f7"
|
||||||
|
temp_config_list["stop"] = "shift+f8"
|
||||||
|
temp_config_list["telegram_enabled"] = False
|
||||||
|
temp_config_list["use_colors"] = True
|
||||||
|
temp_config_list["run_fullscreen"] = False
|
||||||
|
temp_config_list["use_rpc"] = True
|
||||||
|
temp_config_list["sounds"] = True
|
||||||
|
temp_config_list["end_mode"] = "shutdown"
|
||||||
|
saveJson(files_folder+'config.json', temp_config_list)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
with open(f"{files_folder}config.json", encoding="utf-8") as json_file:
|
||||||
|
config_list = json.load(json_file)
|
||||||
|
return config_list[some_var]
|
||||||
|
except:
|
||||||
|
return "Error"
|
||||||
|
else:
|
||||||
|
os.mkdir(files_folder)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def saveJson(filename, value):
|
||||||
|
with open(filename, 'w', encoding="utf-8") as f:
|
||||||
|
json.dump(value, f, indent=4, ensure_ascii=False)
|
110
libinstaller.py
Normal file
110
libinstaller.py
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import os, sys
|
||||||
|
from colors import *
|
||||||
|
from functions import getConfig
|
||||||
|
|
||||||
|
# Работает не очень стабильно при отсутствии интернета
|
||||||
|
# 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:
|
||||||
|
libs.append("easygui")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import tkinter
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("tkinter")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import keyboard
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("keyboard")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import ast
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("ast")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import inputimeout
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("inputimeout")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import telegram_send
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("telegram_send")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import wget
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("wget")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import requests
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("requests")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
from zipfile import ZipFile
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("zipfile")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
import asyncio
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("asyncio")
|
||||||
|
###################################
|
||||||
|
try:
|
||||||
|
from pypresence import Presence
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
libs.append("pypresence")
|
||||||
|
###################################
|
||||||
|
if len(libs) > 0:
|
||||||
|
print("Не хватает нужных модулей, пробуем установить...")
|
||||||
|
|
||||||
|
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}.")
|
||||||
|
if response != 0:
|
||||||
|
sys.exit(f"{RESET}[{BRED}ERR{RESET}] Установка {YELLOW}{each} {RESET}провалилась.")
|
||||||
|
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 asyncio
|
||||||
|
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#############################################################################")
|
||||||
|
#########################################################
|
184
main.py
184
main.py
@ -1,55 +1,100 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
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
|
||||||
from zipfile import ZipFile
|
from zipfile import ZipFile
|
||||||
from daemon import main, editor, settings, clear
|
|
||||||
|
|
||||||
version = 1.4
|
version = 1.5
|
||||||
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
|
||||||
|
|
||||||
|
rpc.inMenu()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
serv_ver = requests.get("https://www.end-play.xyz/AutoZoomVersion.txt").text
|
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:
|
||||||
|
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):
|
if float(serv_ver) > float(version):
|
||||||
show_version = ' (!)'
|
show_version = f' ({BRED}!{RESET})'
|
||||||
else:
|
else:
|
||||||
show_version = ''
|
show_version = ''
|
||||||
|
|
||||||
#clear()
|
print(f'{BBLACK}»{RESET} Главное меню\n')
|
||||||
menu_choose = input(f'» Главное меню\n\n1. Запуск\n2. Редактор\n3. Настройки\n4. Обновление{show_version}\n5. Помощь и связь\n6. Закрыть приложение\n\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}')
|
||||||
|
|
||||||
if menu_choose == '1':
|
if menu_choose == '1':
|
||||||
main('menu')
|
main('menu')
|
||||||
elif menu_choose == '2':
|
elif menu_choose == '2':
|
||||||
|
rpc.inEditor()
|
||||||
editor()
|
editor()
|
||||||
elif menu_choose == '3':
|
elif menu_choose == '3':
|
||||||
|
rpc.inSettings()
|
||||||
settings()
|
settings()
|
||||||
elif menu_choose == '4':
|
elif menu_choose == '4':
|
||||||
|
rpc.inUpdater()
|
||||||
updater(serv_ver, version)
|
updater(serv_ver, version)
|
||||||
elif menu_choose == '5':
|
elif menu_choose == '5':
|
||||||
|
rpc.inHelp()
|
||||||
helpMenu()
|
helpMenu()
|
||||||
elif menu_choose == '6':
|
elif menu_choose == '6':
|
||||||
|
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,17 +107,26 @@ def os_arch():
|
|||||||
def helpMenu():
|
def helpMenu():
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
|
os.system("title AutoZoom (Помощь)")
|
||||||
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} Telegram проекта')
|
||||||
|
print(f' {BRED}3.{RESET} Связаться с автором')
|
||||||
|
print(f' {BRED}4.{RESET} Сводка информации')
|
||||||
|
print(f' {BRED}5.{RESET} В главное меню')
|
||||||
|
help_choose = input(f'\n > {BRED}')
|
||||||
|
|
||||||
if help_choose == '1':
|
if help_choose == '1':
|
||||||
try:
|
try:
|
||||||
clear()
|
clear()
|
||||||
webbrowser.open("https://github.com/profitrollgame/autozoom/wiki")
|
webbrowser.open("https://github.com/profitrollgame/autozoom/wiki")
|
||||||
except:
|
except:
|
||||||
clear()
|
clear()
|
||||||
none = input('Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: https://github.com/profitrollgame/autozoom/wiki\n\n > ')
|
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:
|
||||||
@ -80,7 +134,7 @@ def helpMenu():
|
|||||||
webbrowser.open("https://t.me/auto_zoom")
|
webbrowser.open("https://t.me/auto_zoom")
|
||||||
except:
|
except:
|
||||||
clear()
|
clear()
|
||||||
none = input('Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: https://t.me/auto_zoom\n\n > ')
|
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://t.me/auto_zoom{RESET}\n\n > ')
|
||||||
clear()
|
clear()
|
||||||
elif help_choose == '3':
|
elif help_choose == '3':
|
||||||
try:
|
try:
|
||||||
@ -88,44 +142,48 @@ def helpMenu():
|
|||||||
webbrowser.open("https://t.me/profitroll")
|
webbrowser.open("https://t.me/profitroll")
|
||||||
except:
|
except:
|
||||||
clear()
|
clear()
|
||||||
none = input('Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: https://t.me/profitroll\n\n > ')
|
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://t.me/profitroll{RESET}\n\n > ')
|
||||||
clear()
|
clear()
|
||||||
if help_choose == '4':
|
if help_choose == '4':
|
||||||
clear()
|
clear()
|
||||||
print('» Информация о системе\n')
|
print(f'{BBLACK}»{RESET} Информация о системе\n')
|
||||||
print('Система:')
|
print(' Система:')
|
||||||
print(f'• ОС: {platform.system()}')
|
print(f' {BBLACK}•{RESET} ОС: {YELLOW}{platform.system()}{RESET}')
|
||||||
print(f'• Релиз: {platform.release()}')
|
print(f' {BBLACK}•{RESET} Релиз: {YELLOW}{platform.release()}{RESET}')
|
||||||
print(f'• Разрядность: {os_arch()}')
|
print(f' {BBLACK}•{RESET} Разрядность: {YELLOW}{os_arch()}{RESET}')
|
||||||
print('\nPython:')
|
print('\n Python:')
|
||||||
print(f'• Версия: {platform.python_version()}')
|
print(f' {BBLACK}•{RESET} Версия: {YELLOW}{platform.python_version()}{RESET}')
|
||||||
print(f'• Вариант: {platform.python_implementation()}')
|
print(f' {BBLACK}•{RESET} Вариант: {YELLOW}{platform.python_implementation()}{RESET}')
|
||||||
print(f'• Ревизия: {platform.python_revision()}')
|
print(f' {BBLACK}•{RESET} Ревизия: {YELLOW}{platform.python_revision()}{RESET}')
|
||||||
print(f'• Расположение: {sys.path[4]}')
|
print(f' {BBLACK}•{RESET} Расположение: {BRED}{sys.path[4]}{RESET}')
|
||||||
print('\nAutoZoom:')
|
print('\n AutoZoom:')
|
||||||
print(f'• Версия: {version}')
|
print(f' {BBLACK}•{RESET} Версия: {YELLOW}{version}{RESET}')
|
||||||
print(f'• Расположение: {path}')
|
print(f' {BBLACK}•{RESET} Расположение: {BRED}{path}{RESET}')
|
||||||
none = input('\n > ')
|
none = input('\n > ')
|
||||||
clear()
|
clear()
|
||||||
elif help_choose == '5':
|
elif help_choose == '5':
|
||||||
|
rpc.inMenu()
|
||||||
clear()
|
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 (Обновления)")
|
||||||
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Обновитесь чтобы вышеуказанное работало.'
|
||||||
else:
|
else:
|
||||||
show_version = ''
|
show_version = ''
|
||||||
@ -134,16 +192,29 @@ 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':
|
||||||
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':
|
||||||
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')
|
||||||
|
except:
|
||||||
|
print(f'Не удалось загрузить архив с последней версией.\nПроверьте подключение к сети и повторите попытку.\n\nСтатус сервера центра обновлений:\n{BRED}https://status.end-play.xyz/786373747{RESET}')
|
||||||
|
none = input('\n > ')
|
||||||
|
continue
|
||||||
|
|
||||||
with ZipFile('AutoZoomLatest.zip', 'r') as zipObj:
|
with ZipFile('AutoZoomLatest.zip', 'r') as zipObj:
|
||||||
zipObj.extractall()
|
zipObj.extractall()
|
||||||
print('Все файлы были успешно загружены')
|
print('Все файлы были успешно загружены')
|
||||||
@ -153,6 +224,9 @@ def updater(serv_ver, version):
|
|||||||
|
|
||||||
clear()
|
clear()
|
||||||
none = input('Обновление завершено, перезапустите AutoZoom.\n\n > ')
|
none = input('Обновление завершено, перезапустите AutoZoom.\n\n > ')
|
||||||
|
rpc.disconnect()
|
||||||
|
clear()
|
||||||
|
print(f'Закрываем приложение {BGREEN}AutoZoom{RESET}...')
|
||||||
sys.exit()
|
sys.exit()
|
||||||
elif updater_decide == '2':
|
elif updater_decide == '2':
|
||||||
clear()
|
clear()
|
||||||
@ -160,26 +234,42 @@ def updater(serv_ver, version):
|
|||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
elif updater_choose == '2':
|
elif updater_choose == '2':
|
||||||
changelog = requests.get("https://www.end-play.xyz/AutoZoomChangelog.txt")
|
try:
|
||||||
changelog.encoding = None
|
changelog = requests.get("https://www.end-play.xyz/AutoZoomChangelog.txt")
|
||||||
clear()
|
changelog.encoding = None
|
||||||
print(f'{changelog_text}\n')
|
clear()
|
||||||
print(changelog.text)
|
print(f'{RESET}{changelog_text}\n')
|
||||||
print(changelog_footer)
|
print(changelog.text)
|
||||||
|
print(changelog_footer)
|
||||||
none = input('\n > ')
|
none = input('\n > ')
|
||||||
continue
|
continue
|
||||||
|
except:
|
||||||
|
print(f'{RESET}Не удалось загрузить чейнджлог.\nПроверьте подключение к сети и повторите попытку.\n\nСтатус сервера центра обновлений:\n{BRED}https://status.end-play.xyz/786373747{RESET}')
|
||||||
|
none = input('\n > ')
|
||||||
|
continue
|
||||||
elif updater_choose == '3':
|
elif updater_choose == '3':
|
||||||
|
rpc.inMenu()
|
||||||
clear()
|
clear()
|
||||||
|
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()
|
290
rpc.py
Normal file
290
rpc.py
Normal file
@ -0,0 +1,290 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from functions import *
|
||||||
|
|
||||||
|
version = '1.5'
|
||||||
|
|
||||||
|
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():
|
||||||
|
if getConfig("use_rpc"):
|
||||||
|
try:
|
||||||
|
RPC.close()
|
||||||
|
connected = False
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def connect():
|
||||||
|
try:
|
||||||
|
RPC.connect()
|
||||||
|
connected = True
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def reset():
|
||||||
|
if getConfig("use_rpc"):
|
||||||
|
RPC.clear()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
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)
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
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='В главном меню')
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
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)
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
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='В главном меню')
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
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='В главном меню')
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
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='В главном меню')
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
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='В главном меню')
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
except AssertionError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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='Режим отладки')
|
||||||
|
except AttributeError:
|
||||||
|
if getConfig("debug"):
|
||||||
|
print(f'{RESET}Модуль {BRED}Discord RPC {RESET}не смог подключиться.\nВозможно, ваш {CYAN}Discord {RESET}не открыт.')
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Неудачная попытка работы с discord_rpc. Потом, быть может, попробую ещё раз. #
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# import discord_rpc
|
||||||
|
# import time
|
||||||
|
|
||||||
|
# if __name__ == "__main__":
|
||||||
|
# def readyCallback(current_user):
|
||||||
|
# print('Our user: {}'.format(current_user))
|
||||||
|
|
||||||
|
# def disconnectedCallback(codeno, codemsg):
|
||||||
|
# print('Disconnected from Discord rich presence RPC. Code {}: {}'.format(
|
||||||
|
# codeno, codemsg
|
||||||
|
# ))
|
||||||
|
|
||||||
|
# def errorCallback(errno, errmsg):
|
||||||
|
# print('An error occurred! Error {}: {}'.format(
|
||||||
|
# errno, errmsg
|
||||||
|
# ))
|
||||||
|
|
||||||
|
# # Note: 'event_name': callback
|
||||||
|
# callbacks = {
|
||||||
|
# 'ready': readyCallback,
|
||||||
|
# 'disconnected': disconnectedCallback,
|
||||||
|
# 'error': errorCallback,
|
||||||
|
# }
|
||||||
|
|
||||||
|
# # if __name__ != "__main__":
|
||||||
|
# discord_rpc.initialize('800049969960058882', callbacks=callbacks, log=False)
|
||||||
|
# none = input('init')
|
||||||
|
|
||||||
|
# i = 0
|
||||||
|
|
||||||
|
# while i < 10:
|
||||||
|
# discord_rpc.update_presence(
|
||||||
|
# **{
|
||||||
|
# 'state': f'Загрузка...',
|
||||||
|
# 'details': 'Загрузка...',
|
||||||
|
# #'start_timestamp': start,
|
||||||
|
# 'large_image_key': '1024_cover',
|
||||||
|
# 'small_image_key': 'status_waiting',
|
||||||
|
# 'large_image_text': f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom',
|
||||||
|
# 'small_image_text': 'Ожидание',
|
||||||
|
# }
|
||||||
|
# )
|
||||||
|
# discord_rpc.update_connection()
|
||||||
|
# time.sleep(3)
|
||||||
|
# discord_rpc.run_callbacks()
|
||||||
|
# i += 1
|
||||||
|
|
||||||
|
# i = 0
|
||||||
|
# start = time.time()
|
||||||
|
# while i < 10:
|
||||||
|
# i += 1
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
# discord_rpc.update_presence(
|
||||||
|
# **{
|
||||||
|
# 'state': f'Ждём начала «lesson»',
|
||||||
|
# 'details': 'Урок не начался',
|
||||||
|
# 'start_timestamp': start,
|
||||||
|
# 'large_image_key': '1024_cover',
|
||||||
|
# 'small_image_key': 'status_waiting',
|
||||||
|
# 'large_image_text': f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom',
|
||||||
|
# 'small_image_text': 'Ожидание',
|
||||||
|
# }
|
||||||
|
# )
|
||||||
|
|
||||||
|
# discord_rpc.update_connection()
|
||||||
|
# time.sleep(2)
|
||||||
|
# discord_rpc.run_callbacks()
|
||||||
|
|
||||||
|
# discord_rpc.shutdown()
|
||||||
|
|
||||||
|
|
||||||
|
# def disconnect():
|
||||||
|
# if getConfig("use_rpc"):
|
||||||
|
# discord_rpc.shutdown()
|
||||||
|
|
||||||
|
|
||||||
|
# def inMenu():
|
||||||
|
# if getConfig("use_rpc"):
|
||||||
|
# discord_rpc.update_presence(
|
||||||
|
# **{
|
||||||
|
# 'state': f'Ждём начала «lesson»',
|
||||||
|
# 'details': 'Урок не начался',
|
||||||
|
# #'start_timestamp': start,
|
||||||
|
# 'large_image_key': '1024_cover',
|
||||||
|
# 'small_image_key': 'status_waiting',
|
||||||
|
# 'large_image_text': f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom',
|
||||||
|
# 'small_image_text': 'Ожидание',
|
||||||
|
# }
|
||||||
|
# )
|
||||||
|
# discord_rpc.update_connection()
|
||||||
|
|
||||||
|
# def waitLesson(lesson, start):
|
||||||
|
# if getConfig("use_rpc"):
|
||||||
|
# discord_rpc.update_presence(
|
||||||
|
# **{
|
||||||
|
# 'state': f'Ждём начала «lesson»',
|
||||||
|
# 'details': 'Урок не начался',
|
||||||
|
# 'start_timestamp': start,
|
||||||
|
# 'large_image_key': '1024_cover',
|
||||||
|
# 'small_image_key': 'status_waiting',
|
||||||
|
# 'large_image_text': f'AutoZoom • v{version}\nhttp://bit.ly/auto_zoom',
|
||||||
|
# 'small_image_text': 'Ожидание',
|
||||||
|
# }
|
||||||
|
# )
|
BIN
sounds/recordstart.wav
Normal file
BIN
sounds/recordstart.wav
Normal file
Binary file not shown.
BIN
sounds/recordstop.wav
Normal file
BIN
sounds/recordstop.wav
Normal file
Binary file not shown.
Reference in New Issue
Block a user