diff options
Diffstat (limited to 'util.py')
-rw-r--r-- | util.py | 32 |
1 files changed, 19 insertions, 13 deletions
@@ -47,9 +47,9 @@ def update_self(): global config base_url = config["pack"]["pack_base_url"].strip("/") + "/" - download_file(base_url + "pack.ini", "pack.ini") - download_file(base_url + "pack-lock.ini", "pack-lock.ini") - download_file(base_url + "icon.png", "icon.png") + download_text_file(base_url + "pack.ini?inline=false", "pack.ini") + download_text_file(base_url + "pack-lock.ini?inline=false", "pack-lock.ini") + download_file(base_url + "icon.png?inline=false", "icon.png") pack_lock = RawConfigParser() pack_lock.read(["pack-lock.ini"]) @@ -91,14 +91,25 @@ def find_jre(): return "C:\\Program Files (x86)\\Minecraft Launcher\\runtime\\jre-x64\\java.exe" raise RuntimeError("Unable to detect an installed JRE. Please install Java in order to use modpackman.") + def download_file(url, destination): """ - given a url, performs a requests request to get the remote object - and write it to destination + Given a url, performs a requests request to get the remote object + and write it to destination. + Note that this only works on binary files. """ with open(destination, "wb") as f: - dl = requests.get(url, stream=True) - shutil.copyfileobj(dl.raw, f) + with requests.get(url, stream=True) as dl: + shutil.copyfileobj(dl.raw, f) + +def download_text_file(url, destination): + """ + Given the URL to a text file, download it to the file named + by `destination`. Note that this only works for text files, not binary files. + """ + with open(destination, "w") as f: + f.write(requests.get(url).text) + # take a string and only keep filename-friendly parts def sanitize_text(text): @@ -111,6 +122,7 @@ def sanitize_text(text): sanitized += replacement_map[char] return sanitized + def generate_base64_icon(filename): with open(filename, "rb") as f: return "data:image/png;base64," + base64.b64encode(f.read()).decode("utf8") @@ -132,12 +144,6 @@ def read_file(fil): return strings -def get_version_from_file(fil): - with open(fil) as f: - for line in f: - if line.strip().split()[0] == "#VERSION": - return int(line.strip().split()[1]) - return 0 def game_version_from_string(string): if string is not None: |