主站与服务端v1.0.0
tianyin231/自托管的游戏资讯与周边追踪信号台:多平台采集、事件追溯、活动日历与 AI 快讯,支持邮件和 QQ(AstrBot)推送。
github.com/tianyin231
AniSignal 的代码分为两个公开仓库:主仓库包含网站、采集与推送服务;QQ 机器人用的 AstrBot 插件单独发布,方便在 AstrBot 中安装和更新。
主站与服务端v1.0.0
tianyin231/自托管的游戏资讯与周边追踪信号台:多平台采集、事件追溯、活动日历与 AI 快讯,支持邮件和 QQ(AstrBot)推送。
AstrBot 插件v1.14.7
tianyin231/AniSignal 情报助手的 AstrBot 插件:在 QQ 群聊和私聊订阅游戏与 AI 资讯,接收每日早报、重要动态、活动提醒与周边商品进展。
上一版为拆开「名创优品联动」手写了一张修饰词表,会把「联动池」「信息差」削成单字, 「联名」这类没列进去的词又照样卡住。改为: - 只按空格和标点拆词,连写查询里只拆出分区注册表里的游戏名,其余字原样保留 - 所有词都要命中;凑不齐时不替模型猜哪个词不重要,返回各词单独的命中数, 由模型决定换哪个词重查 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
机器人查「明日方舟 名创优品 联动 秋意茶话会」时,服务端要求整串原样出现, 且不带订阅关键词的会话只扫窗口内最新 200 条,几乎必然落空;落空后又返回推送用的 「暂时没有值得单独推送的新消息」,模型当成没有这件事,转而拿群聊内容硬答。 - 查询拆成需要同时命中的词:连写的中文游戏名单独拆出,游戏名(含别名)只限定分区, 「联动」「最新」等修饰词不参与匹配 - 带正文关键词时在数据库里按词筛选,资讯窗口放宽到 30 天,不再截断到最新 200 条 - 商品检索同样按词匹配 - 查不到时说明「近 N 天订阅范围内没有找到」,并提示可联网核实,不再返回空播报 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- on_llm_request 只向 system prompt 追加固定说明;当前时间与已发通知索引改用 extra_user_content_parts + mark_as_temp() 作为本轮临时内容,不写入历史, 不破坏供应商侧缓存(插件市场审查要求) - 通知引导语去掉「群友」设定和固定字数,称呼、语言、语气全由人格决定;时间与 近期开场移到 prompt,同一会话的 system prompt 保持不变 - 引导语截断按句子切分,支持英文等语言;会话填写了排版与详略补充时不再截断 - 卡片分区名优先使用服务端下发的 community_label,新增分区无需改插件 - 服务端去掉针对具体游戏的示例与检查(四鸣井、文旅、碧蓝航线示例),改成通用规则 - 周边详情按履约状态取字段,不依赖展示文字 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 同一轮的周边履约变化合成一条普通动态:同系列写成一行,附预售/价格/发货原文字段和一个链接,不再逐款刷屏,也不再穿透免打扰 - 履约变化改用白话(开启预售、首位玩家晒出到货、此前判断已撤回),不再出现“已采纳 N”;同一状态只多一条证据不推送 - 动态末行改为“来源 · 今天/昨天 时间”,发送时按实际时刻重排;多条用 ①② 编号,多条快讯共用标题 - 普通 AI 快讯不再逐条标“转述,待核实”,只有传闻标待核实;长摘要退到完整句 - 回退文案去掉“各位亲爱的指挥官”等称呼、◆〓装饰和“如有变动另行通知”,不再发“新动态”占位;模型失败的回退文案不缓存 - 日程提醒改成“接下来 24 小时”清单,写明天/后天,最多列四组 - 插件 v1.14.6:通知开场只说一句不超过约 30 字的反应,不复述正文,并避开本会话最近几次的开场 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AstrBot 更换插件源时要求已安装插件记录的仓库与插件源一致, v1.14.4 及更早版本记录的是主仓库地址,会被拒绝。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 接口改为返回 repositories 列表:两个仓库各自的简介、Star/Fork、最近提交, 插件仓库另读 metadata.yaml 中的版本号;贡献者与正式发布仍取主仓库 - 页面顶部并列两张仓库卡片,各显示最近一次更新;下方合并时间线按时间排序, 可按仓库筛选,提交按仓库着色 - 某个仓库读取失败时沿用上次记录,另一个仓库照常刷新 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
插件市场按 metadata.yaml 所在仓库整体打包审核,主仓库一千多个文件会让 自动安全检查失败。插件源码仍在 integrations/astrbot_plugin_anisignal 开发, 用 deploy/sync-astrbot-plugin.sh 把已提交内容同步到独立仓库。 - metadata repo、版本检查地址、插件源地址改指向独立仓库,测试锁定三者一致 - 根目录入口保留给早期从主仓库安装的实例,插件源两份副本保持一致 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
账号中心「屏蔽游戏分区」改为「屏蔽分区与来源」,新增来源平台: 游戏分区可屏蔽 B站、YouTube、X、库街区、米游社、游戏官网,AI 快讯可屏蔽 B站、X、新闻源。所选平台的内容在聚合视图和单个分区里都不再出现;内容库里 显式选中该平台时照常显示。AI 日报、周报等已发布的编辑产物不受影响,邮件、 Bot 推送和其他账号也不受影响。 - 设置存于 feed_preferences.hidden_platforms(令牌如 ai:bilibili),无需迁移; 只提交其中一项时另一项保留 - 平台令牌与分区共用镜像 Cookie,登录、退出、会话同步沿用原逻辑 - 内容库、精选、热度飙升按 community + platform 过滤;精选缓存键带上屏蔽组合, 单个分区只保留所属一组的平台令牌 - AI 快讯时间流在内存过滤;热榜在事件归组前剔除,只由被屏蔽平台报道的事件 整条消失,其余事件保留其他来源 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
账号中心「账号与安全」新增「屏蔽游戏分区」。登录该账号时,首页、内容库、 搜索、日历、兑换码、事件和商品的跨分区(全部)列表不再显示所选分区,顶栏 也隐藏这些频道;直接打开该分区照常显示。其他账号、未登录访客,以及邮件、 Bot 推送和关注流都不受影响。 - 屏蔽列表存于 users.feed_preferences.hidden_communities,无需迁移;保存 个人降噪时保留它,修改屏蔽也不刷新邮件早报使用的 updated_at - 浏览器保存一份镜像 Cookie(anisignal_hidden),公开接口与服务端渲染据此 过滤,不必每次请求查库;没有登录 Cookie 时不生效。登录写入、退出清除, 会话检查按账号校正(换账号、多设备修改后自动同步) - 服务端渲染转发访客 Cookie,首屏就已过滤;精选缓存按屏蔽组合区分 - RSS 在进程内共享缓存,不跟随账号屏蔽 - 记住或默认的分区被屏蔽时,栏目页改用第一个未屏蔽的游戏分区 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
raw.githubusercontent.com 以 text/plain 返回 -md5.json,AstrBot 解析失败后 记为空 md5,每次都重新读取插件源,正好是需要的行为;若改用以 JSON 返回的 托管地址而 md5 漏改,AstrBot 会一直使用旧缓存。去掉 md5 文件,测试确认它不存在。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AstrBot 只对绑定到插件源(市场)的插件检测新版本;从仓库链接或手动安装的 插件,卡片上只有「⋯ → 重新安装」。仓库新增只含本插件的插件源 astrbot-plugin-source.json 及其 -md5.json(AstrBot 据此判断缓存是否过期)。 添加该插件源并在卡片「更换插件源」中选中后,有新版本时卡片显示更新按钮。 - 测试校验插件源的版本、仓库与 metadata.yaml 一致,md5 与文件内容一致 - 设置页「插件更新」与 README 改为这两步设置,并保留「重新安装」的备用说明 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>