aboutsummaryrefslogtreecommitdiff
path: root/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'util.py')
-rw-r--r--util.py32
1 files changed, 19 insertions, 13 deletions
diff --git a/util.py b/util.py
index d76eb76..e904429 100644
--- a/util.py
+++ b/util.py
@@ -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: