diff --git a/app.py b/app.py index 17884fb..7dc3b86 100644 --- a/app.py +++ b/app.py @@ -2,46 +2,51 @@ import os import random from flask import Flask, send_from_directory, session, render_template -app = Flask(__name__) -app.config['TRAP_HTTP_EXCEPTIONS']=True -app.secret_key = '420-69-LOL' # For using client side session cookies +Fyourday = Flask(__name__) +Fyourday.config['TRAP_HTTP_EXCEPTIONS']=True +Fyourday.secret_key = '420-69-LOL' # For using client side session cookies +# Script must run from root dir containing all websites dirs +# OR change the ROOT_DIR path :) +ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) # Site choosing logic def current_website_dir(): - # Script must run from root dir containing all websites dirs - # OR change the ROOT_DIR path :) - ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) WEBSITE_DIRS = [name for name in os.listdir(ROOT_DIR) if not name.startswith('.') and os.path.isdir(os.path.join(ROOT_DIR, name))] - session.pop('website_dir', None) # Clear website_dir if exist match session['requests']: #Match Nth page request case 5: - session['website_dir'] = (os.path.join(ROOT_DIR, 'Marvel')) + session['website_dir'] = 'Marvel' case 6: - session['website_dir'] = (os.path.join(ROOT_DIR, 'Escape')) + session['website_dir'] = 'Escape' session.pop('requests', None) # Reset request count case _: for dir in WEBSITE_DIRS: match dir: # Remove request specific pages case 'Escape' | 'Marvel' | 'templates': WEBSITE_DIRS.remove(dir) - session['website_dir'] = random.choice(WEBSITE_DIRS) + website_choice = random.choice(WEBSITE_DIRS) + if 'website_dir' in session: # Don't serve templates back to back + while website_choice == session['website_dir']: + website_choice = random.choice(WEBSITE_DIRS) + session['website_dir'] = website_choice + else: + session['website_dir'] = website_choice -@app.route('/', methods=['GET']) # Make static files available +@Fyourday.route('/', methods=['GET']) # Make static files available def static_proxy(filename): - return send_from_directory(session['website_dir'], filename) + return send_from_directory(os.path.join(ROOT_DIR, session['website_dir']), filename) -@app.route('/', methods=['GET']) # Serve site index.html +@Fyourday.route('/', methods=['GET']) # Serve site index.html def index(): if 'requests' in session: # init requests count session['requests'] += 1 else: session['requests'] = 1 current_website_dir() # Choose website dir - return send_from_directory(session['website_dir'], 'index.html') + return send_from_directory(os.path.join(ROOT_DIR, session['website_dir']), 'index.html') -@app.errorhandler(Exception) # Handle uncaught exceptions per code type +@Fyourday.errorhandler(Exception) # Handle uncaught exceptions per code def handle_error(e): try: if e.code < 400: @@ -53,4 +58,4 @@ def handle_error(e): return render_template('500.html', error='500'),500 if __name__ == "__main__": - app.run() + Fyourday.run()