github FlanChanXwO/astrbot_plugin_rsshub v2.1.0

9 hours ago

Added

  • Plugin Pages 新增独立「概览」页,展示总订阅、启用订阅、Feed 源和用户数,并加入 Feed 新鲜度、推送成功率、Feed 订阅占比三类图表。
  • 新增 Dashboard 图表 Web API:GET /dashboard/charts?range=24h|7d|30d。推送成功率按 success / (success + failed + stopped + skipped) 计算,pending / retrying 仅作为积压参考。
  • Plugin Pages 引入本地 Chart.js 静态资源,不依赖 CDN;仓库体积仍控制在 16 MB 上限内。
  • 推送历史仓储新增按最后活动时间聚合状态桶的查询能力,用于 Dashboard 成功率趋势。
  • 新增 requirements-dev.txt,将测试、帮助图生成等开发依赖从运行时依赖中拆出。
  • FFmpeg 来源配置简化为 auto / system 两个选项:auto 优先系统 PATH,系统缺失时后台异步下载捆绑 FFmpeg,不阻塞插件启动;system 仅使用系统 PATH。原 bundled 选项已合并为 auto
  • 新增共享镜像测速模块 (mirror_helper.py):FFmpeg 下载和知识库同步共用同一套镜像列表和 HEAD 测速逻辑。
  • FFmpeg 下载镜像新增 auto 选项(默认):并发测速内置镜像 + 直连 GitHub + 用户配置的 ffmpeg_mirror_custom_url(如有),选最快的下载,并保留直连 GitHub 作为最终兜底。
  • 知识库同步来源新增 speed_test 模式(默认):启动时自动测速选最快镜像下载 Routes 知识库。
  • 新增 JSON Feed 1.0 / 1.1 解析支持;Feed 抓取链路现在兼容 RSS 2.0、Atom 1.0 和 JSON Feed 三种格式,自动按响应内容识别并委派对应解析器。

Changed

  • Feed 轮询水位推进改为内部 ack 语义:只有发送成功或明确规则性跳过后才写入已见 hash,发送失败、pending、dispatcher 异常或进程中断不会永久吞掉条目。
  • history_entry_limit 现在只限制本轮尝试分发数量,不再把未尝试分发的条目提前写入水位。
  • Plugin Pages 布局从顶部指标 + 横向标签页改为左侧侧边栏 + 页面内容区;原指标卡移动到「概览」页,列表页高度占用更少。
  • 订阅、用户、Feed 和推送历史列表筛选改为紧凑筛选栏:关键词搜索常驻,精确条件通过「筛选列 + 筛选值 + 添加条件」生成 chip;刷新按钮改为 icon-only。
  • 订阅、用户、Feed 和推送历史列表移除与刷新按钮位置重复的「搜索」按钮,关键词输入回车与刷新按钮继续保留。
  • LLM tools 从单文件 src/application/llmtools.py 拆分为 src/application/llmtools/ 包,保持 build_llm_toolsLLM_TOOL_NAMES 对外导入不变。
  • 优化 AI tool 描述、skills/rsshub-agent-tools/SKILL.mddocs/usage/ai-tools.md,让 agent 更明确区分订阅、用户默认、会话默认、handlers、push history 和一次性 XML/HTML 直推。
  • 原始顺序排版 style=original 的 layout 文本现在同样遵守订阅最终生效的 length_limitlength_limit<=0 时保持完整正文。
  • FFmpeg 捆绑下载目录从插件缓存目录 (cache/ffmpeg/) 改为插件数据目录 (ffmpeg/);插件重载时自动清理上次中断遗留的 .tmp_* 临时目录。
  • 运行时依赖瘦身:requirements.txt 仅保留插件运行必需依赖,pytestpytest-asynciojinja2playwright 迁移到开发依赖。

Fixed

  • 修复轮询链路在分发前提前标记条目已见,导致发送失败、异常中断或分发异常后下轮无法补推的问题。
  • 修复无声视频可被 FFmpeg 转 GIF,但 sender 侧因媒体类型识别不稳导致没有进入 GIF 转换分支的问题;RSSHub wrapped URL、无扩展 URL 和下载后探测为 video 的媒体都可触发转换。
  • 修复转换成功后的 .gif 仍可能按视频发送的问题;GIF 转换产物统一按图片组件发送。
  • 修复配置 reload 后 sender 的 GIF 转码开关可能没有刷新到最新 media.gif_transcode 的问题。
  • 修复 original 模式下长正文 layout text 未按 length_limit 裁剪的问题,同时保持原解析结果和历史正文不被改写。
  • 修复 original layout 中 PDF/doc 等文档链接可能被误按图片路径处理的风险;文档链接继续作为 file 媒体走文件/尾部组件。
  • 修复 Plugin Pages 从「概览」切换到其他侧边栏项时可能无法切换的问题;Chart.js 实例不再放入 PetiteVue reactive state。
  • 修复 Plugin Pages「概览」推送成功率折线图空间拥挤,以及稀疏历史节点没有连线的问题。
  • 修复推送历史状态聚合排序不稳定的问题。

Removed

  • 移除运行时依赖中不必要的开发依赖,降低普通用户安装体积。
  • 移除把 xml_parse 作为可配置 handler 的 agent skill 推荐示例。

Security

  • 镜像测速恢复 TLS 证书验证,攻破 mirror HTTPS 才能影响候选选择。
  • FFmpeg 归档当前未配 SHA256(latest 源校验值不稳定),由 1 MB 大小检查 + 解包路径校验兜底;ZIP 解包前拒绝绝对路径和 .. 跨目录条目,封掉 zip slip 风险面。

Notes

  • 本版本不新增聊天命令,不新增用户可见配置项;防漏推 ack、GIF 判定补强和 original 行为修正均为内部语义修复。
  • ffmpeg_source 仅保留 autosystem;原 bundled 选项已合并为 auto,旧配置文件中的 bundled 会自动回退为 auto 并打 warning。
  • 知识库同步 source_mode 默认值升级为 speed_test;现存配置经 schema heal 维持原值,全新安装会自动启用测速选最快镜像。
  • Plugin Pages 新增图表只读接口,不改变已有筛选 query 参数和列表 Web API 语义。

#88

Don't miss a new astrbot_plugin_rsshub release

NewReleases is sending notifications on new releases.