Running directly with `python -m gaming_deals_bot` didn't pick up
variables from .env — only the Docker path (--env-file) did. Now
dotenv is loaded before config parsing so both workflows work.
https://claude.ai/code/session_01LPpSZFfyh6vdV5HGFWjoQX
`python -m gaming_deals_bot --check` tests each external dependency
before starting the bot:
- Matrix: verifies access token (whoami) and room membership
- CheapShark: hits the deals endpoint
- Epic Games Store: hits the free-games endpoint
- Frankfurter: fetches exchange rates
- IsThereAnyDeal: validates the API key (skipped if not set)
Exits 0/1 so it works in CI pipelines and Docker health-checks.
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