37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
"""
|
|
配置文件 - 从 config.json 读取配置,支持环境变量覆盖
|
|
"""
|
|
import json
|
|
import os
|
|
|
|
_config = {}
|
|
|
|
def _load_config():
|
|
global _config
|
|
config_path = os.path.join(os.path.dirname(__file__), 'config.json')
|
|
defaults = {
|
|
'backend_url': 'http://localhost:5000',
|
|
'browser_type': 'edge',
|
|
'headless_mode': False,
|
|
'page_load_timeout': 30
|
|
}
|
|
if os.path.exists(config_path):
|
|
with open(config_path, 'r', encoding='utf-8') as f:
|
|
_config = {**defaults, **json.load(f)}
|
|
else:
|
|
_config = defaults
|
|
|
|
def get(key, default=None):
|
|
if not _config:
|
|
_load_config()
|
|
return _config.get(key.upper(), _config.get(key, default))
|
|
|
|
# 兼容旧接口
|
|
BACKEND_URL = os.environ.get('BACKEND_URL') or get('backend_url', 'http://localhost:5000')
|
|
BROWSER_TYPE = os.environ.get('BROWSER_TYPE') or get('browser_type', 'edge')
|
|
HEADLESS_MODE = os.environ.get('HEADLESS_MODE') or get('headless_mode', False)
|
|
if isinstance(HEADLESS_MODE, str):
|
|
HEADLESS_MODE = HEADLESS_MODE.lower() in ('true', '1', 'yes')
|
|
CHECK_INTERVAL = int(os.environ.get('CHECK_INTERVAL') or get('check_interval', 30))
|
|
PAGE_LOAD_TIMEOUT = int(os.environ.get('PAGE_LOAD_TIMEOUT') or get('page_load_timeout', 30))
|