Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import json
- import os
- import wget
- import zipfile
- def separator():
- print(f"{'_' * 50}")
- home_url = "https://mods.vintagestory.at"
- mod_api = "http://mods.vintagestory.at/api/mod"
- f = open(".\\modsdir.txt", "r")
- if f.read() == "":
- f.close()
- f = open(".\\modsdir.txt", "w")
- mods_dir = input("What is your mod directory?")
- f.write(mods_dir)
- f.close()
- f.close()
- f = open(".\\modsdir.txt", "r")
- modpath = f.read()
- f.close()
- path_out = ".\\output"
- if not os.path.isdir(path_out):
- os.mkdir(path_out)
- print("Creating output directory")
- modlist = os.listdir(modpath)
- mod_info_list = []
- print("Mods in your folder: \n")
- for mod in modlist:
- # Get modinfo.json data inside local mod-zipfile
- if mod.endswith(".zip"):
- get_zip = zipfile.ZipFile(os.path.join(modpath, mod), mode="r")
- with get_zip.open("modinfo.json", mode="r") as mod_info:
- mod_info_content = mod_info.read().decode("utf-8")
- print(mod_info_content)
- try:
- mod_info_json = json.loads(mod_info_content)
- if 'name' in mod_info_json:
- mod_info_list.append(mod_info_json)
- print(mod_info_json["name"])
- else:
- print("Schlüssel 'name' wurde in mod_info_json nicht gefunden")
- except json.decoder.JSONDecodeError as e:
- print(f"Error parsing JSON for {mod}: {e}")
- separator()
- print("\nChecking for updates...\n")
- for mod in mod_info_list:
- if 'modid' in mod: # Check if 'modid' key exists
- api_req = mod_api + "/" + str(mod["modid"])
- # Get new mod info data from database to check version
- mod_res = requests.get(api_req, headers={"Accept": "application/json"})
- res_modinfo = mod_res.json()["mod"]
- releases = res_modinfo["releases"][0]
- if releases["modversion"] != mod["version"]:
- separator()
- print("\n" + mod["name"] + " hat eine neuere Version!")
- print("Herunterladen von:")
- file_id = releases["fileid"]
- downlink = home_url + "/download?fileid=" + str(file_id)
- print(downlink)
- response = wget.download(downlink, out=path_out)
- print("\nFertig! Überprüfen Sie den Ausgabeordner\n")
- separator()
- else:
- print(mod["name"] + " ist die neueste Version!")
- else: # Key 'modid' does not exist
- print(f"modid key does not exist for mod: {mod['name']}")
- separator()
- input("\n\nDer Download ist abgeschlossen, drücken Sie die Eingabetaste, um zu beenden!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement