-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration Reference
配置按以下优先级解析:
-
数据库(
tmdb_watchlist.db→webui_config表)— 最高优先级 - OpenList API — 动态 STRM 存储映射(API 层本身由 DB 门控:仅当 DB 中配置了 host/credentials 后才会调用 API)
- config.toml — 静态文件配置(首次迁移后,大部分被 DB 覆盖)
- 默认值 — dataclass 定义中的硬编码默认值
所有配置类定义在 src/config.py 中,为类型化 dataclass。
[local]
db_file = "./bridge.db"| 键 | 默认值 | 说明 |
|---|---|---|
db_file |
"./bridge.db" |
核心数据库路径 |
[paths]
b_root = "./测试b"
c_root = "./测试c"| 键 | 默认值 | 说明 |
|---|---|---|
b_root |
"" |
B 区根目录(媒体库消费) |
c_root |
"" |
C 区根目录(幽灵收容) |
[webdav]
host = "http://192.168.1.100:5243"
user = "admin"
password = ""
totp_secret = ""| 键 | 默认值 | 说明 |
|---|---|---|
host |
"" |
OpenList WebDAV 地址,末尾斜杠和 /dav 后缀自动移除 |
user |
"" |
管理员用户名(需管理员权限) |
password |
"" |
管理员密码 |
totp_secret |
"" |
TOTP 二步验证密钥,支持 base32 和 base64 编码 |
| 键 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
启用周期 WebDAV 刷新 |
interval_minutes |
10 |
刷新间隔(分钟),内部转秒:interval_seconds = interval_minutes * 60
|
depth |
5 |
WebDAV PROPFIND 扫描深度 |
timeout_seconds |
300 |
刷新操作超时时间(秒) |
log_level |
"INFO" |
刷新日志级别:DEBUG/INFO/WARNING |
| 键 | 默认值 | 说明 |
|---|---|---|
sync_on_startup |
true |
启动时是否执行全量同步 |
sync_on_startup_wait |
0 |
同步前等待秒数 |
trash_dir_name |
"trash" |
云端回收站目录名 |
action |
"MOVE" |
删除动作:MOVE(移到回收站,安全)或 DELETE(永久删除) |
ghost_protect_seconds |
300 |
幽灵保护时长(秒) |
a_to_b_restore_delay_seconds |
30 |
损坏文件恢复前等待秒数 |
| 键 | 默认值 | 说明 |
|---|---|---|
level |
"INFO" |
日志级别:DEBUG/INFO/WARNING/ERROR |
file |
"strm_bridge.log" |
日志文件路径(默认位于项目根目录) |
max_size_mb |
2 |
单文件最大 MB,超限轮转 |
backup_count |
5 |
保留的轮转备份数 |
| 键 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
启用 WebUI |
port |
8579 |
HTTP 监听端口 |
bind |
"0.0.0.0" |
监听地址。"127.0.0.1" 仅本地访问 |
注意:
[tmdb]TOML 段已废弃。from_file()显式忽略此段的 TOML 值,TMDB 配置仅从数据库加载(通过 WebUI 配置页管理)。以下仅供参考,用于初始迁移。
| 键 | 默认值 | 说明 |
|---|---|---|
access_token |
"" |
TMDB API v3 访问令牌(Bearer 认证,用于 /3/account 等账户端点) |
api_key |
"" |
TMDB API v3 密钥(查询参数认证) |
language |
"zh-CN" |
TMDB API 语言参数 |
host |
"" |
自定义 TMDB 反向代理 |
watchlist_cache_ttl |
604800 |
待看列表缓存 TTL(秒,默认 7 天) |
fuzzy_threshold |
0.60 |
标题模糊匹配最低相似度(0.0-1.0) |
anime_min_ep_ratio |
0.30 |
番剧匹配最少集数比例 |
anime_max_season_diff |
0.3 |
番剧匹配允许的最大季数差(运行时未读取,当前无效) |
anime_min_season_ratio |
0.3 |
番剧匹配最少季数比例 |
csv_watchlist_file |
"" |
CSV 待看列表文件路径(可选) |
watchlist_db |
"" |
自定义 TMDB 待看列表数据库路径(可选,默认项目根 tmdb_watchlist.db)。注:此字段虽存在,但 routes.py 硬编码数据库路径,实际未被读取 |
proxy_enabled |
false |
启用 TMDB API 代理 |
proxy_http |
"" |
HTTP 代理地址 |
proxy |
{} |
嵌套代理配置 TmdbProxyConfig(含 enabled、http、https) |
webui_config 表存储运行时配置,可覆盖 config.toml 值。通过 WebUI 配置页管理。
| Scope | 键 | 说明 |
|---|---|---|
tmdb |
access_token |
TMDB 访问令牌 |
tmdb |
api_key |
TMDB API 密钥 |
tmdb |
language |
语言偏好 |
tmdb |
host |
自定义 TMDB 地址 |
tmdb |
watchlist_cache_ttl |
缓存 TTL 覆盖 |
tmdb |
fuzzy_threshold |
匹配阈值 |
tmdb |
proxy_enabled |
TMDB 代理开关 |
tmdb |
proxy_http |
TMDB HTTP 代理地址 |
tmdb |
watchlist_enabled |
待看列表功能开关 |
tmdb |
anime_min_ep_ratio |
番剧最少集数比例 |
tmdb |
anime_max_season_diff |
番剧最大季数差(运行时未读取,当前无效) |
tmdb |
anime_min_season_ratio |
番剧最少季数比例 |
tmdb |
csv_watchlist_file |
CSV 待看列表文件路径 |
tmdb |
watchlist_db |
自定义 TMDB 待看列表数据库路径 |
openlist |
webdav_host |
OpenList 主机 |
openlist |
webdav_user |
OpenList 用户 |
openlist |
webdav_password |
OpenList 密码(加密存储) |
openlist |
webdav_totp_secret |
TOTP 密钥(加密存储) |
openlist |
b_root |
B 区根目录 |
openlist |
c_root |
C 区根目录 |
openlist |
strm_engines |
引擎配置(从 WebUI 写入,派生 a_folders 和 strm_engine_paths) |
openlist |
engines_initialized |
引擎初始化标志(迁移时设为 true) |
openlist |
refresh_paths |
刷新路径 |
openlist |
refresh_enabled |
刷新开关 |
openlist |
refresh_interval_minutes |
刷新间隔(分钟,内部转秒) |
openlist |
refresh_depth |
WebDAV PROPFIND 扫描深度 |
openlist |
refresh_log_level |
刷新日志级别 |
openlist |
behavior_action |
删除行为(MOVE/DELETE) |
openlist |
behavior_trash_dir_name |
云端回收站目录名 |
openlist |
behavior_ghost_protect_seconds |
幽灵保护时长(秒) |
openlist |
behavior_a_to_b_restore_delay_seconds |
损坏文件恢复前等待秒数 |
openlist |
behavior_sync_on_startup |
启动时全量同步 |
openlist |
behavior_sync_on_startup_wait |
同步前等待秒数 |
openlist |
log_level |
日志级别 |
openlist |
log_max_size_mb |
日志文件最大 MB |
openlist |
log_backup_count |
日志轮转备份数 |
openlist |
log_file |
日志文件路径 |
ui |
admin_password |
PBKDF2 密码哈希 |
ui |
onboarding_completed |
引导完成标记 |
ui |
tmdb_cache_never_remind |
缓存过期不再提醒 |
ui |
tmdb_match_toast_disabled |
匹配 Toast 禁用 |
migration |
config_toml_migrated |
迁移跟踪 |
注:
a_folders不是 DB 键,而是从strm_engines动态派生的 A 区本地路径列表。
从 OpenList Admin API 动态加载(config.py:load_strm_storage_from_api()):
# app_service_core.py — 存储节点信息快照(5 字段)
@dataclass(slots=True, frozen=True)
class StrmStorageInfo:
id: int
mount_path: str # 引擎挂载点,如 /测试a
status: str # work 或其他
paths: list[str] # 监控的云端路径
save_local_mode: str # 保存模式,须为 update
# config.py — 存储映射关系(3 字段,无 frozen/slots 修饰)
@dataclass
class StrmStorageMapping:
mount_path: str # 引擎挂载点
paths: list[str] # 监控的云端路径
local_path: str # A 区本地路径注:
status/save_local_mode属于StrmStorageInfo,不属于StrmStorageMapping。config.py中的主要配置段使用slots=True;StrmStorageMapping等简单映射类仅用@dataclass;StrmStorageInfo使用slots=True, frozen=True。
OpenList 后台配置 程序内部映射
┌─────────────────────┐ ┌─────────────────────┐
│ 存储名称: 天翼云盘 │ │ engine_entry: /测试a │
│ 驱动: strm │ ──▶ │ cloud_path: /天翼云盘/│
│ 挂载路径: /测试a │ │ 番剧 │
│ SaveStrmLocalPath: │ │ local_path: C:/测试a/│
│ C:/测试a │ │ 测试a │
│ 工作模式: update │ └─────────────────────┘
│ 状态: work │ ↑ StrmStorageMapping
└─────────────────────┘ ↑ StrmStorageInfo(含 status/save_local_mode)
OpenListAdminClient 将 JWT Token 缓存到 ~/.openlist_admin_token.json,避免重复登录。Token 过期前 60 秒自动刷新。401 时清除缓存并重新登录。
系统支持多个 STRM 引擎并行工作,每个引擎有独立的 A 区目录、血统校验范围、主动刷新任务和幽灵保护空间。
🏡 返回 Wiki 首页 • 💻 项目源码仓库 • 🐛 提交 Bug / 建议 • 📦 下载最新版本
🚨 安全与自保黄金法则(每页必读)
- 严禁随意重置 OpenList 令牌:播放签名(
?sign=)强依赖服务端密钥。一旦重置,B区所有.strm将瞬间失效报无权播放,只能清库重来!- 调试阶段切勿使用 DELETE:
DELETE会物理删除云端文件,极其危险!建议终身配置为action = "MOVE"(云端一比一树状回收站模式)。- 放心刮削,资产安全:空文件夹清理算法采用严格的零物理文件判定,含有海报图片、
.nfo、外部字幕的目录绝对不会被误删。
本项目遵循 MIT 开源协议。数据无价,请在充分测试后接入生产环境。