Files
reader/docs/media-features.md

33 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 影音模块开关与纯阅读模式
管理员可以在网页中即时控制全站影音及各用户的影音权限,无需重启服务。
## 全站开关
进入「我的 → 服务配置」,在「配置分类」选择「功能模块」:
- **启用影音模块**:默认开启。关闭前需要确认;关闭后所有账号(包括管理员)进入纯阅读模式,停止影音播放、扫描和刮削任务,退出影音 worker。下次启动也不会打开影音数据库或启动影音 worker。重新开启后显示启动状态;失败时保留阅读功能,可以关闭再开启以重试。
- **新用户默认启用影音**:默认开启,仅用于之后注册或由管理员创建的账号,不修改已有用户。管理员创建账号时可以单独覆盖该默认值。
关闭不会删除媒体文件、影音数据库、封面、收藏和播放记录。重新开启仍使用原数据;被停止的扫描或刮削任务不会自动恢复,可在任务页面手动重试。正常的周期自动扫描仍遵循原有扫描设置。
## 用户开关
进入「我的 → 用户管理」,每个账号都有「启用影音 / 关闭影音」操作,管理员也可以修改自己的影音权限。全站关闭时仍可配置各账号权限,重新开启全站开关后生效。
影音访问必须同时满足:全站开启、当前账号开启、原有媒体库权限允许。管理员没有绕过总开关或用户开关的特权,但始终能访问用户管理和服务配置以恢复权限。
用户关闭影音后,不再显示影音导航、首页推荐、搜索结果和播放偏好;时长统计仅展示阅读。旧影音链接显示未启用提示。PDF、漫画、书籍、书源、OPDS 和书籍朗读 TTS 不受影响。
## 生效与边界
- 服务端每次请求重新检查权限,旧登录 token 不会绕过新配置,也不需要退出登录。播放票据和后台播放授权同样检查最新账号权限。
- 已建立的服务器影音流每秒检查一次权限,撤权后断开;其他用户不受影响。全站关闭时安全停止影音后台任务,超出 worker 关闭期限时终止 worker,由原有任务恢复逻辑标记中断。
- 当前管理页面保存后立即刷新能力;其他在线页面最多约 15 秒刷新一次,窗口重新获得焦点或联网时也会刷新。页面更新速度不影响服务端拒绝新请求。
- 多个服务实例共享核心数据库时,影音生命周期每两秒检查一次全站配置;总开关对共享该数据库的实例共同生效,不是某个容器的独立设置。
- 浏览器已缓存的数据无法收回;已经重定向到第三方存储的播放直链不受 Reader 控制,撤权无法立即切断该第三方连接。需要严格即时阻断时应使用服务器代理播放,并自行限制第三方直链的有效期。
配置保存在核心数据库 `business_settings` 的 `modules` 分类,用户权限在 `users.media_enabled` 中,均不依赖影音 worker。升级时已有用户默认保留影音权限。`/api/v1/instance` 返回全站 `features.media`;`/api/v1/auth/me` 的用户对象返回 `mediaEnabled`、有效 `features.media` 以及 `mediaState`。关闭时影音普通接口返回 `403 / MEDIA_DISABLED`,失效的播放票据仍沿用原有票据错误响应。
能力信息随当前登录会话在设备保存,离线恢复沿用上次已确认的权限;切换服务器或账号后会重新确认,不使用前一账号的能力信息。