4286731348
- 添加 HTTP 代理支持(国内直连、外网走代理) - 外部 API 新增全文搜索、源健康度/错误筛选、未读筛选 - 修复 APScheduler 线程静默崩溃(_safe_fetch 异常保护) - 健康检查暴露调度器状态 - Dashboard 新增每日文章数柱状图(按 published_at) - 文章列表 API 补上 content 字段,日期筛选修复时间范围 - 修复外部 API 双重 external 前缀 - User-Agent 改为 Chrome 标识缓解 403 - 添加完整 API 接口文档 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
"""配置管理 - 环境变量 + 默认值"""
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# 项目根目录
|
|
BASE_DIR = Path(__file__).parent
|
|
DATA_DIR = Path(os.getenv("DATA_DIR", "/app/data"))
|
|
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
|
|
|
# 数据库
|
|
DATABASE_URL = os.getenv("DATABASE_URL", str(DATA_DIR / "rsskeeper.db"))
|
|
|
|
# RSS 抓取配置
|
|
FETCH_CONCURRENCY = int(os.getenv("FETCH_CONCURRENCY", "10"))
|
|
FETCH_TIMEOUT = int(os.getenv("FETCH_TIMEOUT", "30"))
|
|
DEFAULT_FETCH_INTERVAL = int(os.getenv("DEFAULT_FETCH_INTERVAL", "60")) # 分钟
|
|
MIN_FETCH_INTERVAL = int(os.getenv("MIN_FETCH_INTERVAL", "15")) # 最小间隔15分钟
|
|
|
|
# 代理配置(用于访问外网源)
|
|
HTTP_PROXY = os.getenv("HTTP_PROXY", "")
|
|
HTTPS_PROXY = os.getenv("HTTPS_PROXY", "")
|
|
|
|
# 内容处理
|
|
MAX_ARTICLE_CONTENT_LENGTH = int(os.getenv("MAX_ARTICLE_CONTENT_LENGTH", "50000"))
|
|
MAX_SUMMARY_LENGTH = int(os.getenv("MAX_SUMMARY_LENGTH", "500"))
|
|
ARTICLE_RETENTION_DAYS = int(os.getenv("ARTICLE_RETENTION_DAYS", "0")) # 0 = 永久保留
|
|
|
|
# API 配置
|
|
API_PREFIX = "/api"
|
|
EXTERNAL_API_PREFIX = "/api/v1/external"
|