truewhile
|
5f4b613bde
|
修复 115 云转码播放中途断流后直接掉到本地转码
115 云 HLS 会话只存在服务端内存里:服务重新部署、会话过期(30 分钟无活动)、
上游分片地址失效,都会让播放中的客户端在后续分片上拿到 404/410。原实现此时
直接退回本地转码,而低配宿主机本地转码追不上播放速度(实测 2 vCPU 只有
0.62x),用户看到的就是播放报废。
- 云 HLS 中途 fatal 时先重建会话续播(10 分钟内最多 3 次),仍失败才退回本地
- manifestLoadingMaxRetry 1 -> 4:master.m3u8 每次都要现调 115 接口,一次抖动
不该直接判死刑
- 播放列表重写改用上游地址哈希做 key:原来用自增序号,每次重写 entries 就膨胀
一轮、分片编号漂移(实测 762 段列表重写几次后 key 涨到 e2288..e3049)
- 会话条目数加上限,异常播放列表不会无限占用内存
- 客户端断开(seek / 切清晰度取消在途请求)不再记成 502,改记 499 与 nginx
对齐;会话失效返回带 code 的 404/410,便于前端判断需要重建会话
- 修正进度/时长上报:云 HLS 时间轴起点恒为 0,不应再叠加 hlsStartSec(历史上
把 7624s 的片子记成 8346s 并标成「已看完」)
- 切回直连 / 原画时保住播放位置:HLS 卸载会把 currentTime 归零,必须在切换前
先记下目标位置
|
2026-10-08 22:52:31 +08:00 |
|
truewhile
|
67ef9c95be
|
优化
|
2026-10-08 22:18:16 +08:00 |
|
truewhile
|
2bf1b27e23
|
优化翻页
|
2026-10-08 20:53:39 +08:00 |
|
truewhile
|
48a1c36a7a
|
优化
|
2026-10-08 20:13:46 +08:00 |
|
truewhile
|
d7665e4ef0
|
优化
|
2026-10-08 17:42:07 +08:00 |
|
truewhile
|
99916c0b97
|
优化
|
2026-10-08 13:48:06 +08:00 |
|
truewhile
|
1a3248f4bb
|
优化
|
2026-10-04 21:31:09 +08:00 |
|
truewhile
|
0be7f8b97e
|
优化
|
2026-10-04 17:50:26 +08:00 |
|
truewhile
|
227e0a9197
|
优化
|
2026-10-04 13:29:39 +08:00 |
|
truewhile
|
e85df5fb6b
|
优化
|
2026-10-04 12:35:33 +08:00 |
|
truewhile
|
6656f9c398
|
优化
|
2026-10-04 11:46:17 +08:00 |
|
truewhile
|
b0f1ab39b9
|
优化登录,优化阅读
|
2026-10-03 21:00:16 +08:00 |
|
truewhile
|
e961969207
|
优化
|
2026-10-03 18:25:13 +08:00 |
|
truewhile
|
b8b02cb3a7
|
优化
|
2026-10-03 14:21:07 +08:00 |
|
truewhile
|
60cfad47e5
|
优化
|
2026-10-03 14:05:24 +08:00 |
|
truewhile
|
47c8bfdd6c
|
bug处理
|
2026-10-03 13:38:18 +08:00 |
|
truewhile
|
ce3baee8f1
|
优化
|
2026-10-02 23:54:37 +08:00 |
|
truewhile
|
2494f0c0cd
|
优化
|
2026-10-02 23:09:35 +08:00 |
|
truewhile
|
c4e9926352
|
优化
|
2026-10-02 18:44:07 +08:00 |
|
truewhile
|
f3b88fad7c
|
优化
|
2026-10-02 17:56:16 +08:00 |
|
truewhile
|
83ec494a36
|
bug处理
|
2026-10-02 13:14:29 +08:00 |
|
truewhile
|
b8648f0049
|
bug处理
|
2026-10-02 12:02:29 +08:00 |
|
truewhile
|
5acfa6292a
|
优化
|
2026-10-02 11:05:59 +08:00 |
|
truewhile
|
6584519bd8
|
优化
|
2026-10-01 23:29:49 +08:00 |
|
truewhile
|
ce4319ec25
|
优化阅读功能
|
2026-10-01 21:57:25 +08:00 |
|
truewhile
|
c1ff55ffbf
|
开发
|
2026-09-30 19:22:24 +08:00 |
|
truewhile
|
fa41936095
|
feat(reader): P3+P4——音频源与漫画/图片源全链路支持
后端:
- /api/reader/media 签名媒体代理:HMAC-SHA256(jwtSecret, bookID|url) 防开放
中转滥用;免 JWT(audio/img 元素带不了头)但需有效签名+书籍存在
- 携书源级请求头与 Referer(防盗链)、Range 透传(音频拖动进度 206)、
m3u8 播放列表分片/密钥地址改写为签名代理(hls.js 无感续播)
- 音频/图片地址按最终页面 URL 绝对化,imageStyle 透传;
GetContentForBook 将 tracks/images 统一改写为代理地址
前端:
- ReaderAudioPanel(仿 ReadAloudDialog):hls.js 播 m3u8 / <audio> 直链,
上一章/播放暂停/下一章、进度条拖动、倍速 0.75–2x、按秒记忆进度、
播完自动下一章、点背景呼出菜单
- ReaderComic:上下滚动 / 左右单页双模式(复用翻页/滚动切换)、
图片懒加载+失败占位、滚动模式左右点击滚屏/中间呼菜单、
单页模式点击区翻页、菜单进度条按图片序号、按图片序号记忆进度
- 菜单进度条按内容类型适配(文本页/音频章节/漫画图片序号)
|
2026-09-30 17:12:16 +08:00 |
|
truewhile
|
9cc21a47c5
|
feat(reader): P2 收尾——冒烟 CLI、书架正文链路、替换净化规则
- SmokeChain 结构化全链路冒烟(搜索→详情→目录→正文,分阶段失败定位),
SmokeSource 支持不落库直测;Debug 接口改为结构化日志输出
- cmd/reader-smoke:批量书源冒烟 CLI(-file/-url 导入、并发、
各阶段通过率汇总、-json 完整报告)
- GetContentForBook:书架维度正文(章节缓存 + 书源 replaceRegex +
用户替换净化规则),前端阅读器切换到该接口
- 替换净化规则 CRUD(后端 + /reader/replace 前端页),用户规则
按 scope/excludeScope 书名过滤、正则带匹配超时防回溯挂死
- rule.ApplyUserReplace 导出(regexp2 MatchTimeout)
|
2026-09-30 16:55:52 +08:00 |
|
truewhile
|
d0b4255aa8
|
feat(reader): P1 前端——首页影视/阅读切换 + 书架/搜索/书源/详情/阅读器
- 首页顶部「影视/阅读」分段切换(zustand 持久化,阅读模式直渲染书架)
- /reader/* 独立全屏路由(不套影视 Layout):
书架(响应式网格 3→8 列)、搜索页(结果流+失败书源明细)、
书源管理(导入/启停/删除/快速调试日志)、详情页(目录+加书架)
- 阅读器仿 legado ReadMenu:6 套内置主题(日/夜色值对齐 readConfig.json)、
CSS 多栏分页 + 平移翻页/滚动双模式、三区点击 + 键盘翻页(桌面)、
上下章、目录抽屉(Virtuoso 虚拟滚动)、字号/行距/段距调节、
进度记忆(服务端同步 + 下一章预取)
- 桌面兼容:内容列 900px 限宽居中、鼠标悬停态、键盘快捷键
- 后端:详情/目录/正文接口支持 source_url 定位书源(书架链路)
|
2026-09-30 16:07:28 +08:00 |
|
truewhile
|
bad07f7add
|
优化支持0.5集
|
2026-09-27 13:52:17 +08:00 |
|
truewhile
|
594166f696
|
bug处理
|
2026-09-25 20:30:49 +08:00 |
|
truewhile
|
e0b07492a5
|
优化网页播放跳转
|
2026-09-25 13:24:10 +08:00 |
|
truewhile
|
3be6978e70
|
优化
|
2026-09-25 13:10:23 +08:00 |
|
truewhile
|
065652d758
|
优化
|
2026-09-24 22:27:09 +08:00 |
|
truewhile
|
e273b5e87d
|
优化
|
2026-09-24 11:43:17 +08:00 |
|
truewhile
|
28485ed429
|
优化
|
2026-09-23 17:01:08 +08:00 |
|
truewhile
|
34ccf14cda
|
优化视频头尾跳过功能
|
2026-09-23 16:07:28 +08:00 |
|
truewhile
|
94ef0116b1
|
添加跳过片头片尾功能
|
2026-09-23 10:22:13 +08:00 |
|
truewhile
|
b5ce4646cf
|
添加新功能,完善项目
|
2026-09-22 16:22:29 +08:00 |
|
truewhile
|
47899284a5
|
优化缩略图
|
2026-09-20 15:16:40 +08:00 |
|
truewhile
|
c24ebe181d
|
优化缩略图
|
2026-09-20 14:13:49 +08:00 |
|
truewhile
|
9b2b592003
|
优化
|
2026-09-20 13:33:45 +08:00 |
|
truewhile
|
0c4668c156
|
优化
|
2026-09-19 21:30:32 +08:00 |
|
truewhile
|
474513f18a
|
bug处理
|
2026-09-18 23:35:56 +08:00 |
|
truewhile
|
0810bfb234
|
bug处理
|
2026-09-18 22:52:09 +08:00 |
|
truewhile
|
61a7260eaf
|
优化,现有bug处理
|
2026-09-18 21:55:12 +08:00 |
|
truewhile
|
f4f57759ce
|
优化移动端播放
|
2026-09-18 11:28:33 +08:00 |
|
truewhile
|
6ec9adc976
|
优化移动端播放
|
2026-09-18 10:09:08 +08:00 |
|
truewhile
|
ae8db26c1e
|
bug处理
|
2026-09-17 23:20:58 +08:00 |
|
truewhile
|
8017e994f4
|
优化
|
2026-09-17 22:57:41 +08:00 |
|