Webhook Telegram Bot - AI驱动的Discourse通知

:information_source: 摘要 专业的 Telegram 机器人,可使用 OpenAI GPT-4.1-nano 通过 AI 生成的摘要,自动通知 Discourse 论坛的新帖子。
:hammer_and_wrench: 代码库链接 GitHub - DigneZzZ/webhook_tg_bot
:open_book: 安装指南 README_EN.md

Webhook Telegram 机器人 - AI 驱动的 Discourse 通知

注意:虽然这不是一个传统的 Discourse 插件,而是一个外部集成服务,但我找不到更合适的类别来与 Discourse 社区分享这个有用的工具。这个机器人与您的 Discourse 论坛协同工作,提供增强的通知功能。

功能

:link: Discourse 集成

  • 处理主题和帖子创建事件的 Webhook

  • 支持所有类型的 Discourse 内容

  • 将主题和帖子数据合并为统一的消息

  • Webhook 签名验证以确保安全 (HMAC-SHA256)

:robot: AI 内容分析

  • OpenAI GPT-4.1-nano 集成,用于智能帖子摘要

  • 具有 HTML 清理功能的上下文感知内容分析

  • 不同内容类型的特殊模板

  • 自动内容过滤和处理

:mobile_phone: 高级 Telegram 投递

  • 将通知发送到主聊天或特定论坛主题

  • 分类映射 - 将不同的 Discourse 分类路由到不同的 Telegram 主题

  • 用户角色表情符号前缀 (:crown: 管理员, :shield: 版主, :star: 员工等)

  • 智能 HTML 消息格式化

:bullseye: 灵活过滤与控制

  • 监控特定分类或所有分类

  • 通过优先级系统忽略不需要的分类

  • 阻止机器人用户 (discobot, chatbot, 系统用户)

  • 高级版部分通知及订阅提醒

:rocket: 生产就绪

  • 带有健康检查的 Docker 容器化

  • GitHub Actions CI/CD 流水线

  • 用于自动启动的 Systemd 集成

  • 全面的日志记录和监控

  • 优雅的关机和错误处理

配置

1. Discourse Webhook 设置

  1. 导航到 Admin → API → Webhooks

  2. 点击 New Webhook

  3. 配置:

Payload URL: https://your-domain.com/webhook

Content Type: application/json

Secret: your_webhook_secret

Which events: Topic Event + Post Event

2. Telegram 机器人设置

  1. 通过 @BotFather 创建机器人

  2. 获取群组/频道的 Chat ID

  3. 可选地设置论坛主题以进行分类路由

3. 环境配置

创建 .env 文件并填入必需的设置 (请参阅代码库中的完整配置)。

4. Docker 部署

# 快速安装

curl -fsSL https://raw.githubusercontent.com/dignezzz/webhook_tg_bot/main/install.sh -o install.sh

chmod +x install.sh

./install.sh install

5. 反向代理设置

要在您的域上支持 Webhook,请配置反向代理 (nginx/Apache) 将 Webhook 请求路由到 8080 端口的机器人容器。

示例 nginx 配置:

location /webhook {
proxy_pass http://localhost:8080/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

设置

名称 描述 默认 必需
TELEGRAM_BOT_TOKEN 来自 @BotFather 的机器人令牌 - :white_check_mark:
TELEGRAM_CHAT_ID 目标群组/频道 ID - :white_check_mark:
TELEGRAM_THREAD_ID 主题 ID (0 = 主聊天) 0 :cross_mark:
WEBHOOK_SECRET 用于签名验证的密钥 - :white_check_mark:
WEBHOOK_PORT Webhook 服务器端口 8080 :cross_mark:
WEBHOOK_PATH Webhook 端点路径 /webhook :cross_mark:
OPENAI_API_KEY 用于摘要的 OpenAI API 密钥 - :cross_mark:
OPENAI_MODEL 要使用的 GPT 模型 gpt-4.1-nano :cross_mark:
BASE_URL 您的 Discourse 论坛 URL - :cross_mark:
MONITORED_CATEGORIES 要监控的分类 ID (逗号分隔) all :cross_mark:
IGNORED_CATEGORIES 要忽略的分类 ID (逗号分隔) none :cross_mark:
IGNORED_USERS 要忽略的用户 ID (逗号分隔) none :cross_mark:
PREMIUM_CATEGORIES 高级版分类 ID (逗号分隔) none :cross_mark:

分类到主题的映射 (可选):

TELEGRAM_THREAD_ID_1=123456
THREAD_CATEGORIES_1=1,2,3
TELEGRAM_THREAD_ID_2=234567
THREAD_CATEGORIES_2=4,5

消息格式示例

👤 👑 Administrator 创建了一个新帖子:Docker 配置指南

📋 作者分享了 Docker 容器配置问题的解决方案,并逐步解释了修复数据库连接错误的步骤。

🔗 主题链接 (https://forum.example.com/t/topic/123)

🏷 标签:#docker, #database, #troubleshooting

💎 此部分仅限订阅用户访问。

安装与管理

该机器人包含一个管理脚本,方便进行操作:

whtg status # 检查机器人状态

whtg start # 启动机器人

whtg stop # 停止机器人

whtg restart # 重启机器人

whtg logs # 查看日志

whtg update # 更新到最新版本

whtg uninstall # 卸载机器人

语言支持

注意:目前,所有界面消息和文档均为俄语,但很快将添加英语支持。该机器人可与任何语言的 Discourse 论坛配合使用。

技术要求

  • DockerDocker Compose

  • 反向代理 (nginx/Apache) 以支持 Webhook 域名

  • OpenAI API 密钥 (可选,用于 AI 摘要)

  • HTTPS 证书 (推荐用于生产环境)

支持与贡献

许可证: MIT License

2 个赞