feat: 提交热榜评论分析工具 MVP 基线
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import json
|
||||
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
|
||||
templates = Jinja2Templates(directory="app/templates")
|
||||
|
||||
|
||||
def status_badge_config(status: str) -> tuple[str, str]:
|
||||
config = {
|
||||
"pending": ("等待中", "bg-secondary"),
|
||||
"running": ("运行中", "bg-warning text-dark"),
|
||||
"success": ("已完成", "bg-success"),
|
||||
"failed": ("失败", "bg-danger"),
|
||||
}
|
||||
return config.get(status, ("未知", "bg-secondary"))
|
||||
|
||||
|
||||
def platform_label(platform: str) -> str:
|
||||
return {"xiaohongshu": "小红书", "douyin": "抖音"}.get(platform, platform)
|
||||
|
||||
|
||||
def from_json_filter(value: str | None) -> list:
|
||||
try:
|
||||
parsed = json.loads(value) if value else []
|
||||
except (TypeError, json.JSONDecodeError):
|
||||
return []
|
||||
return parsed if isinstance(parsed, list) else []
|
||||
|
||||
|
||||
templates.env.globals["status_badge_config"] = status_badge_config
|
||||
templates.env.filters["platform_label"] = platform_label
|
||||
templates.env.filters["from_json"] = from_json_filter
|
||||
Reference in New Issue
Block a user