diff --git a/WebHostLib/downloads.py b/WebHostLib/downloads.py index 9b93b82c54..0704f5d0ec 100644 --- a/WebHostLib/downloads.py +++ b/WebHostLib/downloads.py @@ -78,6 +78,8 @@ def download_slot_file(room_id, player_id: int): fname = f"AP_{app.jinja_env.filters['suuid'](room_id)}_SP.apv6" elif slot_data.game == "Super Mario 64": fname = f"AP_{app.jinja_env.filters['suuid'](room_id)}_SP.apsm64ex" + elif slot_data.game == "Dark Souls III": + fname = f"AP_{app.jinja_env.filters['suuid'](room_id)}.json" else: return "Game download not supported." return send_file(io.BytesIO(slot_data.data), as_attachment=True, attachment_filename=fname) diff --git a/WebHostLib/templates/macros.html b/WebHostLib/templates/macros.html index 70b41fad9e..6ed2ca492a 100644 --- a/WebHostLib/templates/macros.html +++ b/WebHostLib/templates/macros.html @@ -43,6 +43,9 @@ {% elif patch.game in ["A Link to the Past", "Secret of Evermore", "Super Metroid", "SMZ3"] %} Download Patch File... + {% elif patch.game == "Dark Souls III" %} + + Download JSON File... {% else %} No file to download for this game. {% endif %} diff --git a/WebHostLib/upload.py b/WebHostLib/upload.py index e6b2c7de95..00825df47b 100644 --- a/WebHostLib/upload.py +++ b/WebHostLib/upload.py @@ -80,6 +80,11 @@ def upload_zip_to_db(zfile: zipfile.ZipFile, owner=None, meta={"race": False}, s slots.add(Slot(data=zfile.open(file, "r").read(), player_name=slot_name, player_id=int(slot_id[1:]), game="Ocarina of Time")) + elif file.filename.endswith(".json"): + _, seed_name, slot_id, slot_name = file.filename.split('.')[0].split('-', 3) + slots.add(Slot(data=zfile.open(file, "r").read(), player_name=slot_name, + player_id=int(slot_id[1:]), game="Dark Souls III")) + elif file.filename.endswith(".txt"): spoiler = zfile.open(file, "r").read().decode("utf-8-sig")