stefanfeng
|
169e798718
|
fix: 历史文章改为从新到旧顺序翻页,而非随机
修复原因:
- 需求要求从最新文章开始往旧的方向依次互动
- 原实现随机选页,导致每次跳到不同页,无法体现「从新到旧」
- 列表API返回的文章已按 createTime 降序排列(第1页最新)
新Phase 2逻辑:
- 计算总页数(最多10页)
- 用当前小时 % 总页数 决定起始页(同小时内分散到不同页)
- 若起始页为空,顺序往后再折回,直到找到有文章的页
- 在同一页内随机打散,保证同一时段不同用户不总是抢相同文章
- validate_article 校验,不够则从剩余补充
Phase 1(今日新文章)逻辑不变:
- 仍从第1页抓取当天文章,按 createTime 降序(新→旧)排列后校验返回
|
2026-04-07 13:24:42 +08:00 |
|
stefanfeng
|
053d22965c
|
feat: 调度优先今日新文章,无新文章时随机历史翻页
新调度规则:
Phase 1 — 今日新文章优先(从新到旧轮询):
- 从第1页开始拉取(接口返回最新优先)
- 只保留今日发布的文章,按 createTime 降序排列(新→旧)
- 最多扫描3页,发现非今日文章立即停止
- 对今日文章逐篇 validate_article 校验后返回
Phase 2 — 历史兜底(仅今日无新文章时触发):
- 随机翻 1~10 页历史
- 热度+新鲜度加权采样(commentNum×3 + praiseNum×2 + readNum)
- validate_article 校验后返回
两阶段均包含:
- 本人发布文章过滤
- 静态+运行时无效ID过滤
- 文章有效性校验(不可开/正文<100字自动加入缓存黑名单)
|
2026-04-03 11:33:31 +08:00 |
|
stefanfeng
|
e18c241bf0
|
feat: 文章有效性校验,过滤不可开/字数<100的文章
新增 validate_article() 方法:
- 调用 GET /news/{id} 接口验证文章是否存在(code≠0 则无效)
- 去除 HTML 标签后统计正文字数,< 100 字则过滤
- 运行时缓存 _invalid_ids_cache:校验失败的 ID 进程内永久跳过,避免重复 API 调用
静态黑名单更新:
- 新增 1952296583257133058(测试发现的无效文章)
- 静态黑名单与运行时缓存合并使用
get_news_list 流程:
1. 静态黑名单过滤(无 API 开销)
2. 热度+新鲜度加权采样
3. validate_article 逐篇校验
4. 若候选不足,从剩余池补充直到达到 count
|
2026-04-03 11:18:22 +08:00 |
|
stefanfeng
|
7203f04be6
|
feat: 评论去重 + 热度/新鲜度加权选文
评论去重逻辑:
- 查询今日已评论的文章ID,选文时已评论的文章权重降为10%
- 若选中已评论文章:改为回复其他用户的评论(虚拟用户互动链)
- 若选中未评论文章:正常发新评论,评论成功后随机回复他人评论
热度+新鲜度加权选文规则:
- 热度分 = commentNum×3 + praiseNum×2 + readNum×1
- 新鲜度 = 72小时内的新文章获得最高3倍加成,随时间线性衰减
- 综合权重 = (热度分+1) × 新鲜度,确保真实用户互动多的新文章优先被虚拟用户关注
|
2026-04-02 17:33:07 +08:00 |
|
stefanfeng
|
0cfc9bf9c8
|
feat: AI虚拟用户新闻互动系统 v1.3.0 初始提交
- 虚拟用户管理(昵称/头像/性别/简介/邮箱同步到目标平台)
- AI互动调度(点赞/收藏/评论/转发)
- 日志时间改为北京时间
- 评论达上限后继续执行点赞收藏转发
- 一键登出全部功能
- 浅色主题UI
|
2026-03-31 10:20:57 +08:00 |
|