Spaces:
Paused
Paused
| 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/<conversation_id>': { | |
| 'function': self._chat, | |
| 'methods': ['GET', 'POST'] | |
| }, | |
| '/assets/<folder>/<file>': { | |
| '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"./../client/{folder}/{file}", as_attachment=False) | |
| except: | |
| return "File not found", 404 | |