通知
设置
有事情发生时,通知会发一条 Discord 或邮件消息:有请求在等待、一部电影到了、某项健康检查出了问题。你需要有 Change settings(更改设置)权限。
添加通知
添加通知 的链接- 打开 Settings > Alerts(设置 > 通知),点击 Add an Alert(添加通知)。
- 填一个 Name(名称),选一个 Kind(类型):Discord 或邮件。
- 填好这个类型的字段(见类型)。
- 在 When to send(何时发送)下面,把不想要的时刻取消勾选。一开始全部是勾选的;All of these(全选)和 None of these(全不选)对整组生效。
- 让 Send messages(发送消息)保持开启,点击 Save(保存)。
- 在卡片上点击 Send a test(发送测试)。你应该会看到消息送达,卡片上显示 Last sent(上次发送)。
类型
类型 的链接Discord
Discord 的链接在 Discord 里打开频道设置,进入 Integrations > Webhooks(集成 > Webhook),复制链接。把它粘贴到 Discord link(Discord 链接)里;链接以 https://discord.com/ 开头。在账户里填了 Discord 用户 ID 的人,会在关于他们请求的消息里被提及。
邮件
邮件 的链接| 字段 | 填什么 |
|---|---|
| Mail server(邮件服务器)、Port(端口) | 你的邮件服务器 |
| Security(安全) | STARTTLS(端口 587)、TLS(端口 465)或 None。None 只用于你自己网络里的邮件服务器 |
| From address(发件地址) | 发件人地址 |
| Mail username(邮件用户名)、Mail password(邮件密码) | 邮件账户 |
| Staff addresses(管理人员地址) | 一个或多个,用逗号分隔 |
关于某条请求的消息会发给提交请求的人,发到他们账户里的地址。其他消息都发到管理人员地址。
Telegram、ntfy、Gotify、Pushover 和 webhook 在这个版本里暂未开放。见暂未开放的功能。
选项
选项 的链接何时发送
何时发送 的链接| 时刻 | 发给谁 | 什么时候 |
|---|---|---|
| New request(新请求) | 管理人员 | 一部电影、一部剧集或一位艺人在等待批准 |
| Approved(已批准) | 请求人 | 他们的请求已批准 |
| Declined(已拒绝) | 请求人 | 已拒绝,附上你的备注 |
| Ready(已就绪) | 请求人 | 文件已经在媒体库里 |
| New episodes(新剧集) | 请求人和关注者 | 每部剧集每小时最多 1 条。每个人都可以自己关掉 |
| New albums(新专辑) | 艺人的关注者 | 每位艺人每小时最多 1 条 |
| Problem reported(有人报告问题) | 管理人员 | 有人报告了某个条目的问题。报告在 /requests/reports |
| Problem fixed(问题已解决) | 报告人 | 附上你的回复 |
| Sent to download(已发送下载) | 管理人员 | 一个资源已发给下载器 |
| In the Library(已入库) | 管理人员 | 文件已放好,包括换成更好的副本 |
| Renamed(已重命名) | 管理人员 | 文件有了新名字 |
| Added(已添加) | 管理人员 | 一个条目被添加,来自手动添加、列表或请求 |
| Deleted(已删除) | 管理人员 | 一部电影、一部剧集、一季或若干集离开了媒体库 |
| Health(健康状况) | 管理人员 | 某项健康检查出了问题或已恢复 |
| Needs a decision(待你决定) | 管理人员 | 某个下载任务或导入需要你处理 |
整季包
整季包 的链接列表下方的 Season packs(整季包)决定一个包含很多集的下载任务怎么发:One Alert for the pack(整包发一条通知),每集占一行;或者 One Alert per episode(每集发一条通知)。
访问局域网
访问局域网 的链接默认关闭。关闭时,Discord 通知只发往 discord.com,其他类型只发往互联网上的服务器;指向本机或家庭网络的链接会被拒绝,即使是域名解析之后才指向那里的也一样。如果邮件服务器或接收端在家里,就打开它。重定向永远不会被跟随。
暂停一个通知
暂停一个通知 的链接取消勾选 Send messages。卡片会显示 Off(关闭),通知本身会保留。
密码和令牌
密码和令牌 的链接加密保存,之后显示为 Stored(已保存)。字段留空就保持不变。把通知改指向另一台服务器时,你要重新输入密钥;已保存的密钥绝不会被发到新的地方。
如果不成功
如果不成功 的链接现象:
Paste the Discord link(粘贴 Discord 链接)
原因: 链接不是以 https://discord.com/ 开头。
解决办法: 重新复制 webhook 链接。如果是家里的类 Discord 服务器,打开 Reach the local network(访问局域网)。
现象:
Points to the local network, which this Alert may not reach(指向局域网,而这个通知不允许访问那里)
原因: 服务器在本机或你的家庭网络里。 解决办法: 打开 Reach the local network。
现象: Last try failed(上次尝试失败),返回 401 或 404。 原因: 链接或令牌不对。这类错误不会重试。 解决办法: 改正后点击 Send a test。
现象: 提交请求的人什么都没收到。 原因: 他们的账户里没有邮件地址或 Discord 用户 ID,这个时刻没有勾选,或者他们自己关掉了新剧集通知。 解决办法: 检查这三项。
进阶
进阶 的链接重试
遇到超时、限速响应或服务器错误,会在 5 s、30 s 和 2 min 后重试。服务器要求等更久时会照办,最长 5 min。被拒绝的情况不会重试,比如链接不对。每次失败都会在历史记录里加一行“Alert could not be sent”(通知无法发送)。
暂未开放的类型和它们的字段
只有打开 alert_channels_more 开关才会显示。
| 类型 | 字段 |
|---|---|
| Telegram | 从 @BotFather 拿到的 Bot token(机器人令牌)、Chat ID(聊天 ID,可以是用户、群组或频道的 ID,或 @channel)。要先给机器人发消息,或者把它加进群组 |
| ntfy | Server address(服务器地址,留空表示 ntfy.sh)、Topic(主题)、可选的 Access token(访问令牌)。任何知道主题的人都能读到 |
| Gotify | Server address、App token(应用令牌) |
| Pushover | User key(用户密钥,群组密钥也可以)、App token |
| Webhook (JSON) | Webhook link(Webhook 链接)、可选的 Secret(密钥)、What the secret does(密钥的用途) |
webhook 会收到什么
每条消息一个 POST,Content-Type: application/json,带这些请求头:
| 请求头 | 值 |
|---|---|
X-HolyArrs-Event |
时刻,比如 import 或 test |
X-HolyArrs-Delivery |
这条消息的随机 ID |
X-HolyArrs-Timestamp |
选了 Signs each message(给每条消息签名)时:自 1970 年起的秒数 |
X-HolyArrs-Signature |
选了 Signs each message 时:sha256= 加上 <timestamp>.<delivery>.<body> 的十六进制 HMAC-SHA256,用你的密钥计算 |
Authorization |
选了 Is sent as a bearer token(作为 bearer 令牌发送)时:Bearer <secret> |
选了 Nothing(不做任何事)时,不发送密钥。使用签名时,要拒绝过旧的时间戳和已经见过的 delivery ID,这样复制下来的消息就无法被重放。
{ "moment": "import", "event_kind": "import_done", "subject": "In the Library: Arrival (2016)", "text": "Import done: 1 placed by hardlink", "at": "2025-01-01T18:04:11Z", "movie": { "id": 12, "name": "Arrival", "year": 2016, "tmdb": "329865", "imdb": "tt2543164" }, "data": { "from": "/downloads/Arrival.2016.1080p" }}其他字段在适用时才出现:test、show 和 episodes、artist 和 tracks、report、people。people 里是请求人的名字,绝不会有地址。data 里是这条消息背后那行历史记录里的原因和路径。任何 2xx 响应都算送达。
相关页面
相关页面 的链接HolyArrs 是免费的。如果它帮你省了时间,欢迎在 GitHub 上点个 Star、赞助它或请我喝杯咖啡。