Skip to content

Commit

Permalink
v2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
Skrepysh committed Apr 29, 2023
1 parent 168f5c5 commit 3a0b2e7
Show file tree
Hide file tree
Showing 11 changed files with 210 additions and 141 deletions.
3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

4 changes: 0 additions & 4 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

10 changes: 0 additions & 10 deletions .idea/ok.iml

This file was deleted.

42 changes: 42 additions & 0 deletions exceptor.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from worker import worker, verpicker, finish
import os
import time
from filerpy import version_define, dirdefine
from preparator import preparator
from preparator import error
programdir = dirdefine("settings.txt", "prog")
minedir = dirdefine("settings.txt", "mine")

def run(version):
progver = version_define(version)
if preparator("init") == "stopnow":
finish("normal")
else:
pass
while True:
try:
os.chdir(f"{programdir}/mods")
vers = [e for e in os.listdir() if os.path.isdir(e)]
worker(verpicker(progver, vers))
break
except IndexError:
print("неверное значение\nперезапуск")
error()
except OverflowError:
print("многацифер\nперезапуск")
error()
except ValueError:
print("что ты несешь\nперезапуск")
error()
except SyntaxError:
print("Что-то пошло не так!")
except FileNotFoundError:
if preparator("error") == "stopnow":
break
else:
os.system("cls")
continue
except Exception:
print("неизвестная ошибка")
time.sleep(3)
break
25 changes: 13 additions & 12 deletions filerpy.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
import os


def dirdefine(file, type):
if type == "mine":
minedir1 = open(file, "r")
minedir = minedir1.readlines()
minedir1.close()
ok = minedir.pop(0).split("\n")
ok = ok.pop(0).split("\n")
ok = ok.pop(0)
return ok
result = minedir.pop(0).split("\n")
result = result.pop(0).split("\n")
result = result.pop(0)
return result
if type == "prog":
programdir1 = open(file, "r")
programdir = programdir1.readlines()
programdir1.close()
ok2 = programdir.pop(1).split("/n")
ok2 = ok2.pop(0).split("\n")
ok2 = ok2.pop(0)
return ok2
result2 = os.getcwd()
return result2
def version_define(version):
version = str(version)
unknown = "unknown"
if version == "" or version == " ":
return unknown
else:
return version
59 changes: 4 additions & 55 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,60 +1,9 @@
import os
import shutil
from pathlib import Path
import time
from filerpy import dirdefine
programdir = str(dirdefine("settings.txt", "prog"))
minedir = str(dirdefine("settings.txt", "mine"))
os.chdir(f"{programdir}/mods")
vers = [e for e in os.listdir() if os.path.isdir(e)]
from exceptor import run


def finish():
print("окно закроется через 3 секунды")
time.sleep(3)
while True:
break
def main():
print("Привет!")
versamount = len(vers)
for i, item in enumerate(vers):
print(i + 1, "> ", item)
print("Чтобы восстановить бэкап напишите restore")
selector = str(input("Выберите версию: "))
if selector == "restore":
os.chdir(minedir)
shutil.rmtree(f"{minedir}/mods")
os.chdir(programdir)
shutil.copytree(f"{programdir}/backup", f"{minedir}/pySelector/")
os.chdir(minedir)
p = Path(f"{minedir}/pySelector/")
p.rename("mods")
print("Бэкап восстановлен")
return "restok"
else:
selector = int(selector)
a = vers.pop(selector - 1)
print("Выбрана версия " + a)
return a
program_version = 2.3


def worker(version):
if version == "restok":
finish()
else:
print("работаю..")
os.chdir(minedir)
shutil.rmtree(f"{programdir}/backup")
shutil.copytree(f"{minedir}/mods", f"{programdir}/backup")
shutil.rmtree(f"{minedir}/mods")
os.chdir(f"{programdir}/mods/")
shutil.copytree(f"{programdir}/mods/{version}", f"{minedir}/pySelector")
os.chdir(minedir)
p = Path(f"{minedir}/pySelector/")
p.rename("mods")
print("готово")
finish()
run(program_version)



worker(main())
#please, check settings.txt before panic about program is not working
45 changes: 0 additions & 45 deletions main.spec

This file was deleted.

73 changes: 73 additions & 0 deletions preparator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import os
import time
from filerpy import dirdefine
programdir = dirdefine("settings.txt", "prog")
minedir = dirdefine("settings.txt", "mine")

def error():
time.sleep(2)
os.system("cls")

