Files
ai_mip/config.py
2026-01-13 18:59:26 +08:00

82 lines
2.4 KiB
Python

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