Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 23 additions & 7 deletions module/server/app.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,38 @@
# This Python file uses the following encoding: utf-8
# @author runhey
# github https://github.com/runhey
from pathlib import Path

import argparse
import json
from contextlib import asynccontextmanager
from pathlib import Path

import argparse
from starlette import status
from starlette.responses import JSONResponse
from fastapi import FastAPI, Request
from fastapi.encoders import jsonable_encoder
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
from starlette import status
from starlette.staticfiles import StaticFiles

from module.logger import logger
from module.server.home_router import home_app
from module.server.script_router import script_app
from module.server.tool_router import tool_app
from module.server.setting import State
from module.server.main_manager import mm
from starlette.staticfiles import StaticFiles


class ASCIIJSONResponse(JSONResponse):
"""Serialize non-ASCII characters as ``\\uXXXX`` for proxy compatibility."""

def render(self, content) -> bytes:
encoded_content = jsonable_encoder(content)
return json.dumps(
encoded_content,
ensure_ascii=True,
allow_nan=False,
indent=None,
separators=(",", ":"),
Comment thread
sourcery-ai[bot] marked this conversation as resolved.
).encode("utf-8")


@asynccontextmanager
Expand All @@ -31,6 +46,7 @@ async def lifespan(app: FastAPI):
description='OAS web service',
version='0.0.0',
lifespan=lifespan,
default_response_class=ASCIIJSONResponse,
)

app.add_middleware(
Expand Down Expand Up @@ -70,7 +86,7 @@ async def global_exception_handler(request: Request, exc: Exception):

message = ', '.join(str(arg) for arg in exc.args) if exc.args else str(exc)

return JSONResponse(
return ASCIIJSONResponse(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
content={
'message': message
Expand Down