2026-01-13 18:59:26 +08:00
|
|
|
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'
|
|
|
|
|
|
2026-01-16 22:06:46 +08:00
|
|
|
# 测试配置
|
|
|
|
|
AUTO_CLOSE_BROWSER = os.getenv('AUTO_CLOSE_BROWSER', 'False').lower() == 'true' # 测试完成后是否自动关闭浏览器
|
|
|
|
|
|
|
|
|
|
# MySQL数据库配置
|
|
|
|
|
MYSQL_HOST = os.getenv('MYSQL_HOST', 'localhost')
|
|
|
|
|
MYSQL_PORT = int(os.getenv('MYSQL_PORT', 3306))
|
|
|
|
|
MYSQL_USER = os.getenv('MYSQL_USER', 'root')
|
|
|
|
|
MYSQL_PASSWORD = os.getenv('MYSQL_PASSWORD', '')
|
|
|
|
|
MYSQL_DATABASE = os.getenv('MYSQL_DATABASE', 'ai_article')
|
|
|
|
|
|
2026-01-13 18:59:26 +08:00
|
|
|
@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
|