Monitor PTT DC_SALE and DCView 二手市場 for camera gear matching your keywords, with instant Discord alerts.
- 🔍 Keyword Monitoring — Add partial keywords (e.g.
70-200,A7R5,GR3x) and get alerted when matching listings appear - 📡 Dual Source — Monitors both PTT DC_SALE and DCView Market
- ⚡ Auto Scan — Checks every 90 seconds for new listings
- 🎯 Discord Slash Commands — Easy setup via
/add,/remove,/list,/monitor,/scan - 🐳 Docker + Zeabur Ready — One-click deploy
| Command | Description |
|---|---|
/add <keyword> |
新增監控關鍵字 (e.g. 70-200) |
/remove <keyword> |
移除監控關鍵字 |
/list |
顯示所有監控關鍵字與狀態 |
/monitor |
設定當前頻道為通知頻道 |
/stop |
停止通知 |
/scan |
立即手動掃描一次 |
- Go to Discord Developer Portal
- Create a new application → Bot
- Enable Message Content Intent (Settings → Bot)
- Copy the Bot Token
cd dslr_monitor
cp .env.example .env
# Edit .env and paste your DISCORD_TOKEN
# Install dependencies
uv sync
# Run
uv run python bot.py- Push this folder to a Git repository
- Go to Zeabur → Create Project → Import from Git
- Add environment variable:
DISCORD_TOKEN= your bot token - Deploy! Zeabur will auto-detect the Dockerfile
dslr_monitor/
├── bot.py # Discord bot (slash commands + monitor loop)
├── scrapers.py # Web scrapers for PTT & DCView
├── storage.py # JSON-based persistent storage
├── Dockerfile # Docker image for Zeabur deployment
├── pyproject.toml # Dependencies (uv)
└── .env.example # Environment variable template
- User adds keywords via
/add 70-200— this tells the bot to watch for titles containing "70-200" - User sets alert channel via
/monitorin the desired Discord channel - Bot auto-scrapes both PTT DC_SALE and DCView Market every 90 seconds
- New listings matching keywords trigger a rich embed alert in the Discord channel
- Deduplication ensures you only get notified once per listing