Skip to content

Commit

Permalink
v2.24
Browse files Browse the repository at this point in the history
Updated program to version 2.24
  • Loading branch information
Skrepysh committed Oct 17, 2023
1 parent 3589a1d commit b042d4c
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 80 deletions.
129 changes: 66 additions & 63 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,69 +20,72 @@
group1.add_argument("--restore", default=0, nargs='?', const=1, help="используйте --restore, чтобы восстановить бэкап")
args = parser.parse_args()

program_version = "2.23"
program_version = "2.24"
program = MineSquid(program_version)
logging = program.logging
while True:
try:
program.setup_logger()
logging.info(f'Версия программы: {program_version}')
program.read_config()
program.checker()
program.build_list()
logging.info(f'Путь к программе: {program.program_directory}')
logging.info(f'Путь к игре: {program.game_directory}')
logging.info(f'Путь к папке с пользовательскими данными: {program.userappdata}')
if (int(args.mpnum) != 0 and int(args.mpnum) > 0) and int(args.mpnum) < len(program.list)+1:
program.load_modpack(modpack_number=(int(args.mpnum) - 1))
elif str(args.mpname) in program.list:
program.load_modpack(modpack_number=program.list.index(args.mpname))
else:
if args.restore != 0:
program.restore_backup()
if __name__ == "__main__":
while True:
try:
program.setup_logger()
logging.info(f'Версия программы: {program_version}')
program.read_config()
program.checker()
program.build_list()
logging.info(f'Путь к программе: {program.program_directory}')
logging.info(f'Путь к игре: {program.game_directory}')
logging.info(f'Путь к папке с пользовательскими данными: {program.userappdata}')
if (int(args.mpnum) != 0 and int(args.mpnum) > 0) and int(args.mpnum) < len(program.list)+1:
program.load_modpack(modpack_number=(int(args.mpnum) - 1))
elif str(args.mpname) in program.list:
program.load_modpack(modpack_number=program.list.index(args.mpname))
else:
program.run()
except KeyError as err:
logging.error("KeyError")
logging.exception(err)
program.repair_config()
except IndexError as err:
logging.error("IndexError")
logging.exception(err)
print(Fore.RED + f"Неверное значение!{Fore.MAGENTA}\nПерезапуск")
program.error()
except PermissionError as err:
logging.error("PermissionError")
logging.exception(err)
msg.showerror(title="Ошибка доступа", message="Не удается получить доступ к какому-то файлу.\n"
"Проверьте, закрыт ли клиент игры!"
"\nИли попробуйте запустить программу "
"от имени администратора")
exit()
except ZeroSelector:
logging.error("ZeroSelector")
print(Fore.RED + f"Неверное значение!{Fore.MAGENTA}\nПерезапуск")
program.error()
except ValueError as err:
logging.error("ValueError")
logging.exception(err)
print(Fore.RED + f"Неверное значение!{Fore.MAGENTA}\nПерезапуск")
program.error()
except FileNotFoundError as err:
logging.error("FileNotFoundError")
logging.exception(err)
logging.error("FileNotFoundError, запуск чекера")
program.checker()
program.finish()
except Restart:
print("Перезапуск...")
logging.info("Программа перезапускается...")
system("cls")
pass
except Exception as err:
system("cls")
logging.error("Неизвестная ошибка!!")
print(Fore.RED + f"Неизвестная ошибка, смотри {Fore.MAGENTA}логи")
logging.exception(err)
time.sleep(7)
break
if args.restore != 0:
program.restore_backup()
else:
program.run()
except KeyError as err:
logging.error("KeyError")
logging.exception(err)
program.repair_config()
except IndexError as err:
logging.error("IndexError")
logging.exception(err)
print(Fore.RED + f"Неверное значение!{Fore.MAGENTA}\nПерезапуск")
program.error()
except PermissionError as err:
logging.error("PermissionError")
logging.exception(err)
msg.showerror(title="Ошибка доступа", message="Не удается получить доступ к какому-то файлу.\n"
"Проверьте, закрыт ли клиент игры!"
"\nИли попробуйте запустить программу "
"от имени администратора")
exit()
except ZeroSelector:
logging.error("ZeroSelector")
print(Fore.RED + f"Неверное значение!{Fore.MAGENTA}\nПерезапуск")
program.error()
except ValueError as err:
logging.error("ValueError")
logging.exception(err)
print(Fore.RED + f"Неверное значение!{Fore.MAGENTA}\nПерезапуск")
program.error()
except FileNotFoundError as err:
logging.error("FileNotFoundError")
logging.exception(err)
logging.error("FileNotFoundError, запуск чекера")
program.checker()
program.finish()
except Restart:
logging.info("Программа перезапускается (raise Restart)...")
system("cls")
pass
except KeyboardInterrupt:
print(Fore.RED + '\nQuit by Ctrl+C')
exit()
except Exception as err:
system("cls")
logging.error("Неизвестная ошибка!!")
print(Fore.RED + f"Неизвестная ошибка, смотри {Fore.MAGENTA}логи")
logging.exception(err)
time.sleep(7)
break
37 changes: 21 additions & 16 deletions minesquid.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,16 @@ def settings(self):
logging.info('Открыты настройки')
print('1 - изменить путь к папке с игрой\n2 - изменить имя пользователя, '
'отображаемое в программе\n3 - выход\n*')
input1 = input("Выберите настройку: ")
input1 = input(f"Выберите настройку: {Fore.RED}")
print(Fore.RESET, end='\r')
if str(input1) == '1':
logging.info('Начат процесс изменения пути к папке с игрой')
self.edit_config('options', 'game_path', self.enter_path())
time.sleep(0.5)
elif str(input1) == '2':
logging.info('Начат процесс изменения пользовательского никнейма')
username = input('Введите новое имя пользователя(default - сбросить имя): ')
username = input(f'Введите новое имя пользователя(default - сбросить имя): {Fore.RED}')
print(Fore.RESET, end='\r')
if username != 'default':
self.edit_config('options', 'custom_username', username)
else:
Expand All @@ -81,7 +83,7 @@ def enter_path(self):
while True:
path = filedialog.askdirectory(initialdir=f'{os.environ["appdata"]}\\.minecraft')
if path == '':
print("Редактирование отменено")
print(Fore.RED + "Редактирование отменено")
time.sleep(1)
return self.game_directory
elif path.replace('\\', '').replace('/', '') == path[:2]:
Expand Down Expand Up @@ -191,7 +193,8 @@ def ui(self):
"\n? - открыть readME\nq - выход")
logging.info(f"Количество модпаков: {int(counter) - 1}")
logging.info("Ждем выбора модпака пользователем...")
selector = str(input("Выберите модпак: "))
selector = str(input(f"Выберите модпак: {Fore.RED}"))
print(Fore.RESET, end='\r')
if selector == "re":
self.restore_backup()
elif selector == "set":
Expand Down Expand Up @@ -222,9 +225,10 @@ def build_list(self):
if self.game_directory != 'не назначена':
os.chdir(f"{self.userappdata}\\modpacks")
self.list = [e for e in os.listdir() if os.path.isdir(e)]
logging.info("Составлен список модпаков")
else:
self.list = ["Папка с игрой не назначена", "Модпаки недоступны", Fore.RED + "Для выбора папки введите set"]
logging.info("Составлен список модпаков")
logging.info("Папка с игрой не назначена!")

