54e7db0ef0
完整功能包括: - FastAPI 后端 + SQLite + FTS5 全文搜索 - RSS 源管理、自动发现、OPML 导入导出 - 文章抓取、去重、分类、全文检索 - RSS 源健康度监控 - Vue 3 + Element Plus 暗色主题 Web UI - 对外 REST API 供 AI 分析调用 - Docker + docker-compose 部署
27 lines
951 B
Python
27 lines
951 B
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分钟
|
|
|
|
# 内容处理
|
|
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"
|