def preparator(type_of_work):
os.chdir(programdir)
if type_of_work == "error":
if not os.path.exists(f"{programdir}/backup"):
print("Нету папки backup:-(")
os.mkdir(f"{os.getcwd()}/backup")
time.sleep(2)
print("Папка создана, повторите попытку")
error()
try:
if not os.path.exists(f"{minedir}/mods"):
print("Нету папки mods в директории игры:-(")
os.chdir(minedir)
os.mkdir("mods")
print("Папка создана, повторите попытку")
error()
except FileNotFoundError:
print("Не удалось создать папку!\nПроверьте settings.txt")
time.sleep(2)
return "stopnow"
if not os.path.exists(f"{programdir}/mods"):
print("Отсутствует хранилище модпаков:-(")
os.chdir(programdir)
os.mkdir(f"{os.getcwd()}/mods")
readme = open(f"{os.getcwd()}/mods/readME PLS.txt", "w")
readme.write("put your modpacks in this folder")
readme.close()
print("В корне программы создана папка mods, поместите туда свои модпаки")
time.sleep(2)
error()
else:
print("Какой-то файл/папка не найден.\nПроверьте settings.txt")
time.sleep(2)
return "stopnow"
if type_of_work == "init":
if not os.path.exists(f"{programdir}/backup"):
print("Нету папки backup:-(")
os.mkdir(f"{os.getcwd()}/backup")
time.sleep(2)
print("Папка создана, повторите попытку")
error()
try:
if not os.path.exists(f"{minedir}/mods"):
print("Нету папки mods в директории игры:-(")
os.chdir(minedir)
os.mkdir("mods")
print("Папка создана, повторите попытку")
error()
except FileNotFoundError:
print("Не удалось создать папку!\nПроверьте settings.txt")
time.sleep(2)
return "stopnow"
if not os.path.exists(f"{programdir}/mods"):
print("Отсутствует хранилище модпаков:-(")
os.chdir(programdir)
os.mkdir(f"{os.getcwd()}/mods")
readme = open(f"{os.getcwd()}/mods/readME PLS.txt", "w")
readme.write("put your modpacks in this folder")
readme.close()
print("В корне программы создана папка mods, поместите туда свои модпаки")
time.sleep(2)
error()

7 changes: 3 additions & 4 deletions settings.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
E:/minecraft/game
E:/pySelector
// first line is path to pySelector.exe (not including / and "pySelector.exe"
// second line is minecraft home dir (there you can find "config", "versions", "mods" and other folder
minecraft directory !!DO NOT use quotes!!
// FIRST line is minecraft home dir (there you can find "config", "versions", "mods" and other folders)
// PLS FILL FIRST LINE!!!!!
75 changes: 75 additions & 0 deletions worker.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import os
import shutil
import time
from pathlib import Path
from filerpy import dirdefine
programdir = str(dirdefine("settings.txt", "prog"))
minedir = str(dirdefine("settings.txt", "mine"))



def finish(type):
if type == "error":
print("Использовать число 0 нельзя!")
print("окно закроется через 3 секунды")
time.sleep(3)
while True:
break
if type == "normal":
print("окно закроется через 3 секунды")
time.sleep(3)
while True:
break

def verpicker(progver, vers):
print("Привет!")
print("Версия программы: " + progver)
print("Список модпаков: ")
counter = 1
divider = ". "
for ver in vers:
print(str(counter) + str(divider) + str(ver))
counter += 1
print("Чтобы восстановить бэкап напишите restore")
selector = str(input("Выберите версию: "))
if selector == "restore":
os.chdir(minedir)
shutil.rmtree(f"{minedir}/mods")
os.chdir(programdir)
shutil.copytree(f"{programdir}/backup", f"{minedir}/pySelector/")
os.chdir(minedir)
p = Path(f"{minedir}/pySelector/")
p.rename("mods")
print("Бэкап восстановлен")
return "restok"
elif selector == "q" or selector == "quit":
return "stop_soft"
else:
selector = int(selector)
if selector == 0:
return "stop"
else:
a = vers.pop(selector - 1)
print("Выбрана версия " + a)
return a

def worker(version):
if version == "restok":
finish("normal")
elif version == "stop":
finish("error")
elif version == "stop_soft":
finish("normal")
else:
print("работаю..")
os.chdir(minedir)
shutil.rmtree(f"{programdir}/backup")
shutil.copytree(f"{minedir}/mods", f"{programdir}/backup")
shutil.rmtree(f"{minedir}/mods")
os.chdir(f"{programdir}/mods/")
shutil.copytree(f"{programdir}/mods/{version}", f"{minedir}/pySelector")
os.chdir(minedir)
p = Path(f"{minedir}/pySelector/")
p.rename("mods")
print("готово")
finish("normal")

0 comments on commit 3a0b2e7

Please sign in to comment.