Skip to content

Commit

Permalink
v2.19
Browse files Browse the repository at this point in the history
Updated program to version 2.19. Added self-update function.
  • Loading branch information
Skrepysh committed Sep 24, 2023
1 parent 5316d69 commit 5c72746
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 7 deletions.
6 changes: 3 additions & 3 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
group1.add_argument("--restore", default=0, nargs='?', const=1, help="используйте --restore, чтобы восстановить бэкап")
args = parser.parse_args()

program_version = "2.18"
program_version = "2.19"
ok = MineSquid(program_version)
logging = ok.logging

Expand All @@ -34,9 +34,9 @@
logging.info(f'Путь к игре: {ok.game_directory}')
logging.info(f'Путь к папке с пользовательскими данными: {ok.userappdata}')
if (int(args.mpnum) != 0 and int(args.mpnum) > 0) and int(args.mpnum) < len(ok.list) - 1:
ok.load_modpack(modpack_number=(int(args.mpnum) - 1), silent=True)
ok.load_modpack(modpack_number=(int(args.mpnum) - 1))
elif str(args.mpname) in ok.list:
ok.load_modpack(modpack_number=ok.list.index(args.mpname), silent=True)
ok.load_modpack(modpack_number=ok.list.index(args.mpname))
else:
if args.restore != 0:
ok.restore_backup()
Expand Down
59 changes: 55 additions & 4 deletions minesquid.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
from progress.bar import Bar
import datetime as dt
from tkinter import messagebox as msg
import requests
import subprocess


class ZeroSelector(Exception):
Expand All @@ -24,7 +26,7 @@ def __init__(self, version):
self.list = []
self.version = str(version)
self.game_directory = 'не назначена'
self.program_directory = os.getcwd()
self.program_directory = os.path.dirname(os.path.abspath(sys.argv[0]))
self.userappdata = f'{os.environ["appdata"]}\\mineSquid'
self.config = configparser.ConfigParser()
self.logging = logging
Expand Down Expand Up @@ -162,7 +164,8 @@ def ui(self):
print(str(counter) + ". " + str(ver))
counter += 1
print("*")
print("re - восстановление бэкапа\nset - изменить путь к папке с игрой\n? - открыть readME\nq - выход")
print("re - восстановление бэкапа\nset - изменить путь к папке с игрой\nupd - обновление программы"
"\n? - открыть readME\nq - выход")
logging.info(f"Количество модпаков: {int(counter) - 1}")
logging.info("Ждем выбора модпака пользователем...")
selector = str(input("Выберите модпак: "))
Expand All @@ -174,8 +177,11 @@ def ui(self):
logging.info("Введена команда set, начат процесс изменения пути к папке с игрой...")
self.edit_config()
raise Restart
elif selector == "upd":
self.update()
sys.exit()
elif selector == "?":
os.system(f"notepad {self.program_directory}\\readME.txt")
subprocess.Popen(f"notepad {self.program_directory}\\readME.txt")
raise Restart
elif selector == "q" or selector == "quit":
logging.info("Пользователь ввел команду q!")
Expand Down Expand Up @@ -215,7 +221,7 @@ def repair_config(self):
self.config.write(cfg)
self.edit_config()

def load_modpack(self, modpack_number, silent=True):
def load_modpack(self, modpack_number):
if self.game_directory != 'не назначена':
self.user_choice = self.list[modpack_number]
print("Выбрана версия " + self.user_choice)
Expand Down Expand Up @@ -274,6 +280,51 @@ def restore_backup(self):
time.sleep(1.5)
raise Restart

def update(self):
logging.info("Начата проверка обновлений...")
print("Проверка обновлений...")
try:
version_url = "https://raw.githubusercontent.com/Skrepysh/mineSquid/main/version.txt"
version = requests.get(version_url).text.replace('\n', '')
except Exception:
print("Не удалось проверить обновления(((\nПроверьте подключение к интернету")
time.sleep(1.5)
raise Restart
if float(version) > float(self.version):
print(f"Найдена новая версия программы: {version}")
logging.info(f"Найдена новая версия программы: {version}!")
accept = input("Выполнить обновление? Y - да, N - нет: ")
if accept.lower() == "y":
logging.info("Обновление подтверждено")
print("Скачиваю обновление...")
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Проверьте подключение к интернету")
time.sleep(1.5)
raise Restart
print("Запускаю процесс установки...")
logging.info("Запускаю процесс установки...")
if os.path.exists(f'{os.environ["temp"]}\\mineSquidUpdate.exe'):
subprocess.Popen(f'{os.environ["temp"]}\\mineSquidUpdate.exe /Silent')
else:
print("При обновлении произошла ошибка!")
sys.exit()
else:
logging.info("Обновление отменено")
print("Обновление отменено")
time.sleep(1)
raise Restart
else:
logging.info("Обновлений нет")
print("Обновлений нет")
time.sleep(1)
raise Restart

def run(self):
os.chdir(self.userappdata)
if os.path.exists(f"{self.game_directory}\\tempfiles\\") and self.game_directory != 'не назначена':
Expand Down
1 change: 1 addition & 0 deletions version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2.19

0 comments on commit 5c72746

Please sign in to comment.