diff options
Diffstat (limited to '')
-rw-r--r-- | g4f/gui/server/website.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/g4f/gui/server/website.py b/g4f/gui/server/website.py new file mode 100644 index 00000000..d0c56c20 --- /dev/null +++ b/g4f/gui/server/website.py @@ -0,0 +1,40 @@ +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(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
\ No newline at end of file |