Skip to content

feat:增加字幕功能与记住我! - #176

Open
wacpi wants to merge 308 commits into
wangzmgit:webfrom
wacpi:web
Open

wacpi wants to merge 308 commits into
wangzmgit:webfrom
wacpi:web

Conversation

@wacpi

@wacpi wacpi commented Jun 20, 2026

Copy link
Copy Markdown

01:修复安全问题!
02:新增字幕功能!
03:新增记住登录!

aimiliyaai and others added 30 commits June 29, 2025 00:16
fix: 优化进度请求,支持切换分集恢复进度,
fix: 修改分享弹出机制!
fix: 修改分享功能导致的内存溢出问题!
wacpi and others added 30 commits June 18, 2026 22:34
Add TranscodingConfig.vue with mode toggle, codec, concurrency params.

Add tab entry, API calls, and types. Remove duplicate transcoding fields from OtherConfig.

Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
login.vue: validate redirect (same-origin only)

request.ts: add X-Requested-With header
CSP, HSTS, X-Frame-Options, X-Content-Type-Options,

Referrer-Policy, Permissions-Policy per route type
- auth-store: token 只存在 Pinia state(内存)中,不再写入 localStorage
- saveCredentials: 不再写 localStorage/Cookie token,仅设内存 + user_id Cookie
- request.ts: 从 getBrowserToken() 读取内存 token;refresh 依赖 HttpOnly Cookie
- auth-sync.client: 移除 storage 事件监听(不再需要)
- auth-init.server: 移除 Cookie.token 读取,直接转发 Cookie 让后端处理
- watch.vue: 移除 localStorage refreshToken 的手动续签逻辑
Nuxt 3 运行时无需 eval(模板预编译),移除后降低 XSS 利用面
- 新增 changePasswordAPI(v1/auth/changePassword)
- security.vue 改为内联表单(旧密码 → 新密码 → 确认密码)
- 忘记密码链接保留,指向 /setpassword
1. timeupdate 兜底:从 currentTime >= duration - 0.35 改为 video.ended 判断,
   消除提前 0.35s 截断导致的进度条显示异常(1:29 vs 1:30)
2. 双击回放:移除 playbackEnded 里的 seek(0)(播完瞬间跳0),
   改为 patch wplayer.play() 在用户点击播放且视频已结束时才重启 MediaSource
3. 嵌入代码:新增 props.rid 替代 route.query.rid,不受 history.replaceState 限制
- partList 构造时 shortId 从 resource.shortId 改为 props.vid
- 新增 resourceRid: resource.shortId 用于精确标识分P资源
- 修复合集/分P自动连播导航到错误 URL 的问题

之前自动下一集会生成 ?v=<资源rid>&p=<分P号>
现在正确生成 ?v=<视频shortId>&rid=<资源shortId>
getVideoStatusAPI 参数改为 string | number(后端 ParseVideoID 已兼容)
video-manage.vue 编辑/字幕管理传 item.shortId || item.vid
upload/video.vue route.query.vid 不再强转 Number
SubtitleManageDialog.vue vid 类型扩展为 string | number | null
subtitle/list 已传 resourceShortId 无需改动
- SubtitleTrackItemType 新增 shortId 字段
- updateSubtitleAPI/deleteSubtitleAPI 接受 string | number
- ResourceSubtitleEditor 使用 t.shortId || t.id 传参
- 全屏模式下显示选集下拉按钮(支持分P/合集/PGC)
- 片尾 2s 自动连播倒计时提示(分P/合集)
- 移除 :key 强制销毁重建,原地切换分P保持全屏
- 修复 showAdvanceToast innerHTML 视频标题未转义导致 XSS
- PGCSeasonPanel/VideoCollection expose 选集所需数据
- LoginReq/EmailLoginReq 增加 rememberMe 字段
- 勾选时 refresh cookie maxAge 设为 30 天,否则 7 天
- 默认勾选「记住我」
- 后端 GenerateRefreshToken/SetRefreshToken 支持动态 TTL
新增 reTranscodeResourceAPI 支持单分P级别重新转码,失败列展开显示各分P状态并可按P单独重试

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
分P切换时保留浏览器全屏状态
连播切换分P时从 localStorage 恢复清晰度偏好
setDanmaku 捕获异常不阻断弹幕列表更新
暴露 isLoopEnabled 供 auto-advance 判断循环模式

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
computeNextAdvance 与 onVideoEnded 合集分支均按 mergedList[currentIndex]
取下一项,绕过 getNextVideo 的 vid/shortId 匹配逻辑
advancePending 仅用于 UI 倒计时,导航在 onVideoEnded 实时计算
消除 polling 闭包捕获与数据过渡期的时间差

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
RecommendList + PGCRecommendList 添加 watch(() => props.vid),合集内自动连播切换视频时重新请求相关推荐

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
• 降级时不改 defaultQuality.value,保持用户偏好给下个视频
• quality_start 不再存 localStorage
• 改为 switchQuality 拦截(仅用户主动点击保存)
• Bug 01 fix fallback 路径也不写 localStorage
• 修复 player.off is not a function

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
computeNextAdvance 和 onVideoEnded 都使用
VideoCollection.getNextVideo(),避免 merged[idx]
位置索引与合集 getNextVideo 逻辑不一致

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
新增 addEpMode 切换(upload / bind),绑定模式允许手动
输入已有视频 ID 替代上传,后端接口复用已有流程。
- video-manage: 去掉总进度条,单画质可重试,warn状态支持
- upload: Plan B fileID(DirName),cover blob URL直传,VideoMeta前端探针
- video-player: HLS加密播放支持
- art-player: 弹幕与控制栏修复
- HistoryVideoList: 暗色模式修复
- hls-player: 加密密钥缓存
- uploadDirectToOSS改为while循环分批上传
- 每批20个分片,上传完调presignChunks续签下一轮
- 采集ETag传给completeVideo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants