mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-29 11:46:17 +08:00
- API 参考按实际路由重写,修正认证方式、请求方法与设置向导端点 - 数据库指南改为异步 Database 与 MIGRATIONS - E2E 指南改为指向 e2e/README.md - 插件快速上手补上安装 SDK 轮子的步骤,ab-plugin dev 加 --config-dir - 发布流程改为手动推送标签触发
26 lines
1.6 KiB
Markdown
26 lines
1.6 KiB
Markdown
# 通知メッセージテンプレート (message_template)
|
|
|
|
transform フックです。システムイベントを外部チャンネルへプッシュする前に、イベントはこのフックを順に通ります。フックは既定の文面、イベント、チャンネルの種類を受け取ります。新しい `RenderedMessage` を返すと文面を書き換えられます。`None` は変更なしです。
|
|
|
|
```python
|
|
from ab_sdk import Plugin, hook, points
|
|
from ab_sdk.notify import RenderedMessage
|
|
|
|
|
|
class Alerts(Plugin):
|
|
@hook(points.MESSAGE_TEMPLATE)
|
|
def template(self, message: RenderedMessage, event, channel: str):
|
|
if event.kind != "rss_failure":
|
|
return None
|
|
if channel == "telegram":
|
|
return RenderedMessage(
|
|
f"[警告] {message.title}", f"<b>{event.rss_name}</b>\n{event.error}"
|
|
)
|
|
return None
|
|
```
|
|
|
|
- フックが影響するのは外部へのプッシュだけです。通知センターの文面は、フロントエンドが `i18n()` から描画するので変わりません。
|
|
- フックは、有効な各チャンネルに対して 1 回ずつ呼ばれます。`channel` はチャンネルの種類で、例えば `telegram` です。
|
|
- フックが失敗した、タイムアウトした、または `RenderedMessage` 以外を返した場合は、前の段階の文面を使い、失敗はブレーカーに数えられます。後続のフックは通常どおり実行されます。
|
|
- 「新しい話」の通知は、まだこのフックを通りません。通知チャンネルに設定した 1 話用のテンプレートを使います。
|