# Windows path: os.getenv('LOCALAPPDATA')/Programs/PrismLauncher/prismlauncher.exe # Windows instance path: os.getenv('APPDATA')/PrismLauncher/instances # Linux instance path: .local/share/PrismLauncher/instances from ftplib import FTP import os import io import json import tempfile import subprocess def main(): instance_name = "Familycraft Season 7" prism_command = "prismlauncher" prism_instance_path = os.getenv("HOME")+"/.local/share/PrismLauncher/instances" if os.name == 'nt': prism_command = os.getenv('LOCALAPPDATA')+"/Programs/PrismLauncher/prismlauncher.exe" prism_instance_path = os.getenv("APPDATA")+"/PrismLauncher/instances" ftp = FTP("gitea.piwalker.net") ftp.login() bio = io.BytesIO() ftp.retrbinary("RETR versions.json", bio.write) bio.seek(0) versions = json.load(bio) bio.close() version = "0.0.0" if os.path.exists(prism_instance_path+"/"+instance_name+"/version.txt"): with open(prism_instance_path+"/"+instance_name+"/version.txt", 'r') as fp: version = fp.readline() if version != versions[len(versions)-1]["Version"]: #version = versions[len(versions)-1]["Version"] # Update Modpack with tempfile.TemporaryDirectory() as temp_dir: modpack = open(os.path.join(temp_dir, instance_name+".mrpack"), 'wb') ftp.retrbinary("RETR "+versions[len(versions)-1]["File"], modpack.write) modpack.close() subprocess.run([prism_command, '-I', modpack.name]) #with open(prism_instance_path+"/"+instance_name+"/version.txt", 'w') as fp: # fp.seek(0) # fp.truncate() # fp.write(version) subprocess.run([prism_command, '-l', instance_name]) if __name__ == "__main__": main();