|
@ -10,6 +10,8 @@ from PIL import Image, ImageDraw, ImageFont |
|
|
import numpy as np |
|
|
import numpy as np |
|
|
from itertools import zip_longest |
|
|
from itertools import zip_longest |
|
|
import collections |
|
|
import collections |
|
|
|
|
|
import random |
|
|
|
|
|
import string |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app = Flask(__name__, static_url_path='', static_folder="static", template_folder="templates") |
|
|
app = Flask(__name__, static_url_path='', static_folder="static", template_folder="templates") |
|
@ -41,21 +43,32 @@ pathofwords = [] |
|
|
pathofnumbers = [] |
|
|
pathofnumbers = [] |
|
|
|
|
|
|
|
|
#VARS FOR THE SESSIONS |
|
|
#VARS FOR THE SESSIONS |
|
|
app.secret_key = 'your secret' |
|
|
# We don't want to store the secret key in git, but also don't really care what it is |
|
|
app.config['SESSION_TYPE'] = 'filesystem' |
|
|
# so generate it and store it to a file that's not in git: |
|
|
|
|
|
current_dir = os.path.dirname(os.path.realpath(__file__)) |
|
|
|
|
|
secret_key_file = os.path.join(current_dir, 'secret.key') |
|
|
|
|
|
if os.path.exists(secret_key_file): |
|
|
|
|
|
with open(secret_key_file, 'r') as fp: |
|
|
|
|
|
secret_key = fp.read() |
|
|
|
|
|
else: |
|
|
|
|
|
secret_key = ''.join(random.choice(string.ascii_lowercase) for i in range(100)) |
|
|
|
|
|
with open(secret_key_file, 'w') as fp: |
|
|
|
|
|
fp.write(secret_key) |
|
|
|
|
|
app.secret_key = secret_key |
|
|
|
|
|
#app.config['SESSION_TYPE'] = 'filesystem' # works only for flask-session (we use native flask cookie-sessions) |
|
|
|
|
|
|
|
|
|
|
|
def clearSession(): |
|
|
|
|
|
# Flask sessions are serialised into a cookie, so we cannot use the deque here |
|
|
|
|
|
session['wordpath'] = [] |
|
|
|
|
|
session['clicktime'] = [] |
|
|
|
|
|
session['id'] = [] |
|
|
|
|
|
session['veryfirstnow'] = datetime.now().isoformat() |
|
|
|
|
|
|
|
|
def setupSession(): |
|
|
def setupSession(): |
|
|
# session should be configured from within request context |
|
|
# session should be configured from within request context |
|
|
# so this function should be called on each request |
|
|
# so this function should be called on each request |
|
|
if 'wordpath' not in session: |
|
|
|
|
|
# Flask sessions are serialised into a cookie, so we cannot use the deque here |
|
|
|
|
|
session['wordpath'] = [] |
|
|
|
|
|
if 'clicktime' not in session: |
|
|
|
|
|
session['clicktime'] = [] |
|
|
|
|
|
if 'id' not in session: |
|
|
|
|
|
session['id'] = [] |
|
|
|
|
|
if 'veryfirstnow' not in session: |
|
|
if 'veryfirstnow' not in session: |
|
|
session['veryfirstnow'] = datetime.now().isoformat() |
|
|
clearSession() |
|
|
|
|
|
|
|
|
# preparing the index.json file for the navbar |
|
|
# preparing the index.json file for the navbar |
|
|
index_dict = {} |
|
|
index_dict = {} |
|
@ -125,6 +138,13 @@ def about(): |
|
|
|
|
|
|
|
|
return render_template('about.html') |
|
|
return render_template('about.html') |
|
|
|
|
|
|
|
|
|
|
|
@app.route('/clear') |
|
|
|
|
|
def clear(): |
|
|
|
|
|
# return to a refer if its set, default to root |
|
|
|
|
|
return_url = request.environ.get("HTTP_REFERER", '/') |
|
|
|
|
|
clearSession() |
|
|
|
|
|
return redirect(return_url) |
|
|
|
|
|
|
|
|
# @app.route('/all/') |
|
|
# @app.route('/all/') |
|
|
# def all(): |
|
|
# def all(): |
|
|
# thefile = listingfiles[positioninarray] |
|
|
# thefile = listingfiles[positioninarray] |
|
|