diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 11bfce1..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 8d03ef8..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/ok.iml b/.idea/ok.iml
deleted file mode 100644
index 74d515a..0000000
--- a/.idea/ok.iml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/exceptor.py b/exceptor.py
new file mode 100644
index 0000000..7504939
--- /dev/null
+++ b/exceptor.py
@@ -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
diff --git a/filerpy.py b/filerpy.py
index 47518a6..7b578b2 100644
--- a/filerpy.py
+++ b/filerpy.py
@@ -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
\ No newline at end of file
+ result2 = os.getcwd()
+ return result2
+def version_define(version):
+ version = str(version)
+ unknown = "unknown"
+ if version == "" or version == " ":
+ return unknown
+ else:
+ return version
diff --git a/main.py b/main.py
index f5e47c2..f6d3c61 100644
--- a/main.py
+++ b/main.py
@@ -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())
\ No newline at end of file
+#please, check settings.txt before panic about program is not working
\ No newline at end of file
diff --git a/main.spec b/main.spec
deleted file mode 100644
index 8ce84c0..0000000
--- a/main.spec
+++ /dev/null
@@ -1,45 +0,0 @@
-# -*- mode: python ; coding: utf-8 -*-
-
-
-block_cipher = None
-
-
-a = Analysis(
- ['main.py'],
- pathex=[],
- binaries=[],
- datas=[],
- hiddenimports=[],
- hookspath=[],
- hooksconfig={},
- runtime_hooks=[],
- excludes=[],
- win_no_prefer_redirects=False,
- win_private_assemblies=False,
- cipher=block_cipher,
- noarchive=False,
-)
-pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
-
-exe = EXE(
- pyz,
- a.scripts,
- a.binaries,
- a.zipfiles,
- a.datas,
- [],
- name='main',
- debug=False,
- bootloader_ignore_signals=False,
- strip=False,
- upx=True,
- upx_exclude=[],
- runtime_tmpdir=None,
- console=True,
- disable_windowed_traceback=False,
- argv_emulation=False,
- target_arch=None,
- codesign_identity=None,
- entitlements_file=None,
- icon=['E:\\Загрузки\\ico.ico'],
-)
diff --git a/preparator.py b/preparator.py
new file mode 100644
index 0000000..767895e
--- /dev/null
+++ b/preparator.py
@@ -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()
+
diff --git a/settings.txt b/settings.txt
index a055f5f..03a711a 100644
--- a/settings.txt
+++ b/settings.txt
@@ -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
\ No newline at end of file
+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!!!!!
diff --git a/worker.py b/worker.py
new file mode 100644
index 0000000..9ade7ad
--- /dev/null
+++ b/worker.py
@@ -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")