Commit Graph

19 Commits

Author SHA1 Message Date
Claude
703f92d46c Add .gitignore for Python bytecode files
https://claude.ai/code/session_017eMsVwUopgmnEyd6JJedpV
2026-02-28 03:01:49 +00:00
Claude
0fd58c32b4 Add optional intro message on bot startup
When SEND_INTRO_MESSAGE=true, the bot sends "The deals must flow." as
an m.notice to the Matrix room right after startup, before the first
scheduled deal checks. Defaults to off.

https://claude.ai/code/session_017eMsVwUopgmnEyd6JJedpV
2026-02-28 03:01:20 +00:00
Claude
3f7e8196e3 Sort CheapShark deals by recency instead of deal rating
The bot polls periodically for new deals, but sorting by "Deal Rating"
meant it always returned the same top-rated deals and would never
discover new listings that aren't in the top 10 by rating. Sorting by
"recent" ensures newly added or updated deals are seen on each poll.

https://claude.ai/code/session_017eMsVwUopgmnEyd6JJedpV
2026-02-28 02:49:28 +00:00
Claude
c33e46c3cf Fix CheapShark rating filter: correct scale and skip unrated deals
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
2026-02-28 02:47:15 +00:00
prosolis
c145d83b0b Merge pull request #6 from prosolis/claude/gaming-deals-matrix-bot-ONjS7
Fixed confusing rating for CheapShark, added debugging.
2026-02-27 18:34:08 -08:00
Claude
c114f3e99f Add debug logging for deal filtering and --debug flag
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
2026-02-28 02:29:43 +00:00
Claude
88377e258a Use CheapShark's native 0-10 scale for MIN_DEAL_RATING
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
2026-02-28 02:21:24 +00:00
prosolis
7b05d86dc5 Merge pull request #5 from prosolis/claude/gaming-deals-matrix-bot-ONjS7
Load .env file at startup via python-dotenv
2026-02-27 18:05:40 -08:00
Claude
3138fe314f Load .env file at startup via python-dotenv
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
2026-02-28 02:04:37 +00:00
prosolis
b6b674ca0e Merge pull request #4 from prosolis/claude/gaming-deals-matrix-bot-ONjS7
Add --check preflight to validate config and connectivity
2026-02-27 17:54:31 -08:00
Claude
016d2c1973 Add --check preflight to validate config and connectivity
`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
2026-02-28 01:52:48 +00:00
prosolis
c09ecdbd21 Merge pull request #3 from prosolis/claude/gaming-deals-matrix-bot-ONjS7
Add instructions for obtaining a Matrix bot access token
2026-02-27 17:45:15 -08:00
Claude
d5f30487cb Add instructions for obtaining a Matrix bot access token
Walk through creating a bot account, logging in via the client API
to retrieve the access token, and inviting the bot to the room.

https://claude.ai/code/session_01LPpSZFfyh6vdV5HGFWjoQX
2026-02-28 01:39:32 +00:00
prosolis
aed260f345 Merge pull request #2 from prosolis/claude/gaming-deals-matrix-bot-ONjS7
Display all the main currencies
2026-02-27 16:58:54 -08:00
Claude
6fdbc9f9a0 Reduce exchange rate refresh to twice daily
Be respectful of the free Frankfurter API — ECB rates only update once
a day anyway, so a 12-hour cache TTL is more than sufficient.

https://claude.ai/code/session_01LPpSZFfyh6vdV5HGFWjoQX
2026-02-28 00:56:21 +00:00
Claude
8277cf37e2 Add multi-currency pricing (USD, CAD, EUR, GBP) for deal posts
Fetches live exchange rates from the Frankfurter API (ECB data, free,
no API key) and displays converted prices alongside USD in every deal
message. Rates are cached in memory and auto-refreshed hourly.

https://claude.ai/code/session_01LPpSZFfyh6vdV5HGFWjoQX
2026-02-28 00:51:52 +00:00
prosolis
ba1a3811d6 Merge pull request #1 from prosolis/claude/gaming-deals-matrix-bot-ONjS7
Add gaming deals Matrix bot
2026-02-27 16:07:45 -08:00
Claude
6e84429ad1 Add gaming deals Matrix bot
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
2026-02-28 00:00:22 +00:00
prosolis
11a3eace9f Initial commit 2026-02-27 15:47:43 -08:00