- ITAD deals can now be fetched from multiple countries simultaneously via
ITAD_COUNTRIES (e.g. US,CA,GB,DE). Deals are merged across regions and
deduplicated by game+shop, with the first country taking priority.
- Prices from non-USD regions are normalised to USD using exchange rates
so filtering (max price) works consistently across countries.
- ITAD results are now sorted by newest deals first (client-side by
timestamp) instead of only by highest discount, reducing missed deals.
- Default fetch limit raised from 20 to 100 to capture more deals.
- Display currency is now configurable: DEFAULT_CURRENCY sets the primary
currency shown first, EXTRA_CURRENCIES sets additional ones. All
Frankfurter-supported currencies are available with proper symbols.
- Filtering is now per-source with dedicated env vars:
CHEAPSHARK_MIN_DISCOUNT, CHEAPSHARK_MIN_RATING, CHEAPSHARK_MAX_PRICE,
ITAD_MIN_DISCOUNT, ITAD_MAX_PRICE, ITAD_DEALS_LIMIT. Shared fallbacks
(MIN_DISCOUNT_PERCENT, MAX_PRICE) are still supported. Legacy
MAX_PRICE_USD and MIN_DEAL_RATING continue to work as fallbacks.
https://claude.ai/code/session_01EfPjktyrF24DBNHWsY1KBP