一个支持 Telegram 和 Discord 的站点监控机器人。
- Python 3.8+
- pip
- virtualenv
- 克隆项目
git clone [项目地址]
cd site-bot- 创建并激活虚拟环境
# 创建虚拟环境
python -m venv venv
# Windows激活虚拟环境
venv\Scripts\activate
# Linux/Mac激活虚拟环境
source venv/bin/activate- 安装依赖
pip install -r requirements.txt- 配置环境变量
# 复制环境变量示例文件
cp env.example .env
# 编辑.env文件,填入必要的配置必填配置:
TELEGRAM_BOT_TOKEN: Telegram机器人token (从@BotFather获取)TELEGRAM_TARGET_CHAT: 消息发送目标 (可以是频道如@channelname或用户ID如123456789)
可选配置:
DISCORD_TOKEN: Discord机器人token (如需Discord功能则必填)
- 直接运行
python site-bot.py- 使用启动脚本(推荐)
# 添加执行权限
chmod +x restart.sh
# 运行脚本
./restart.sh程序运行日志位于:
tail -f /tmp/site-bot.logproject/
├── apps/ # 应用入口层
│ ├── telegram_bot.py
│ └── discord_bot.py
├── core/ # 核心配置层
│ └── config.py # 配置文件处理
├── services/ # 具体服务层
│ └── rss/ # RSS服务实现
├── storage/ # 数据存储层
└── site-bot.py # 主程序入口
- 确保.env文件中配置了正确的bot token和发送目标
- 运行restart.sh前确保在项目根目录
- 首次运行时需要创建虚拟环境并安装依赖
- 发送目标(TELEGRAM_TARGET_CHAT)必须配置,否则程序无法正常工作
- 如果发送目标是Telegram频道,需要将机器人添加为频道的管理员,确保其有发布消息的权限
/start- 启动机器人/help- 显示帮助信息/rss- RSS订阅管理,包含以下子命令:/rss list- 显示所有监控的sitemap列表/rss add URL- 添加新的sitemap监控(URL必须以sitemap.xml结尾)/rss del URL- 删除指定的sitemap监控
/news- 手动触发关键词汇总的生成和发送。该命令会比较每个监控源已存储的current和latestsitemap 文件,收集所有新增的 URL,并发送汇总的关键词速览到配置的目标频道。
示例:
# 查看所有监控的sitemap
/rss list
# 添加新的sitemap监控
/rss add https://example.com/sitemap.xml
# 删除sitemap监控
/rss del https://example.com/sitemap.xml- 添加sitemap后,机器人会:
- 立即下载并保存sitemap文件
- 发送sitemap文件到指定频道/用户
- 如有新的URL,会单独列出发送
- 定时任务会:
- 每小时检查一次所有订阅的sitemap
- 自动对比并发现新增的URL
- 将更新内容发送到指定频道/用户