Two bugs fixed:
1. Function signature used old 0-100 scale defaults (min_rating: int = 80)
but dealRating from CheapShark is 0-10. Updated to float = 8.0.
2. Deals with dealRating of 0.0 (unrated/insufficient data) were being
filtered out as "poorly rated". Now treats 0.0 as unrated and skips
the rating check, so games like Leisure Suit Larry that lack a
CheapShark deal rating aren't incorrectly excluded.
https://claude.ai/code/session_017eMsVwUopgmnEyd6JJedpV
Log the raw deal count before filtering and log each filtered-out
deal with the reason (savings too low, rating too low) at DEBUG level.
Use --debug flag to enable verbose output for troubleshooting.
https://claude.ai/code/session_01LPpSZFfyh6vdV5HGFWjoQX
The previous 0-100 scale with a * 10 conversion was confusing —
CheapShark returns deal ratings as floats (e.g. 9.8, 7.5) so the
config should match. Default is now 8.0 instead of 80.
https://claude.ai/code/session_01LPpSZFfyh6vdV5HGFWjoQX
Implements a Matrix bot that posts PC gaming deals and free game alerts:
- CheapShark API integration (Steam, GOG, Humble, GMG) polled every 2 hours
- Epic Games Store free games detection polled daily
- IsThereAnyDeal historical low price flagging (optional)
- SQLite deduplication with 30-day pruning
- First-run population (records existing deals without posting)
- Matrix-flavored HTML + plain text fallback messages
- Dockerfile for containerized deployment
https://claude.ai/code/session_01LPpSZFfyh6vdV5HGFWjoQX