跳转到正文

通知系统

Rust-Srec 会记录通知事件,并可把选定事件发送到外部渠道。渠道送达语言、界面语言和仅浏览器通知彼此独立配置。

可用目标

目标v0.5 Web 界面要求
Webhook可创建、编辑、测试HTTPS 端点;可选请求头或认证
Telegram可创建、编辑、测试机器人令牌和 Chat ID
Gotify可创建、编辑、测试服务器 URL 和应用令牌
Email可创建、编辑、测试SMTP 主机、发件人与收件人;仅在中继允许时可不填凭据
Discord可表示已有渠道;v0.5 表单禁用新建选择后端/API 支持 Discord Webhook 设置
Web Push按浏览器配置VAPID 密钥,以及 HTTPS 或 localhost
实时轮询按浏览器配置应用标签页必须保持打开
桌面通知仅桌面版操作系统通知权限

因此 Discord 是受后端支持、但 v0.5 Web 界面新建受限的渠道,并非该版本界面中普遍可选的渠道。

配置外部渠道

  1. 打开通知,选择添加渠道
  2. 选择 Webhook、Telegram、Gotify 或 Email,并输入易识别的渠道名称。
  3. 设置最低优先级、消息语言和启用状态。
  4. 保存后执行测试操作;接收端收到测试消息才算验证成功。
  5. 打开订阅管理器,选择应发送到该渠道的事件类型。

渠道设置与事件订阅相互独立。仅创建目标并不代表它会自动接收全部事件。

优先级

API 与界面设置采用 0-10 数值优先级:

级别示例
Low2下播、分片进度、管道开始/完成
Normal5开播、下载完成、系统启动/关闭
High8下载错误/拒绝、管道失败、凭据刷新失败、百度网盘重新登录失败
Critical10致命错误、输出路径不可访问、空间不足、凭据无效

渠道会过滤低于其最低值的事件。在注明兼容的位置,API 也接受旧字符串 lownormalhighcriticalinfo 不是有效优先级。

语言

每个外部渠道可跟随服务器语言,也可覆盖为 enzh-CNRUST_SREC_LOCALE 设置后端生成消息的默认语言,与用户在 Web 界面选择的语言无关。

Web Push

生成 VAPID 密钥对,并在后端启动前设置三个变量:

bash
docker run --rm ghcr.io/hua0512/rust-srec-vapid:v0.5.1
dotenv
WEB_PUSH_VAPID_PUBLIC_KEY=...
WEB_PUSH_VAPID_PRIVATE_KEY=...
WEB_PUSH_VAPID_SUBJECT=mailto:operations@example.com

然后在通知页面为当前浏览器启用 Web Push、授予浏览器权限、选择优先级并发送测试。浏览器要求安全上下文;localhost 以外必须使用 HTTPS。

送达行为

外部渠道会对临时失败进行退避重试,并对反复失败的渠道使用熔断器。重试耗尽的送达会进入死信,通知事件则按配置保留周期留在事件历史中。

这些机制只能减少临时丢失,不能构成端到端送达保证。应监控接收服务,在配置变更后重新测试渠道,并为严重事件设置第二目标。

存储严重事件

  • out_of_space 表示磁盘用量越过阈值。
  • output_path_inaccessible 表示输出根写入门因跟踪目录不可写而阻止了新录制任务。

真实磁盘满在释放空间后可于后续探测自动恢复;失效 Docker 绑定挂载可能需要重启容器,参见存储与容量

基于 MIT 许可证发布。