# ═══════════════════════════════════════════════════════════════════ # REQUIRED # ═══════════════════════════════════════════════════════════════════ # Undermine Exchange API key (free with Patreon login) UNDERMINE_API_KEY=your_key_here # Telegram bot (get from @BotFather) TELEGRAM_BOT_TOKEN=your_bot_token TELEGRAM_CHAT_ID=your_chat_id # ═══════════════════════════════════════════════════════════════════ # REALM / REGION # ═══════════════════════════════════════════════════════════════════ # WoW region (us, eu, tw, kr) REGION=eu # Single realm (legacy — REALMS takes precedence if set) REALM=pozzo-delleternità # Multi-realm scanning — comma-separated realm slugs # Takes precedence over REALM above # REALMS=pozzo-delleternità,drakthul,nemesis # Alert when realm price ≤ this % of regional median (default: 5.0) PRICE_PERCENT_THRESHOLD=20.0 # ═══════════════════════════════════════════════════════════════════ # BLIZZARD API (optional — enables item names + vendor price lookup) # ═══════════════════════════════════════════════════════════════════ BLIZZARD_CLIENT_ID=your_client_id BLIZZARD_CLIENT_SECRET=your_client_secret # ═══════════════════════════════════════════════════════════════════ # CATEGORY FILTERING (Suggestion 6) # ═══════════════════════════════════════════════════════════════════ # Only scan these item classes (comma-separated Blizzard class IDs) # 0=Consumable, 3=Gem, 5=Reagent, 7=Trade Goods, 9=Recipe # Leave empty to scan all classes (except EXCLUDE_CLASSES) # FOCUS_CLASSES=0,3,5,7 # Always exclude these classes (default: 2,4 = Weapon,Armor) # EXCLUDE_CLASSES=2,4 # ═══════════════════════════════════════════════════════════════════ # DEAL SCORING WEIGHTS (Suggestion 3) # ═══════════════════════════════════════════════════════════════════ # Space-separated: discount_depth absolute_profit quantity velocity # Default: 0.35 0.35 0.15 0.15 # SCORE_WEIGHTS=0.35 0.35 0.15 0.15 # ═══════════════════════════════════════════════════════════════════ # STATE / PERSISTENCE # ═══════════════════════════════════════════════════════════════════ # State file (tracks alerted deals, watchlist, scan history) STATE_FILE_PATH=state.json # Price history database (SQLite) PRICE_HISTORY_DB=price_history.db # ═══════════════════════════════════════════════════════════════════ # TREND REPORT (Suggestion 10) # ═══════════════════════════════════════════════════════════════════ # Interval: 0=disabled, 1=daily, 7=weekly (default: 7) # TREND_REPORT_INTERVAL=7 # TREND_REPORT_DAY=monday # ═══════════════════════════════════════════════════════════════════ # INTERACTIVE BOT (Suggestion 1) # ═══════════════════════════════════════════════════════════════════ # Polling interval in seconds for the interactive bot daemon # Set 0 to disable the interactive bot # TELEGRAM_POLL_INTERVAL=30