allow webhost handling of APMC files

This commit is contained in:
Fabian Dill
2021-05-16 01:16:51 +02:00
parent 685de847c4
commit de31fc320c
5 changed files with 40 additions and 5 deletions

View File

@@ -1,5 +1,7 @@
import zipfile
import lzma
import json
import base64
import MultiServer
from flask import request, flash, redirect, url_for, session, render_template
@@ -43,11 +45,18 @@ def uploads():
yaml_data = parse_yaml(lzma.decompress(data).decode("utf-8-sig"))
if yaml_data["version"] < 2:
return "Old format cannot be uploaded (outdated .apbp)", 500
metadata = yaml_data["meta"]
slots.add(Slot(data=data, player_name=metadata["player_name"],
player_id=metadata["player_id"],
game="A Link to the Past"))
elif file.filename.endswith(".apmc"):
data = zfile.open(file, "r").read()
metadata = json.loads(base64.b64decode(data).decode("utf-8"))
slots.add(Slot(data=data, player_name=metadata["player_name"],
player_id=metadata["player_id"],
game="Minecraft"))
elif file.filename.endswith(".txt"):
spoiler = zfile.open(file, "r").read().decode("utf-8-sig")
elif file.filename.endswith(".archipelago"):