Add multi-country ITAD deals, configurable currency, and per-source filtering
- 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
This commit is contained in:
27
.env.example
27
.env.example
@@ -11,10 +11,31 @@ ITAD_API_KEY=
|
||||
# Requires ITAD_API_KEY when "itad" is included
|
||||
DEAL_SOURCES=cheapshark
|
||||
|
||||
# Deal filtering
|
||||
MIN_DEAL_RATING=8.0
|
||||
# ITAD countries: comma-separated ISO 3166-1 alpha-2 country codes
|
||||
# Deals are fetched for each country and merged (duplicates removed).
|
||||
# Examples: US, CA, GB, DE, FR, AU, BR, JP
|
||||
ITAD_COUNTRIES=US
|
||||
|
||||
# Currency display
|
||||
# DEFAULT_CURRENCY is shown first; EXTRA_CURRENCIES are shown after it.
|
||||
DEFAULT_CURRENCY=USD
|
||||
EXTRA_CURRENCIES=CAD,EUR,GBP
|
||||
|
||||
# CheapShark-specific filtering
|
||||
# (Falls back to shared MIN_DISCOUNT_PERCENT / MAX_PRICE if not set)
|
||||
#CHEAPSHARK_MIN_DISCOUNT=50
|
||||
#CHEAPSHARK_MIN_RATING=8.0
|
||||
#CHEAPSHARK_MAX_PRICE=20
|
||||
|
||||
# ITAD-specific filtering
|
||||
# (Falls back to shared MIN_DISCOUNT_PERCENT / MAX_PRICE if not set)
|
||||
#ITAD_MIN_DISCOUNT=50
|
||||
#ITAD_MAX_PRICE=20
|
||||
#ITAD_DEALS_LIMIT=100
|
||||
|
||||
# Shared filter defaults (used when source-specific values are not set)
|
||||
MIN_DISCOUNT_PERCENT=50
|
||||
MAX_PRICE_USD=20
|
||||
MAX_PRICE=20
|
||||
|
||||
# Send an intro message to the room on startup (true/false)
|
||||
SEND_INTRO_MESSAGE=false
|
||||
|
||||
Reference in New Issue
Block a user