Add regex-based path preprocessing for playlist sync

This commit is contained in:
Koha9
2025-11-25 21:33:04 +09:00
parent d7f00408e5
commit 0ad64216f5
7 changed files with 220 additions and 1 deletions
+30
View File
@@ -125,6 +125,7 @@ def _build_home_context(
"message": message,
"message_type": message_type,
"sync_result": sync_result,
"path_rules": server_config.path_rules,
}
@@ -191,6 +192,35 @@ async def trigger_sync(request: Request, mode: str = Form(...), local_path: str
return templates.TemplateResponse("home.html", context)
@app.post("/path-rules", response_class=HTMLResponse)
async def save_path_rules(
request: Request,
local_path: str = Form("playlist"),
pattern: list[str] | None = Form(None),
replacement: list[str] | None = Form(None),
):
patterns = pattern or []
replacements = replacement or []
cleaned_rules: list[dict[str, str]] = []
for pat, repl in zip(patterns, replacements):
pat = pat.strip()
if not pat:
continue
cleaned_rules.append({"pattern": pat, "replacement": repl or ""})
server_config.set_and_save_config(path_rules=cleaned_rules)
context = _build_home_context(
request,
local_path,
message="正则规则已保存并会在同步前应用。",
message_type="success",
)
return templates.TemplateResponse("home.html", context)
# 登录页面和处理
@app.get("/login", response_class=HTMLResponse)
async def login_page(request: Request):