Add regex-based path preprocessing for playlist sync
This commit is contained in:
+30
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user