from flask import render_template, send_file, redirect from time import time from os import urandom 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(f'/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"./../client/{folder}/{file}", as_attachment=False) except: return "File not found", 404