cca / gateway /chatgpt.py
sanbo
update sth. at 2025-01-20 14:08:58
08ca036
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