From 7e4e374f621d9d1c37f37ff6555e013cdb3b03a0 Mon Sep 17 00:00:00 2001 From: abc <98614666+xtekky@users.noreply.github.com> Date: Fri, 6 Oct 2023 19:52:17 +0100 Subject: ~ | new g4f GUI --- g4f/gui/server/website.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 g4f/gui/server/website.py (limited to 'g4f/gui/server/website.py') 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/': { + '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 \ No newline at end of file -- cgit v1.2.3