from pathlib import Path from pydantic_settings import BaseSettings, SettingsConfigDict ROOT_DIR = Path(__file__).resolve().parents[2] class Settings(BaseSettings): model_config = SettingsConfigDict( env_file=str(ROOT_DIR / ".env"), env_file_encoding="utf-8", extra="ignore", ) wecom_webhook_url: str = "" binance_fapi_base: str = "https://fapi.binance.com" top_n: int = 30 volume_threshold: float = 10_000_000 change_threshold: float = 5.0 refresh_minutes: int = 5 host: str = "127.0.0.1" port: int = 21450 db_path: str = str(ROOT_DIR / "data" / "monitor.db") max_concurrency: int = 3 request_interval_sec: float = 0.15 ban_cooldown_sec: int = 90 max_retries: int = 5 candidate_pool: int = 150 # 代理默认关闭;仅当 PROXY_ENABLED=true 时生效 proxy_enabled: bool = False proxy_url: str = "socks5h://192.168.8.4:1081" proxy_for: str = "binance" # binance | wecom | all settings = Settings()