From 6cf1558efb655db0d27166d33faebccc3522c2e2 Mon Sep 17 00:00:00 2001 From: Eric Lay Date: Wed, 27 Mar 2024 22:39:22 -0500 Subject: [PATCH] still refactoring --- app.py | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/app.py b/app.py index d1441ee..809eb32 100644 --- a/app.py +++ b/app.py @@ -3,46 +3,41 @@ import random from flask import Flask, send_from_directory, session app = Flask(__name__) - -# Implement count to load specific page on Nth load -# Using session['requests'] -app.secret_key = '420-69' - -# Script must run from root dir containing all websites dirs -# OR change the ROOT_DIR path below :) -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))] +app.secret_key = '420-69-LOL' # For using client side session cookies # Site choosing logic def current_website_dir(): - session.pop('website_dir', None) - match session['requests']: + # 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')) case 6: session['website_dir'] = (os.path.join(ROOT_DIR, 'Escape')) - session.pop('requests', None) + session.pop('requests', None) # Reset request count case _: - try: - WEBSITE_DIRS.remove(os.path.join(ROOT_DIR, 'Escape')) - WEBSITE_DIRS.remove(os.path.join(ROOT_DIR, 'Marvel')) - except (ValueError, IndexError) as e: - pass + for dir in WEBSITE_DIRS: + match dir: # Remove request specific pages + case 'Escape': + WEBSITE_DIRS.remove(dir) + case 'Marvel': + WEBSITE_DIRS.remove(dir) session['website_dir'] = random.choice(WEBSITE_DIRS) -# Make static files available -@app.route('/', methods=['GET']) +@app.route('/', methods=['GET']) # Make static files available def static_proxy(filename): return send_from_directory(session['website_dir'], filename) -# Serve site index.html -@app.route('/', methods=['GET']) +@app.route('/', methods=['GET']) # Serve site index.html def index(): - if 'requests' in session: + if 'requests' in session: # init requests count session['requests'] += 1 else: session['requests'] = 1 - current_website_dir() + current_website_dir() # Choose website dir return send_from_directory(session['website_dir'], 'index.html') if __name__ == "__main__":