able to get compress JSON characters stored as cookies
This commit is contained in:
34
app.py
34
app.py
@@ -1,10 +1,17 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import zlib
|
||||
from main import *
|
||||
from flask import Flask, render_template, redirect, request
|
||||
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")
|
||||
@@ -13,10 +20,23 @@ def index():
|
||||
def party():
|
||||
if request.method == "GET":
|
||||
count = request.args.get("count", default=4, type=int)
|
||||
adv_party = returnParty(count)
|
||||
return render_template("party_sheet.html", adv_party=adv_party, count=count)
|
||||
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')
|
||||
@app.route('/character', methods = ["GET","POST"])
|
||||
def characters():
|
||||
adv_party = returnParty(1)
|
||||
return render_template("party_sheet.html", adv_party=adv_party)
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user