Allow heading tags (h1-h6) in ContentSanitizer so news editor headings render

This commit is contained in:
2026-06-04 07:52:57 +02:00
parent 0b33a1b074
commit 15870ddb1f
191 changed files with 15453 additions and 1786 deletions

View File

@@ -0,0 +1,64 @@
from __future__ import annotations
from typing import Any, Literal
from urllib.parse import urlparse
from pydantic import BaseModel, ConfigDict, Field, field_validator
SUPPORTED_MODES = {"standard", "artwork", "photo", "illustration"}
SUPPORTED_FORMATS = {"webp", "png", "jpg"}
SUPPORTED_SCALES = {2, 4}
class UpscaleRequest(BaseModel):
job_id: int = Field(..., gt=0)
source_url: str
scale: Literal[2, 4]
mode: Literal["standard", "artwork", "photo", "illustration"]
output_format: Literal["webp", "png", "jpg"] = "webp"
@field_validator("source_url")
@classmethod
def validate_source_url(cls, value: str) -> str:
candidate = value.strip()
if candidate == "":
raise ValueError("source_url is required")
if candidate.startswith(("/", "./", "../", "file://")):
raise ValueError("source_url must be an http or https URL")
parsed = urlparse(candidate)
if parsed.scheme not in {"http", "https"} or parsed.netloc == "":
raise ValueError("source_url must be an http or https URL")
return candidate
class HealthResponse(BaseModel):
status: str
service: str
engine: str
device: str
models_loaded: bool
max_input_width: int
max_input_height: int
max_output_width: int
max_output_height: int
realesrgan: dict[str, Any] | None = None
class UpscaleResponse(BaseModel):
success: bool
job_id: int
output_url: str | None = None
output_base64: str | None = None
width: int
height: int
filesize: int
mime: str
metadata: dict[str, Any] = Field(default_factory=dict)
model_config = ConfigDict(extra="forbid")