Spaces:
Running
Running
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 | |