跳到內容

通知

設定

通知會在事情發生時傳送 Discord 或 email 訊息:有請求在等待、有電影進來、健康檢查出問題。你需要 Change settings(變更設定)權限。

  1. 開啟 Settings > Alerts(設定 > 通知),按下 Add an Alert(新增通知)。
  2. 為它取一個 Name(名稱),並選擇 Kind(類型):Discord 或 email。
  3. 填寫該類型的欄位(請看類型)。
  4. 在 When to send(何時傳送)底下,取消勾選你不想要的時機。一開始全部都是勾選的;All of these(全部)和 None of these(全部不選)可以用在整個群組。
  5. 讓 Send messages(傳送訊息)保持開啟,然後按下 Save(儲存)。
  6. 按下卡片上的 Send a test(傳送測試)。你應該會看到訊息送達,而且卡片顯示 Last sent(上次傳送)。

在 Discord 中開啟頻道設定,然後進入 Integrations > Webhooks,複製連結。把它貼到 Discord link(Discord 連結);它會以 https://discord.com/ 開頭。如果有人在帳號中加入了他們的 Discord 使用者 ID,關於他們請求的訊息就會提及他們。

欄位 要輸入什麼
Mail server(郵件伺服器)、Port 你的郵件伺服器
Security(安全性) STARTTLS(port 587)、TLS(port 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

原因: 連結不是以 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。 原因: 連結或 token 不對。這些不會重試。 解決方式: 修正之後按下 Send a test。

症狀: 提出請求的人什麼都沒收到。 原因: 他們的帳號沒有 email 位址或 Discord 使用者 ID、那個時機沒有勾選,或是他們關閉了新集數。 解決方式: 檢查這三項。

重試

逾時、要求放慢的回應或伺服器錯誤,會在 5 秒、30 秒和 2 分鐘後重試。如果伺服器要求等更久,會照辦,最多 5 分鐘。被拒絕的情況,例如連結錯誤,不會重試。每次失敗都會在 History 加上一列「Alert could not be sent」。

暫緩的類型與它們的欄位

只有在 alert_channels_more 開關開啟時才會顯示。

類型 欄位
Telegram 來自 @BotFather 的 Bot token、Chat ID(使用者、群組或頻道 ID,或 @channel)。要先傳訊息給 bot,或先把它加入群組
ntfy Server address(空白代表 ntfy.sh)、Topic、選用的 Access token。知道 topic 的人都能讀取
Gotify Server address、App token
Pushover User key(群組金鑰也可以)、App token
Webhook (JSON) Webhook link、選用的 Secret、What the secret does
webhook 會收到什麼

每則訊息一個 POST,Content-Type: application/json,帶有這些 header:

Header 值
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,以你的 secret 為金鑰
Authorization 使用 Is sent as a bearer token 時:Bearer <secret>

選 Nothing 時,不會送出任何 secret。簽章時,請拒絕過舊的 timestamp 和你已經看過的 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 放的是這則訊息背後那一列 History 的原因和路徑。任何 2xx 的回應都算送達。

HolyArrs 是免費的。如果它幫你省下了時間,歡迎在 GitHub 上給顆星、贊助專案,或請我喝杯咖啡。