mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-22 16:11:29 +00:00
feat: add Telegram push support with multi-target routes
Add a platform-aware route target system so a single route can forward to several destinations at once (e.g. a Discord channel and a Telegram group). Route.target becomes Route.targets[] with per-entry platform, channelId/threadId for Discord and chatId/topicId for Telegram; the legacy single-target format is normalized on load and accepted by the admin API. Implement the Telegram driver with HTML rendering and Bot API sendMessage (chat_id + message_thread_id for topics, retry on 429/5xx), plus /gh commands served over POST /telegram/webhook: login, logout, comment, merge and close. The comment/merge/close commands resolve the issue or PR from the replied-to notification message. OAuth binding now stores a D1 telegram_links mapping and replies with a confirmation. Sync the Telegram webhook from the scheduled trigger via setWebhook.
This commit is contained in:
parent
dcbe93be91
commit
bd7a8f2632
39 changed files with 1165 additions and 162 deletions
13
README.zh.md
13
README.zh.md
|
|
@ -57,7 +57,7 @@ npx wrangler dev # 启动本地开发服务器
|
|||
|
||||
### 路由配置
|
||||
|
||||
路由存储在 KV(`config:routes`,JSON 格式)。**没有默认路由**——每条路由(包括目标 `channelId` / `threadId`)都必须显式定义,可通过 Web 控制台(`/admin`)或直接向 KV 存储 JSON 数组:
|
||||
路由存储在 KV(`config:routes`,JSON 格式)。**没有默认路由**——每条路由(包括目标)都必须显式定义,可通过 Web 控制台(`/admin`)或直接向 KV 存储 JSON 数组:
|
||||
|
||||
```json
|
||||
[
|
||||
|
|
@ -66,12 +66,19 @@ npx wrangler dev # 启动本地开发服务器
|
|||
"name": "Push 事件",
|
||||
"enabled": true,
|
||||
"filters": [{ "type": "event", "match": "push" }],
|
||||
"target": { "channelId": "频道ID" }
|
||||
"target": { "platform": "discord", "channelId": "频道ID" }
|
||||
},
|
||||
{
|
||||
"id": "telegram-issues",
|
||||
"name": "Issue 推送 Telegram",
|
||||
"enabled": true,
|
||||
"filters": [{ "type": "event", "match": "issues" }],
|
||||
"target": { "platform": "telegram", "chatId": "-1001234567890" }
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
`target.channelId` 必填且按原样使用,不存在默认频道回退。
|
||||
`target.platform` 选择推送目标:`discord`(默认)或 `telegram`。Discord 路由需 `target.channelId`(可选 `threadId` 指向子区);Telegram 路由需 `target.chatId`(群组聊天 ID,可选 `topicId` 指向话题)。不存在默认频道回退。
|
||||
|
||||
### Web 控制台(`/admin`)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue