fix(monitor): 作品栏只显示每个博主最新的 N 条(库里一条不删)
原来 max_notes_count **只**被当作每轮拉取的条数,落库时从不删任何东西,列表也不按 博主截断。于是超出的作品会一直堆着(21、22、23…),而掉出采集窗口的那些**再也采不到** —— 指标冻在最后一次,看上去却和正在跟踪的作品一模一样。界面上那句「仅显示每个博主 最新的 N 条作品」是假的,后端根本没做这个截断。 现在界面按窗口显示:库是账本,界面是窗口。趋势图、报表、**导出**读的仍然是全量 —— 导出是数据,少几行就是在丢东西,所以 `windowed` 默认关,只有 /monitor/notes 打开。 窗口按**发布时间**排序,不是「最后一次见到」:降级路径(作品列表被风控挡住)会把所有 已知作品都刷一遍,那样每个人的 last_seen_at 都一样,按它开窗等于没开。解析不出日期的 作品**永不隐藏** —— 因为读不出日期就让一条作品消失,比多显示一条糟得多。 只对博主模式开窗;笔记模式的目标本身就是一件作品。
This commit is contained in:
@@ -133,7 +133,11 @@ async def list_notes(
|
||||
):
|
||||
async with get_session() as session:
|
||||
return {
|
||||
"notes": await service.list_notes(session, task_id, only_new, limit, platform),
|
||||
# windowed=True:作品栏是「正在盯的窗口」,每个博主只画最新 max_notes_count 条。
|
||||
# 库里的全量还在,趋势图/报表/导出读的都是它。
|
||||
"notes": await service.list_notes(
|
||||
session, task_id, only_new, limit, platform, windowed=True
|
||||
),
|
||||
# 博主**单独给一份**,而不是让前端从作品里推。作品推不出「一条作品都没有的
|
||||
# 博主」—— 那正是最该显示的一类(还在涨粉,只是最近没发)。
|
||||
"creators": await service.list_creators(session, task_id, platform),
|
||||
|
||||
Reference in New Issue
Block a user