From 6a4e3cb9e3ee2ed94e1bce3dee6ac8c11b9d5844 Mon Sep 17 00:00:00 2001 From: nercone-dev Date: Mon, 27 Apr 2026 00:47:25 +0900 Subject: [PATCH] -- --- pyproject.toml | 1 + src/nercone_website/middleware.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 8e40db8..c111f6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,7 @@ version = "1.0.0" requires-python = ">=3.8" dependencies = [ "resvg-py", + "scour", "rjsmin", "rcssmin", "mistune", diff --git a/src/nercone_website/middleware.py b/src/nercone_website/middleware.py index 7b3638d..3f887a8 100644 --- a/src/nercone_website/middleware.py +++ b/src/nercone_website/middleware.py @@ -1,6 +1,7 @@ import rjsmin import rcssmin import subprocess +from scour import scour from fastapi import Response from fastapi.responses import PlainTextResponse from starlette.types import Scope, ASGIApp, Receive, Send @@ -133,6 +134,15 @@ class Middleware: response.body = rjsmin.jsmin(response.body.decode("utf-8", errors="replace")).encode("utf-8") except Exception: pass + elif "image/svg+xml" in content_type: + try: + options = scour.generateDefaultOptions() + options.newlines = True + options.shorten_ids = True + options.strip_comments = True + response.body = scour.scourString(response.body.decode("utf-8", errors="replace"), options).encode("utf-8") + except Exception: + pass response.headers["Content-Length"] = str(len(response.body)) await response(scope, receive, send)