import json from flask import Flask, request, send_file app = Flask(__name__) @app.route("/") def mainPage(): return open("main.html").read() @app.route("/") def game(path): if "Discord" not in str(request.user_agent): return mainPage() gameName = request.path.split("/")[1] if gameName == "img": print("returning image", "images/" + request.path.split("/")[-1].replace(".", "")[:-3] + ".png") return send_file("images/" + request.path.split("/")[-1].replace(".", "")[:-3] + ".png", mimetype="image/png") gamecode = request.args.get('code')[:-1] print(gameName) return buildHTML(gamecode,gameName) def buildHTML(gamecode, gameName): with open("stories/" + gameName.replace(".", "") + ".json", "r") as f: print("\n\n") story = json.loads(f.read()) nodeName = "start" for action in gamecode: nodeName = story[nodeName]["choices"][int(action) - 1]["next"] print(action, nodeName) info = story[nodeName] currText = info["text"] choices = "" for i in range(len(info["choices"])): choice = info["choices"][i] choiceText = f"{(i + 1) * 10}: " + choice["text"].replace('"', '\\"') + "\\n" choices += f"""{{ "type": 10, "content": "{choiceText}" }},""" color = story["SPECIAL-color"] if "SPECIAL-color" in story.keys() else "0" print(str(request.user_agent) + "\n",currText,choices,color) with open('page.html', "r") as page: page = page.read() page = page.replace("{{CurrText}}", currText.replace('"', '\\"')) page = page.replace("{{Choices}}", choices) page = page.replace("{{Color}}", color) page = page.replace("{{StoryName}}", gameName.replace(".", "")) print(page) return page if __name__ == '__main__': app.run(debug=True, port=1387)