mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-29 19:57:14 +08:00
- API 参考按实际路由重写,修正认证方式、请求方法与设置向导端点 - 数据库指南改为异步 Database 与 MIGRATIONS - E2E 指南改为指向 e2e/README.md - 插件快速上手补上安装 SDK 轮子的步骤,ab-plugin dev 加 --config-dir - 发布流程改为手动推送标签触发
26 lines
1.1 KiB
Markdown
26 lines
1.1 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()` 渲染,不受影响。
|
||
- 钩子对每个启用的渠道各调用一次;`channel` 是渠道类型,如 `telegram`。
|
||
- 钩子出错、超时或返回的不是 `RenderedMessage` 时,AB 沿用上一步的文案,并计入熔断。后面的钩子照常执行。
|
||
- 「新集数」通知暂不经过该钩子,仍使用通知渠道里配置的单集模板。
|