mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-29 03:36:15 +08:00
- apprise:urls 含令牌,改为 secret_field;secret_field 支持 default_factory,可声明列表 / 字典秘密字段
- run-command:stderr 改为自建管道边读边丢,只保留最后 2000 字节;完成仍只看 proc.wait(),结束后给读取 0.5 秒再关闭管道
- run-command:{files} 按原始路径列表展开,含换行的路径不再拆成两个参数
- 通知:插件渠道 extra 里的已声明字段与内置渠道一样展开 $VAR
- slack:只在 HTTP 400 invalid_blocks 时退回纯文字重试,其它失败不重发
- onebot:先发文字,再单独发海报;结果只看文字,去掉重试
- strm-writer:media_root 为 "/" 时正确映射完整路径
Slack 通知(示例插件)
把通知发到 Slack 的 Incoming Webhook。演示:
@provider(points.NOTIFIER, id="slack"):返回NotifierFactory- Webhook 地址含密钥,用
secret_field声明,读取配置时只返回掩码 - 只有 HTTP 2xx 且响应体为
ok才算成功 - 契约套件
NotifierContract
消息格式
请求体为 {"text": "*标题*\n正文"}(Slack 的 mrkdwn,&、<、> 已转义)。配置了 notification.base_url 时单集通知带海报:再加 blocks(一段文字和一张图片),text 作为手机通知的摘要。海报地址必须能被 Slack 访问;Slack 取不到图片时会以 HTTP 400 invalid_blocks 拒绝整条消息,插件只在这种情况下去掉 blocks 只发文字再试一次;令牌失效、限流等其它失败不重试,避免重复发送。
安装
cp -r examples/plugins/slack-notifier config/plugins/local/
在 Slack 中创建 App,开启 Incoming Webhooks 并添加到频道,复制 Webhook 地址。在「设置 → 插件」中开启「允许未签名插件」,启用并填写地址;再到「设置 → 通知 → 添加渠道」选择类型 slack。
测试
cd examples/plugins/slack-notifier && uv run pytest
对应 issue:#277