AutoZoom/main.py

355 lines
16 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
import sys
import pip
import webbrowser
import os
import time
import platform
import subprocess
from pathlib import Path
from functions import *
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 requests
import keyboard
import getpass
from zipfile import ZipFile
version = 2.0
path = Path(__file__).resolve().parent
def mainMenu():
try:
os.system("title AutoZoom (Главная)")
global version
global path
appendLog('Main menu opened')
rpc.inMenu()
while True:
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':
appendLog('Went to daemon')
main('menu')
elif menu_choose == '2':
appendLog('Went to editor')
rpc.inEditor()
editor()
elif menu_choose == '3':
appendLog('Went to settings')
rpc.inSettings()
settings()
elif menu_choose == '4':
appendLog('Went to updater')
rpc.inUpdater()
updater(serv_ver, version)
elif menu_choose == '5':
appendLog('Went to help')
rpc.inHelp()
helpMenu()
elif menu_choose == '6':
appendLog('Exited AutoZoom')
rpc.disconnect()
clear()
sys.exit()
else:
clear()
continue
except KeyboardInterrupt:
rpc.disconnect()
clear()
print(f'Закрываем приложение {BGREEN}AutoZoom{RESET}...')
sys.exit()
def os_arch():
is_64bits = sys.maxsize > 2**32
if is_64bits:
return '64bit'
else:
return '32bit'
def helpMenu():
try:
while True:
os.system("title AutoZoom (Помощь)")
appendLog('Help menu opened')
clear()
global version
global path
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':
try:
clear()
appendLog('Opened AutoZoom wiki')
webbrowser.open("https://github.com/profitrollgame/autozoom/wiki")
except Exception as exp:
clear()
appendLog(f'Failed to open AutoZoom wiki: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://github.com/profitrollgame/autozoom/wiki{RESET}\n\n > ')
clear()
elif help_choose == '2':
try:
clear()
appendLog('Opened AutoZoom website')
webbrowser.open("https://www.end-play.xyz/autozoom")
except Exception as exp:
clear()
appendLog(f'Failed to open AutoZoom website: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://www.end-play.xyz/autozoom{RESET}\n\n > ')
clear()
elif help_choose == '3':
try:
clear()
appendLog('Opened AutoZoom support center')
webbrowser.open("https://www.tidio.com/talk/ydqcvfvgkud3jjk2482uaesvjpeohlh3")
except Exception as exp:
clear()
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()
elif help_choose == '4':
try:
clear()
appendLog('Opened AutoZoom Telegram group')
webbrowser.open("https://t.me/auto_zoom")
except Exception as exp:
clear()
appendLog(f'Failed to open AutoZoom Telegram group: {exp}')
none = input(f'{RESET}Не удалось открыть страницу вашего браузера.\nВы можете открыть адрес самостоятельно: {BRED}https://t.me/auto_zoom{RESET}\n\n > ')
clear()
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()
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
else:
clear()
continue
except KeyboardInterrupt:
rpc.inMenu()
clear()
return
def updater(serv_ver, version):
try:
while True:
os.system("title AutoZoom (Обновления)")
appendLog('Updater menu opened')
clear()
if float(serv_ver) > float(version):
show_version = f' ({BRED}!{RESET})'
serv_ver = serv_ver.rstrip('\n')
show_action = f'Обновить до {BGREEN}{serv_ver}{RESET}'
changelog_text = f'Изменения в версии {BGREEN}{serv_ver}{RESET}:'
changelog_footer = '\nОбновитесь чтобы вышеуказанное работало.'
elif serv_ver == 'disabled':
show_version = ''
show_action = f'Переустановить'
changelog_text = f'Изменения в вашей версии:'
changelog_footer = ''
else:
show_version = ''
show_action = f'Переустановить'
changelog_text = f'Изменения в вашей версии:'
changelog_footer = ''
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':
appendLog('Choosed to update')
while True:
clear()
print(f'{RESET}Подтвердите действие:\n')
print(f' {BRED}1.{RESET} Установить')
print(f' {BRED}2.{RESET} Отменить')
updater_decide = input('\n > ')
if updater_decide == '1':
appendLog('Trying to update AutoZoom')
clear()
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:
zipObj.extractall()
print('Все файлы были успешно загружены')
appendLog('Latest zip extracted')
if os.path.exists("AutoZoomLatest.zip"):
os.remove("AutoZoomLatest.zip")
appendLog('Latest used zip deleted')
clear()
none = input('Обновление завершено, перезапустите AutoZoom.\n\n > ')
rpc.disconnect()
clear()
print(f'Закрываем приложение {BGREEN}AutoZoom{RESET}...')
appendLog('Exiting AutoZoom after an update')
sys.exit()
elif updater_decide == '2':
clear()
appendLog('Aborted update')
break
else:
continue
elif updater_choose == '2':
appendLog('Choosed to check changelog')
try:
changelog = requests.get("https://www.end-play.xyz/AutoZoomChangelog.txt")
changelog.encoding = None
appendLog('Changelog loaded')
clear()
print(f'{RESET}{changelog_text}\n')
print(changelog.text)
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':
rpc.inMenu()
clear()
appendLog('Returning to main menu')
os.system("title AutoZoom (Главная)")
return
else:
continue
except KeyboardInterrupt:
rpc.inMenu()
clear()
return
if __name__ == '__main__':
os.system("title Загрузка main...")
from functions import getConfig
from daemon import clear
import time
clear()
if getConfig("run_fullscreen"):
keyboard.press('alt, enter')
time.sleep(.25)
keyboard.release('alt, enter')
os.system("title AutoZoom (Главная)")
mainMenu()
sys.exit()