Compare commits
No commits in common. "main" and "1.0" have entirely different histories.
13
README.md
13
README.md
@ -1,13 +1,2 @@
|
|||||||
# ModpackUpdate
|
# ModpackUpdate
|
||||||
Программа которая обновляет моды Minecraft на новые версии, используя Modrinth и Curseforge
|
Программа которая обновляет моды Minecraft, с помощью поиска на Modrinth и Curseforge
|
||||||
|
|
||||||
## Использование
|
|
||||||

|
|
||||||
1. Выберите версию, на которую будут обновлены моды
|
|
||||||
2. Выберите ваш текущий загрузчик (Fabric/Forge)
|
|
||||||
3. Выберите загрузчик на котором должны быть новые моды <br>
|
|
||||||
${\color{silver}(к\spaceпримеру,\spaceс\spaceпомощью\spaceэтого\spaceможно\spaceперейти\spaceс\space Fabric\spaceна\space Forge,}$<br>
|
|
||||||
${\color{silver}\spaceно\spaceесли\spaceвам\spaceэто\spaceне\spaceнадо,\spaceуказывайте\spaceтекущий\spaceзагрузчик)}$
|
|
||||||
4. Выберите моды которые надо обновить
|
|
||||||
5. Выберите папку куда надо записать обновленные моды
|
|
||||||
6. Нажмите на кнопку начать и дождитесь конца загрузки
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
@echo off
|
|
||||||
python -m nuitka --onefile --include-data-file=favicon.ico=favicon.ico --windows-icon-from-ico=favicon.ico --enable-plugin=tk-inter main.py
|
|
||||||
explorer /select,"main.exe"
|
|
BIN
favicon.ico
BIN
favicon.ico
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
51
main.py
51
main.py
@ -25,6 +25,7 @@ def get_name(path,loader):
|
|||||||
return toml.loads(zip.read("META-INF/mods.toml").decode("utf8"))["mods"][0]["displayName"]
|
return toml.loads(zip.read("META-INF/mods.toml").decode("utf8"))["mods"][0]["displayName"]
|
||||||
elif loader == "fabric":
|
elif loader == "fabric":
|
||||||
return json.loads(zip.read("fabric.mod.json"))["name"]
|
return json.loads(zip.read("fabric.mod.json"))["name"]
|
||||||
|
return None
|
||||||
def find_mod(name,version,loader,regex_name):
|
def find_mod(name,version,loader,regex_name):
|
||||||
data = None
|
data = None
|
||||||
md = _find_modrinth(name,version,loader,regex_name)
|
md = _find_modrinth(name,version,loader,regex_name)
|
||||||
@ -49,6 +50,7 @@ def _find_modrinth(query,version,loader,regex_query):
|
|||||||
params={"loaders":f'["{loader}"]',"game_versions":f'["{version}"]'}).json()
|
params={"loaders":f'["{loader}"]',"game_versions":f'["{version}"]'}).json()
|
||||||
if len(resp) > 0 and len(resp[0]["files"]) > 0:
|
if len(resp) > 0 and len(resp[0]["files"]) > 0:
|
||||||
return [resp[0]["files"][0]["filename"],requests.get(resp[0]["files"][0]["url"]).content]
|
return [resp[0]["files"][0]["filename"],requests.get(resp[0]["files"][0]["url"]).content]
|
||||||
|
return None
|
||||||
def _find_curseforge(query,version,loader,regex_query):
|
def _find_curseforge(query,version,loader,regex_query):
|
||||||
resp = requests.get("https://api.curseforge.com/v1/mods/search",
|
resp = requests.get("https://api.curseforge.com/v1/mods/search",
|
||||||
headers={"x-api-key": "$2a$10$WldWeyy9nRXLI9Dbjyr7UuES2Dy9fvKbBfMmQHUwHWNR8daJA2FI.","Accept":"application/json"},
|
headers={"x-api-key": "$2a$10$WldWeyy9nRXLI9Dbjyr7UuES2Dy9fvKbBfMmQHUwHWNR8daJA2FI.","Accept":"application/json"},
|
||||||
@ -65,6 +67,7 @@ def _find_curseforge(query,version,loader,regex_query):
|
|||||||
params={"modLoaderType":loader.title(),"gameVersion":version}).json()["data"]
|
params={"modLoaderType":loader.title(),"gameVersion":version}).json()["data"]
|
||||||
if len(files) > 0:
|
if len(files) > 0:
|
||||||
return [files[0]["fileName"],requests.get(files[0]["downloadUrl"]).content]
|
return [files[0]["fileName"],requests.get(files[0]["downloadUrl"]).content]
|
||||||
|
return None
|
||||||
|
|
||||||
window = Tk()
|
window = Tk()
|
||||||
window.title("ModpackUpdate")
|
window.title("ModpackUpdate")
|
||||||
@ -112,10 +115,7 @@ def install_fabric(version):
|
|||||||
path = temporaryFilename(suffix=".jar")
|
path = temporaryFilename(suffix=".jar")
|
||||||
with open(path,"wb") as f:
|
with open(path,"wb") as f:
|
||||||
f.write(requests.get("https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.11.2/fabric-installer-0.11.2.jar").content)
|
f.write(requests.get("https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.11.2/fabric-installer-0.11.2.jar").content)
|
||||||
os.system("start cmd /c java -jar "+path+" client -mcversion "+version)
|
os.system("java -jar "+path+" client -mcversion "+version)
|
||||||
|
|
||||||
def get_installer_fabric(version):
|
|
||||||
return "0.11.2"
|
|
||||||
|
|
||||||
def install_forge(version):
|
def install_forge(version):
|
||||||
url = {
|
url = {
|
||||||
@ -145,35 +145,7 @@ def install_forge(version):
|
|||||||
path = temporaryFilename(suffix=".jar")
|
path = temporaryFilename(suffix=".jar")
|
||||||
with open(path,"wb") as f:
|
with open(path,"wb") as f:
|
||||||
f.write(requests.get(url).content)
|
f.write(requests.get(url).content)
|
||||||
os.system("start javaw -jar "+path)
|
os.system("java -jar "+path)
|
||||||
|
|
||||||
def get_installer_forge(version):
|
|
||||||
versions = {
|
|
||||||
'1.20.1':"47.1.0",
|
|
||||||
'1.20':"46.0.14",
|
|
||||||
'1.19.4':"45.1.0",
|
|
||||||
'1.19.3':"44.1.0",
|
|
||||||
'1.19.2':"43.2.0",
|
|
||||||
'1.19.1':"42.0.9",
|
|
||||||
'1.19':"41.1.0",
|
|
||||||
'1.18.2':"40.2.0",
|
|
||||||
'1.18.1':"39.1.0",
|
|
||||||
'1.18':"38.0.17",
|
|
||||||
'1.17.1':"37.1.1",
|
|
||||||
'1.16.5':"36.2.34",
|
|
||||||
'1.16.4':"35.1.4",
|
|
||||||
'1.16.3':"34.1.0",
|
|
||||||
'1.16.2':"33.0.61",
|
|
||||||
'1.16.1':"32.0.108",
|
|
||||||
'1.15.2':"31.2.57",
|
|
||||||
'1.15.1':"30.0.51",
|
|
||||||
'1.15':"29.0.4",
|
|
||||||
'1.14.4':"28.2.26",
|
|
||||||
'1.14.3':"27.0.60",
|
|
||||||
'1.14.2':"26.0.63"
|
|
||||||
}
|
|
||||||
if version in versions:
|
|
||||||
return versions[version]
|
|
||||||
|
|
||||||
def start_modsupdate():
|
def start_modsupdate():
|
||||||
global pb,old_loader,loader,folder,files,versions,window,btn_start
|
global pb,old_loader,loader,folder,files,versions,window,btn_start
|
||||||
@ -262,18 +234,9 @@ def start_modsupdate():
|
|||||||
Button(resp_win, text='Открыть папку', command=open_folder, relief=FLAT).place(x=10,y=y+30)
|
Button(resp_win, text='Открыть папку', command=open_folder, relief=FLAT).place(x=10,y=y+30)
|
||||||
y += 35
|
y += 35
|
||||||
if newerModLoader == "forge":
|
if newerModLoader == "forge":
|
||||||
ins = get_installer_forge(version)
|
Button(resp_win, text='Установить Forge', command=lambda:install_forge(version), relief=FLAT).place(x=10,y=y+30)
|
||||||
if not (not ins):
|
|
||||||
Button(resp_win, text='Установить Forge '+version+" "+ins,
|
|
||||||
command=lambda:install_forge(version),
|
|
||||||
relief=FLAT).place(x=10,y=y+30)
|
|
||||||
elif newerModLoader == "fabric":
|
elif newerModLoader == "fabric":
|
||||||
ins = get_installer_fabric(version)
|
Button(resp_win, text='Установить Fabric', command=lambda:install_fabric(version), relief=FLAT).place(x=10,y=y+30)
|
||||||
if not (not ins):
|
|
||||||
Button(resp_win,
|
|
||||||
text='Установить Fabric '+version+" "+ins,
|
|
||||||
command=lambda:install_fabric(version),
|
|
||||||
relief=FLAT).place(x=10,y=y+30)
|
|
||||||
|
|
||||||
resp_win.geometry("350x"+str(y+90))
|
resp_win.geometry("350x"+str(y+90))
|
||||||
resp_win.minsize(350,y+70)
|
resp_win.minsize(350,y+70)
|
||||||
|
Loading…
Reference in New Issue
Block a user