import os from dotenv import load_dotenv # 获取运行环境,默认为 development ENV = os.getenv('ENV', 'development') # 根据环境加载对应的配置文件 if ENV == 'production': env_file = '.env.production' else: env_file = '.env.development' # 加载环境配置文件 from pathlib import Path env_path = Path(env_file) if env_path.exists(): load_dotenv(env_file) # 始终显示配置加载信息(便于调试) print(f"[Config] 加载配置文件: {env_path.absolute()}") api_key = os.getenv('ADSPOWER_API_KEY', '') if api_key: print(f"[Config] ADSPOWER_API_KEY: {api_key[:8]}... (长度: {len(api_key)})") else: print(f"[Config] ADSPOWER_API_KEY: 未设置") else: print(f"[Config] 警告: 配置文件不存在 {env_path.absolute()}") load_dotenv() # 尝试加载默认的 .env class BaseConfig: """基础配置类""" # 环境标识 ENV = ENV # AdsPower配置 ADSPOWER_API_URL = os.getenv('ADSPOWER_API_URL', 'http://local.adspower.net:50325') ADSPOWER_USER_ID = os.getenv('ADSPOWER_USER_ID', '') ADSPOWER_API_KEY = os.getenv('ADSPOWER_API_KEY', '') # 可选,某些版本需要 # 服务配置 SERVER_HOST = os.getenv('SERVER_HOST', '0.0.0.0') SERVER_PORT = int(os.getenv('SERVER_PORT', 5000)) # 点击策略配置 MIN_CLICK_COUNT = int(os.getenv('MIN_CLICK_COUNT', 1)) MAX_CLICK_COUNT = int(os.getenv('MAX_CLICK_COUNT', 10)) CLICK_INTERVAL_MINUTES = int(os.getenv('CLICK_INTERVAL_MINUTES', 30)) WORK_START_HOUR = int(os.getenv('WORK_START_HOUR', 9)) WORK_END_HOUR = int(os.getenv('WORK_END_HOUR', 21)) REPLY_WAIT_TIMEOUT = int(os.getenv('REPLY_WAIT_TIMEOUT', 30)) # 数据存储路径 DATA_DIR = os.getenv('DATA_DIR', './data') LOG_DIR = os.getenv('LOG_DIR', './logs') # 调试模式 DEBUG = os.getenv('DEBUG', 'False').lower() == 'true' @classmethod def ensure_dirs(cls): """确保必要的目录存在""" os.makedirs(cls.DATA_DIR, exist_ok=True) os.makedirs(cls.LOG_DIR, exist_ok=True) class DevelopmentConfig(BaseConfig): """开发环境配置""" DEBUG = True class ProductionConfig(BaseConfig): """生产环境配置""" DEBUG = False # 根据环境选择配置 if ENV == 'production': Config = ProductionConfig else: Config = DevelopmentConfig