def edit_config(self, section, option, what):
logging.info('Запущен edit_config')
Expand Down Expand Up @@ -298,7 +302,7 @@ def load_modpack(self, modpack_number):
print(Fore.GREEN + "Готово")
self.finish()
else:
print("Папка с игрой не указана!")
print(Fore.RED + "Папка с игрой не назначена!")
sleep(1.5)
raise Restart

Expand Down Expand Up @@ -358,52 +362,53 @@ def restore_backup(self):
print(Fore.GREEN + "Бэкап восстановлен")
self.finish()
else:
print("Папка с игрой не указана!")
print(Fore.RED + "Папка с игрой не назначена!")
sleep(1.5)
raise Restart

def update(self):
logging.info("Начата проверка обновлений...")
print("Проверка обновлений...")
try:
version_url = "https://raw.githubusercontent.com/Skrepysh/mineSquid/master/version.txt"
version_url = 'https://raw.githubusercontent.com/Skrepysh/mineSquid/master/version.txt'
version = requests.get(version_url).text.replace('\n', '')
except Exception:
print("Не удалось проверить обновления(((\nПроверьте подключение к интернету")
sleep(1.5)
raise Restart
if float(version) > float(self.version):
print(f"Найдена новая версия программы: {version}")
print(f"Найдена новая версия программы: {Fore.GREEN + version}")
logging.info(f"Найдена новая версия программы: {version}!")
accept = input("Выполнить обновление? Y - да, N - нет: ")
accept = input(f"Выполнить обновление? {Fore.GREEN}Y{Fore.RESET} - да, {Fore.RED}N{Fore.RESET} - нет: {Fore.CYAN}")
print(Fore.RESET, end='\r')
if accept.lower() == "y":
logging.info("Обновление подтверждено")
print("Скачиваю обновление...")
print(Fore.CYAN + "Скачиваю обновление...")
try:
logging.info("Скачивание...")
update_url = (f"https://github.com/Skrepysh/mineSquid/releases/download/v{version}"
f"/mineSquid_v{version}_setup.exe")
os.chdir(os.environ['temp'])
open("mineSquidUpdate.exe", "wb").write(requests.get(update_url, allow_redirects=True).content)
except Exception:
print("Не удалось скачать обновление(((\nПроверьте подключение к интернету")
print(Fore.RED + "Не удалось скачать обновление(((\nПроверьте подключение к интернету")
sleep(1.5)
raise Restart
print("Запускаю процесс установки...")
logging.info("Запускаю процесс установки...")
logging.info(Fore.CYAN + "Запускаю процесс установки...")
if os.path.exists(f'{os.environ["temp"]}\\mineSquidUpdate.exe'):
Popen(f'{os.environ["temp"]}\\mineSquidUpdate.exe /Silent')
else:
print("При обновлении произошла ошибка!")
print(Fore.RED + "При обновлении произошла ошибка!")
exit()
else:
logging.info("Обновление отменено")
print("Обновление отменено")
print(Fore.RED + "Обновление отменено")
sleep(1)
raise Restart
else:
logging.info("Обновлений нет")
print("Обновлений нет")
print(Fore.LIGHTMAGENTA_EX + "Обновлений нет")
sleep(1)
raise Restart

Expand Down
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.23
2.24

0 comments on commit b042d4c

Please sign in to comment.