#!/usr/bin/python3 import zlib from main import * from flask import Flask, render_template, redirect, request, make_response from flask_session import Session app = Flask(__name__) # Configure session app.config["SESSION_PERMANENT"] = False app.config["SESSION_TYPE"] = "filesystem" Session(app) @app.route('/') def index(): return render_template("index.html") @app.route('/party', methods = ["GET","POST"]) def party(): if request.method == "GET": count = request.args.get("count", default=4, type=int) level = request.args.get("level", default=1, type=int) adv_party = returnParty(count, level) resp = make_response(render_template("party_sheet.html", adv_party=adv_party, count=count, level=level)) # make a cookie for each character # this took a while to figure out, json alone was too large, b64 encoded json was too large, but it turns out you can compress json as a cookie for character in adv_party.adventurers: cookie_string = str(character.id) char_json = json.dumps(character.get_json()) compressed = zlib.compress(char_json.encode()) cookie_data = base64.urlsafe_b64encode(compressed).decode() resp.set_cookie(cookie_string, cookie_data) return resp # return render_template("party_sheet.html", adv_party=adv_party, count=count, level=level) @app.route('/character', methods = ["GET","POST"]) def characters(): if request.method == "GET": c_id = request.args.get("id", default=0, type=int) character = returnCharacter(c_id) return render_template("character.html", character=character)