|
import json |
|
from urllib.parse import quote |
|
|
|
from fastapi import Request |
|
from fastapi.responses import HTMLResponse |
|
|
|
from app import app, templates |
|
from gateway.login import login_html |
|
from utils.kv_utils import set_value_for_key |
|
|
|
with open("templates/chatgpt_context.json", "r", encoding="utf-8") as f: |
|
chatgpt_context = json.load(f) |
|
|
|
|
|
@app.get("/", response_class=HTMLResponse) |
|
async def chatgpt_html(request: Request): |
|
token = request.query_params.get("token") |
|
if not token: |
|
token = request.cookies.get("token") |
|
if not token: |
|
return await login_html(request) |
|
|
|
if len(token) != 45 and not token.startswith("eyJhbGciOi"): |
|
token = quote(token) |
|
|
|
user_remix_context = chatgpt_context.copy() |
|
set_value_for_key(user_remix_context, "user", {"id": "user-chatgpt"}) |
|
set_value_for_key(user_remix_context, "accessToken", token) |
|
|
|
response = templates.TemplateResponse("chatgpt.html", {"request": request, "remix_context": user_remix_context}) |
|
response.set_cookie("token", value=token, expires="Thu, 01 Jan 2099 00:00:00 GMT") |
|
return response |
|
|