From b017af759316876f3606f145c41e665b631b7a95 Mon Sep 17 00:00:00 2001 From: kaireewu Date: Sun, 1 Nov 2026 11:37:40 +0800 Subject: [PATCH] docs: update readme for video/up split and follower backfill --- README.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e57088e..26fa794 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ | 粉丝追踪 | 可用(P1) | 每日记录咻咻满等配置 UP 的粉丝数。 | | 搜索发现与候选池 | 可用(P3) | 每小时搜索前 2 页,分类打分后写入候选池。 | | Telegram 通知与一键加入 | 可用(P3) | 收藏 / 忽略 / 拉黑按钮,`deal` + `sort` 回读校验。 | -| 本地数据看板 | 可用(P2) | 只读总览、榜单、视频/UP 详情、粉丝曲线、候选池和系统状态。 | +| 本地数据看板 | 可用(P2/P9) | 只读总览、视频榜、UP 主榜、内容效率、视频/UP 详情、粉丝曲线、数据说明、候选池和系统状态。 | ## 核心工作流 @@ -99,6 +99,10 @@ uv run python app.py snapshot # 忽略当日完成标记,重新采集 uv run python app.py snapshot --force +# 回填历史视频的 UP 粉丝数快照(第 9 轮,只补空值) +uv run python app.py backfill-followers +uv run python app.py backfill-followers --dry-run + # 分别为只读和写入账号扫码授权(默认 read) uv run python app.py auth uv run python app.py auth --account write @@ -167,12 +171,14 @@ uv run python app.py serve --preview --config data/preview/config.json ``` - 首页默认“最新动态”:今日增量、最新入库、最近发布、增长动态、热度速览、收藏夹容量与采集状态; -- 榜单支持综合热度、七项单项、互动率、播放增量/播放增速,以及 UP 聚合榜;UP 榜默认按**平均播放**排序,总播放和视频数放在排序项末尾;服务端筛选、排序和分页; -- 视频详情提供七项指标、单指标趋势、快照表和同 UP 对比;UP 页提供聚合趋势与单视频对比; +- 「视频」与「UP主」是两个独立入口:视频榜支持内容效率(默认)、综合热度、播放/投币/收藏/评论、互动率、播放增量/播放增速;UP 榜展示视频数、总时长、总播放、播放·小时、互动·小时等,可分别排序; +- 内容效率 = 播放 / 内容小时,只统计时长 ≥ 600 秒且发布满 14 天的视频;UP 内容效率用经验贝叶斯收缩,避免极小样本冲榜; +- 「数据说明」(`/about`)说明数据来源、发布时间/入库时间/快照日期、指标公式、筛选口径与已知局限,数值由 `/api/about` 动态读取; +- 视频详情提供分 P 数、七项指标、内容/互动效率、入库时粉丝数、单指标趋势、快照表和同 UP 对比;UP 页提供聚合趋势、单视频对比与入库时/当前粉丝数; - 粉丝页只绘制粉丝曲线,不叠加视频数据;支持 7/30/90/全部与自选日期,范围超过一年时按每月峰值日期聚合;最近记录默认 14 天并显示较上一成功日的增量; -- 前端使用 History API 的干净路径路由(`/rank`、`/video/{aid}`、`/up/{mid}`),不使用 `#/` hash;服务端对未知非静态路径回退 `index.html`; +- 前端使用 History API 的干净路径路由(`/videos`、`/ups`、`/video/{aid}`、`/up/{mid}`、`/about`),不使用 `#/` hash;旧 `/rank` 链接仍可用; - 候选池和系统状态只读展示,操作入口指向 Telegram/CLI; -- 首页、榜单、视频/UP、粉丝等页面和接口访客可见; +- 首页、视频榜、UP 主榜、视频/UP 详情、粉丝页和数据说明页对访客可见; - 配置 `web.auth_token` 后,“候选”和“系统”页面及其接口需要登录,启用登录页和 HttpOnly Cookie;访客的底部导航只显示公开页面; - 本地回环地址且未配置 token 时视为无鉴权,全部页面可见;非回环地址且未配置 token 时拒绝启动; - 所有业务接口只接受 GET,写方法返回 `405`; @@ -187,7 +193,8 @@ uv run python app.py serve --preview --config data/preview/config.json - 默认包含少量缺失日、3 条失败快照、4 条预览候选和 1 条预览黑名单; - `--profile first-day` 可生成保持“首次导入”状态的冷启动库; - 预览配置不包含真实 Cookie,端口 8081,Telegram 关闭; -- 重新生成前必须先停止预览服务,否则 Windows 会因数据库被占用而拒绝覆盖。 +- 重新生成前必须先停止预览服务,否则 Windows 会因数据库被占用而拒绝覆盖; +- 第 9 轮起本地不再保留 `data/app.db` 真实副本,重新生成请加 `--source data/backup/<真实库备份>`;预览库会自动升级到当前 schema(含 `up_profile` / `pages`)。 ### 粉丝历史回填(CSV)