An advanced Telegram bot to monitor websites for content and visual changes, with keyword support and screenshot alerts.
- Monitor URLs: Check websites every 1 hour.
- Content Change Detection: Hashes HTML content (stripping noise).
- Visual Change Detection: Takes screenshots and detects visual differences.
- Keyword Watchers: Alert when keywords appear or disappear.
- Telegram Notifications: Get alerts with screenshots and diffs.
- Admin Control: Manage monitors via Telegram commands.
- Deployable: Ready for Railway (free tier optimized).
- Clone the repository
- Install dependencies:
pip install -r requirements.txt
- Install Playwright browsers:
playwright install chromium
- Configure Environment:
- Copy
.env.exampleto.env - Set
TELEGRAM_BOT_TOKEN(from BotFather) - Set
ADMIN_IDS(comma-separated Telegram User IDs)
- Copy
- Run the bot:
python main.py
- Fork/Clone this repo.
- Login to Railway and create a new project from the repo.
- Add the required Environment Variables in Railway settings:
TELEGRAM_BOT_TOKENADMIN_IDS
- The included
Dockerfilewill handle the build and browser installation.
/start- Start the bot (Admin only)/add <url> [tags] [notes]- Add a new monitor/list- List active monitors/remove <id>- Remove a monitor/watch <monitor_id> <keyword>- Add a keyword watcher/check- Force a check (Manual)/status- View system status/addadmin <user_id>- Add another admin/help- Show help
- Interval: Hardcoded to 1 hour (per requirements).
- Storage: SQLite (
watcher.db), auto-created.
MIT