The bot stopped posting because sortBy=recent only returned low-discount deals,
and desc=1 was inverting the sort order for savings/DealRating queries. Now fetches
both recent and top-rated deals, merges with dedup. Lowered default thresholds to
20% min discount, 7.0 min rating, and $45 max price.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add proper error handling for price parsing, date parsing, and HTTP
status codes in CheapShark, Epic, and ITAD integrations. Fix Epic dedup
IDs to distinguish current vs upcoming offers. Bump CheapShark fetch
page size from 10 to 60.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix SQLite connection string (drop query param, use explicit PRAGMA)
- Register sqlite3-fk-wal driver for mautrix cryptohelper (pure Go, no CGO)
- Fetch DeviceID via /whoami when using bare access token
- Log cross-signing results at Warn/Info instead of Debug
- Post deals into Matrix threads: Game Deals, DLC Deals, Epic Free Games
- Add numbered watchlist; !extend and !unwatch accept list numbers
- URL-encode search queries for multi-word !search commands
- Add GetConfig/SetConfig helpers for persistent thread event IDs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Following gogobee's auth pattern: if MATRIX_BOT_PASSWORD is set, the bot
persists device credentials to device.json, validates tokens on startup,
re-logs in automatically when tokens expire, and bootstraps cross-signing
so the device shows as verified without manual emoji verification.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Full rewrite of the gaming deals Matrix bot in Go for better performance
and a single static binary. Includes all original functionality (CheapShark,
ITAD, Epic free games, multi-currency pricing, dedup, preflight checks,
presence heartbeat) plus a new watchlist feature where users can DM the bot
to watch for specific game deals with 180-day auto-expiry.
New: systemd service file, DB migration script for Python-to-Go transition.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>