feat(routes): 迁移播客查询端点(parse/programs/search/hot)

- web/routers/podcast.py:四个播客端点迁至 /api/v1/*,与 Flask 逐字段对齐
- podcast_api 仍为同步模块,用 asyncio.to_thread 包装:阻塞上游不占事件循环,
  行为与 Flask 一致
- 单集解析附音频直链(音质自动降级)+ 解析操作记共享 REQ_LOG

契约奇偶校验:19 项全 OK(新增 podcast hot/search/programs);
play_count 加入易变字段(上游实时收听计数每次请求都变,非契约漂移)。

验证:pytest 46/46;ruff All checks passed;pyright 0 errors;冒烟 10/10。
This commit is contained in:
snowy-yang committed 2026-09-26 01:16:53 +08:00
1 parent 6c3181341b
commit f45a9ccd3a
2 files changed
+201

No files matched your search

+2
View File
@@ -23,6 +23,7 @@ from web.errors import install_error_handlers
from web.middleware import ResponseHygieneMiddleware
from web.routers import account as account_router
from web.routers import music as music_router
from web.routers import podcast as podcast_router
from web.routers import site as site_router
from web.routers import system as system_router
@@ -71,6 +72,7 @@ def create_app(serve_flask_fallback: bool = False) -> FastAPI:
app.include_router(site_router.router, prefix='/api/v1', tags=['site'])
app.include_router(music_router.router, prefix='/api/v1', tags=['music'])
app.include_router(account_router.router, prefix='/api/v1', tags=['account'])
app.include_router(podcast_router.router, prefix='/api/v1', tags=['podcast'])
install_error_handlers(app)