Skip to content

Conversation

rakuyoMo
Copy link

@rakuyoMo rakuyoMo commented Sep 30, 2025

新增内容

本 MR 新增了以下内容:

- Stencil 模板支持

本 MR 为消息通知增加了 Stencil 模板支持,现在可以使用 Stencil 语法,自定义消息通知的样式。

支持环境变量和配置文件两种形式,同时兼容老版本的环境变量。

目前 title 字段还没有纳入模板中,未来考虑也接进来。

- 企微通知支持 Markdown

增加对企业微信 markdownmarkdown_v2 类型消息的支持:

WECOM_NOTIF_CONFIG 配置示例:

{
    "webhook":"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxx",
    "platform_settings":{
        "markdown_style": "markdown_v2"
    },
    "template":"{% if all_success %}**✅ 所有账号全部签到成功!**{% else %}{% if partial_success %}**⚠️ 部分账号签到成功**{% else %}**❌ 所有账号签到失败**{% endif %}{% endif %}\\n\\n### **详细信息**\\n- **执行时间**:{{ timestamp }}\\n- **成功比例**:{{ stats.success_count }}/{{ stats.total_count }}\\n- **失败比例**:{{ stats.failed_count }}/{{ stats.total_count }}\\n\\n{% if has_success %}\\n### 成功账号\\n| 账号 | 已用($) | 剩余($) |\\n| :----- | :---- | :---- |\\n{% for account in success_accounts %}|{{ account.name }}|{{ account.used }}|{{ account.quota }}|\\n{% endfor %}{% endif %}{% if has_failed %}\\n### 失败账号\\n| 账号 | 错误原因 |\\n| :----- | :----- |\\n{% for account in success_accounts %}|{{ account.name }}|{{ account.error }}|\\n{% endfor %}{% endif %}"
}

效果:
ed024d722cbc8ff31e9dbd590efb43ea

注意事项

当前未针对全部平台进行测试,已测试平台:

  • 企业微信
  • 飞书
  • 钉钉
  • 邮箱
  • PushPlus
  • Server酱

详见 README.md 以及 commit list。

- 新增结构化通知数据模型(NotificationData、AccountResult、NotificationStats)
- 支持通过环境变量或配置文件自定义通知模板
- 新增 notif_config 目录存放各平台默认模板配置
主要针对新增的 Stencil 模板功能,重构了测试用例:
- 将 `test_notify.py` 拆分为 `unit` 和 `integration` 目录结构
  - `unit` 测试:配置解析、数据模型、发送功能、模板渲染
  - `integration` 测试:真实接口测试、路由逻辑验证
- 使用 pytest fixtures 提高测试代码复用性
- 支持参数化测试覆盖多种配置格式
@millylee
Copy link
Owner

millylee commented Oct 1, 2025

感谢你的想法和用心。
项目之前主要用于解决多账号自动签到问题,之前也考虑过通知模板,但配置上会降低易用性,仓库也变得复杂。PR 先留着,等反馈需要该功能的人多了进行合并。后续有好的想法可以先发 Issues 讨论。

@rakuyoMo
Copy link
Author

rakuyoMo commented Oct 1, 2025

感谢你的想法和用心。

项目之前主要用于解决多账号自动签到问题,之前也考虑过通知模板,但配置上会降低易用性,仓库也变得复杂。PR 先留着,等反馈需要该功能的人多了进行合并。后续有好的想法可以先发 Issues 讨论。

感谢作者的付出🙏 项目本身很实用。

因为我自己用的时候觉得当前的通知内容看起来不太方便,所以干脆自己动手改造一下,顺带回馈社区。

如果有其他人有类似的需求可以尝试一下这个 pr。有问题欢迎随时反馈。

@millylee
Copy link
Owner

millylee commented Oct 1, 2025

我发了一个 Issues #38,超过 20 人需要会进行合并。

@rakuyoMo
Copy link
Author

rakuyoMo commented Oct 4, 2025

在本 pr 合并之前,有自定义通知需求的朋友可以考虑 fork 我这个分值,然后将 feature/wecom-msg-style 分支设置为默认分支后即可使用相关功能。

本分支将定时同步主仓库的更新。

本分支承诺不会修改主仓库中 AnyRouter 的邀请链接地址。

@rakuyoMo
Copy link
Author

我基于本仓库实现了 autocheck-anyrouter,后续本 pr 将不再更新。在此感谢 millylee 的无私奉献。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants