from flask import render_template, send_file, redirect from time import time from os import urandom import sys, os if getattr(sys, 'frozen', False): assets_folder = os.path.join(sys._MEIPASS, "client") else: assets_folder = "./../client" class Website: def __init__(self, app) -> None: self.app = app self.routes = { '/': { 'function': lambda: redirect('/chat'), 'methods': ['GET', 'POST'] }, '/chat/': { 'function': self._index, 'methods': ['GET', 'POST'] }, '/chat/': { 'function': self._chat, 'methods': ['GET', 'POST'] }, '/assets//': { 'function': self._assets, 'methods': ['GET', 'POST'] } } def _chat(self, conversation_id): if '-' not in conversation_id: return redirect('/chat') return render_template('index.html', chat_id = conversation_id) def _index(self): return render_template('index.html', chat_id = f'{urandom(4).hex()}-{urandom(2).hex()}-{urandom(2).hex()}-{urandom(2).hex()}-{hex(int(time() * 1000))[2:]}') def _assets(self, folder: str, file: str): try: return send_file(f"{assets_folder}/{folder}/{file}", as_attachment=False) except: return "File not found", 404