Commit Graph

210 Commits

Author SHA1 Message Date
x1ao4
d7589ef57d 在初始化字幕命名规则时自动带入默认值
- 当升级/新部署且缺少字段时,自动为 task_settings 填入:
  - subtitle_naming_rule: "zh"
  - subtitle_add_language_code: false
- 仅在字段为 undefined 时填充,不覆盖用户已有值(包括用户手动清空为 "" 的情况)
- 保证 WebUI 首次显示直观一致,同时保持用户配置可控、向后兼容
2025-09-29 15:43:31 +08:00
x1ao4
1f99f66ce5 新增字幕命名规则功能,支持在全局设置字幕文件的语言代码后缀
- 添加字幕文件语言代码后缀自动添加功能
- 支持 .srt/.ass/.ssa/.vtt/.sup 等常见字幕格式
- 在系统配置中提供语言代码设置和启用开关
- 覆盖所有重命名场景:预览界面、任务执行、文件整理
- 支持顺序命名、剧集命名、正则表达式命名模式
- 避免重复添加语言代码后缀
- 默认语言代码为 "zh",默认禁用状态

功能说明:
- 用户可在系统配置中设置字幕文件的语言代码(如 "zh")
- 启用后,所有字幕文件重命名时自动添加语言代码后缀
- 例如:`movie.srt` → `movie.zh.srt`
- 支持所有命名模式和预览功能
- 向后兼容,不影响现有功能
2025-09-29 15:19:11 +08:00
x1ao4
da051409df 为重置文件夹功能增加 SSE 推送,支持相关数据的实时更新 2025-09-23 14:10:27 +08:00
x1ao4
9bd7068f0e 修复模态框重命名列的排序问题,修复集编号识别规则未自动清空的问题 2025-09-23 10:56:44 +08:00
x1ao4
27ee3948b8 优化集编号识别规则与逻辑,修复文件整理页面命名预览模态框重命名列的排序问题 2025-09-23 09:14:04 +08:00
x1ao4
f7371b660b 将 TMDB 及网络重试日志的输出调整为 DEBUG 级别
- tmdb_service 中主/备地址失败与切换日志改为 debug
- run.py 设置 urllib3/requests 日志级别为 ERROR
- 为 urllib3.connectionpool 添加过滤器,自动将 “Retrying (...)” 告警降为 DEBUG
2025-09-22 23:37:34 +08:00
x1ao4
06b6ab04d4 为追剧日历的海报视图和日历视图增加拼音排序功能
- 在 getEpisodesByDate 中对当日节目结果进行拼音升序排序
- 合并集开启时先合并同节目多集,再按节目名拼音排序
- 与内容管理视图排序规则一致,提升一致性与可预期性
- 增加 try-catch 保护,异常时回退原顺序,保证稳定性
2025-09-22 23:17:06 +08:00
x1ao4
4b40560a80 修复分享资源状态异常后切换上/下一个资源时仍显示异常提示、无法继续浏览其他资源的问题
- 切换资源时清理 error/fileList/paths,重置到选择目录界面
- 链接基础部分变化时清空 stoken 强制刷新
- getShareDetail 调用前清空错误状态,避免残留覆盖新资源展示
2025-09-22 23:00:08 +08:00
x1ao4
79007ab775 统一模态框的 Spinner 样式,并在编辑元数据模态框中增加 Spinner 显示 2025-09-17 04:21:31 +08:00
x1ao4
181a55a830 优化任务列表海报视图的渲染逻辑和加载策略
- 任务列表海报视图改为 “海报先渲染”,操作区/徽标/悬浮信息按图片加载完成后再渲染
- 图片加载加入 `decoding=async`、`loading=lazy`、`fetchpriority`,首屏更快、非首屏延后
- 任务列表视图下停用全局 bust,保留节目级/名称级 bust,确保更换海报仍能热更新且避免本地缓存反复失效
2025-09-17 03:12:19 +08:00
x1ao4
efc7e17075 优化任务进度排序逻辑,加入节目状态、播出进度、节目总集数等多级比较
- 进度排序(by=progress)改为四层比较,且全部随升/降序方向变化:
  1) 任务进度百分比(已转存/已播出)
  2) 节目状态优先级:播出中/无 < 本季终 < 已取消 < 已完结
  3) 播出进度百分比(已播出/总集数),在相同进度下进一步排序
  3.1) 若百分比也相同,则按总集数比较(例如 12/12 < 22/22 < 36/36)
  4) 任务编号(#XX),用于完全相同时的最终稳定排序
- 状态取值沿用现有逻辑:仅显示并参与排序的状态为「本季终 / 已取消 / 已完结」,其余视为 “无状态”
- 保持与现有数据源兼容:进度、状态与播出统计基于 calendar.tasks/season_counts 及映射函数获取
- 所有层级比较通过统一 factor 输出,确保与用户选择的升/降序一致
2025-09-17 01:30:10 +08:00
x1ao4
240a069a08 为追剧日历的海报视图设置可用宽度上限,修复超列问题 2025-09-17 00:35:37 +08:00
x1ao4
e181211e53 在编辑任务模态框内新增保存并运行任务按钮 2025-09-16 19:10:46 +08:00
x1ao4
7b662f65bc 优化创建与编辑任务模态框的显示效果 2025-09-16 18:37:18 +08:00
x1ao4
1aa0f44041 修复影视发现页面的 “创建任务” 按钮错误触发编辑模式而非创建模式的问题
- 重置 `createTaskFromDiscovery` 为创建模式,初始化表单,修复标题与底部按钮显示为创建态
2025-09-16 18:09:29 +08:00
x1ao4
3fd496cf2e Revert "新增海报懒加载与异步解码,提升首次打开性能"
This reverts commit 2e2bf064d4.
2025-09-16 03:08:02 +08:00
x1ao4
2e2bf064d4 新增海报懒加载与异步解码,提升首次打开性能 2025-09-16 02:28:38 +08:00
x1ao4
842730e3dd 优化任务海报的加载逻辑,启用长缓存并保留更换海报的精确热更新
将 `/cache/images` 改为 `Cache-Control: public, max-age=31536000, immutable` 提升切页性能;在自定义海报、刷新剧目、批量重下海报时发送 `poster_updated:<tmdb_id>`,前端 SSE 监听后对目标节目设置 `imageCacheBustById`,仅变更项追加 `?t=` 强制刷新,未变更项命中缓存。
2025-09-16 01:20:42 +08:00
x1ao4
9fd9d5cd74 在编辑元数据模态框内增加了更换海报功能 2025-09-15 15:49:17 +08:00
x1ao4
02d8f60709 在集数统计时增加对 “日期 连接符 第x期” 格式的特殊处理
- 修改前端 buildProgressByTaskNameFromLatestFiles 函数,优先检测"日期 连接符 第x期"格式
- 修改后端 extract_progress_from_latest_file 函数,支持相同的格式检测
- 支持多种日期格式:2025-09-08、2025/09/08、2025.09.08
- 支持多种连接符号:空格、连字符、下划线、点号、斜杠
- 当同时存在日期和"第x期"时,优先使用日期进行集数统计
- 保持向后兼容,不影响现有的纯集数和纯日期格式处理

问题:最近转存文件中的"2025-09-08 - 第128期"等格式被错误地使用第128期而不是日期
解决:增加特殊格式检测,当同时存在日期和"第x期"时优先使用日期,支持各种连接符号
2025-09-15 03:07:45 +08:00
x1ao4
aabc5d9afd 修复资源状态显示网络连接异常的问题
- 修改 formatShareUrlBanMessage 函数,对可恢复错误返回 null 而不是格式化消息
- 修改所有设置 shareurl_ban 的地方,只有非 null 的格式化结果才设置警告
- 修改显示逻辑,确保能正确显示错误信息
- 解决临时网络错误被误判为永久失效的问题

问题:可以正常访问的资源被显示为"网络连接异常,请稍后重试"
解决:区分临时网络错误和永久错误,只有永久错误才设置 shareurl_ban 警告
2025-09-15 02:40:40 +08:00
x1ao4
89aff60551 修复任务列表排序导致的操作绑定错误问题
- 修复任务配置区域按钮使用正确的原始索引而不是排序后索引
- 修复选择文件夹、重置文件夹、选择起始文件等按钮的操作绑定
- 修复资源搜索、命名预览、日期选择等功能的索引绑定
- 确保无论使用何种排序方式,按钮操作的都是正确的任务

问题:任务列表使用非编号排序时,配置区域的按钮操作的是按编号排序时对应位置的任务
解决:使用 task.__originalIndex 属性确保所有按钮操作都使用正确的原始索引
2025-09-15 02:20:44 +08:00
x1ao4
e1a3a74752 修复任务列表列表视图下的集数统计问题
- 修复 getTaskSeasonCounts 函数,使其支持 progressByTaskName 映射
- 支持基于日期的集数统计,与海报视图保持一致
- 修复排序逻辑中的集数计算问题
- 确保列表视图和海报视图的集数统计数据一致

问题:任务列表列表视图下没有正确获取基于日期的集数统计,排序时也被视作0
解决:让 getTaskSeasonCounts 函数优先使用 progressByTaskName 映射,支持基于日期的集数查找
2025-09-15 02:00:19 +08:00
x1ao4
9e717f1b69 修复任务列表排序导致的新增任务定位问题
- 修复 addTask 函数中的任务定位逻辑,使用临时标识来准确定位新任务
- 解决非编号排序时新增任务后展开错误编辑模块的问题
- 确保无论使用何种排序方式,新增任务后都能正确定位到新任务的配置区域
- 保持向后兼容,不影响现有排序和编辑功能

问题:任务列表使用非编号排序时,点击添加任务后展开的是排在最后的任务而不是新添加的任务
解决:通过临时标识和排序后列表查找,确保始终展开新添加的任务
2025-09-15 01:38:17 +08:00
x1ao4
41b2cd7727 修复最近转存文件只包含日期信息时集数统计和转存进度丢失的问题
- 修复后端 enrich_tasks_with_calendar_meta 函数,增加对只有日期情况的处理
- 修复前端任务列表页面数据加载,确保 episodes 数据和进度映射正确构建
- 解决刷新页面后已转存集数变为0的问题
- 保持向后兼容,不影响包含集数的文件处理

问题:最近转存文件中不包含集数但包含播出日期时,任务列表页面的集数统计和转存进度在刷新后会丢失
解决:完善后端数据处理逻辑,确保前端页面能正确加载和构建所需的数据映射
2025-09-15 01:25:39 +08:00
x1ao4
d685ab4e90 更新 Wiki 链接地址 2025-09-15 00:08:33 +08:00
x1ao4
922c47848b 新增在任务列表的海报视图下点击任务名称打开 TMDB 季页面的功能
- 为任务列表海报视图中的任务名称添加点击事件处理器
- 新增 getTaskTmdbId() 方法,智能获取任务的 TMDB ID
- 新增 getTaskSeasonNumber() 方法,获取任务的季数信息
- 新增 openTaskTmdbPage() 方法,优先打开特定季的 TMDB 页面
- 只有当任务有匹配项目时才显示为可点击状态
- 当有季数信息时打开 /tv/{tmdb_id}/season/{season_number} 页面
- 当无季数信息时回退到打开整个节目页面
- 提升了用户访问 TMDB 页面的便捷性和精确性
2025-09-14 18:36:25 +08:00
x1ao4
46b07fcdac 优化任务配置继承逻辑,支持按视图类型继承对应任务配置
- 新增 getLastTaskByCurrentFilter() 方法,根据当前视图筛选条件获取对应类型中编号最大的任务
- 修改 addTask() 方法,使用新的筛选逻辑继承任务配置
- 修改 openCreateTaskModal() 方法,使用新的筛选逻辑继承任务配置
- 现在在剧集视图下新建任务会继承剧集类型中编号最大的任务配置,动画视图下会继承动画类型中编号最大的任务配置,以此类推
- 提升了用户在特定类型视图下新建同类任务时的操作体验
2025-09-14 18:22:05 +08:00
x1ao4
9f4aa83e22 新增资源搜索结果连续浏览功能
- 在资源搜索的选择需转存的文件夹模态框中添加上一个/下一个导航按钮
- 支持在搜索结果中连续浏览,无需关闭模态框重新选择
- 在左下角显示当前资源序号信息(第 X 个资源)
2025-09-14 03:55:14 +08:00
x1ao4
40fd3738f7 为任务列表的海报视图补全任务功能按钮 2025-09-14 01:36:19 +08:00
x1ao4
8f0c60957d 新增海报语言设置功能 2025-09-13 20:26:27 +08:00
x1ao4
2db4e1587d 在任务列表页面新增创建任务按钮,优化热更新和季数匹配逻辑 2025-09-13 19:08:44 +08:00
x1ao4
a51cd1251a 为任务列表新增了海报视图,可切换显示模式 2025-09-12 02:57:23 +08:00
x1ao4
a2af2dcbe0 优化追剧日历海报悬停信息的展示效果 2025-09-11 23:28:27 +08:00
x1ao4
a917123463 为系统配置的显示设置部分更新了悬停帮助信息 2025-09-11 01:59:57 +08:00
x1ao4
d8749ff69f 在任务列表页面新增排序功能 2025-09-10 02:49:45 +08:00
x1ao4
591c9e9fe1 在任务列表页面新增按任务类型筛选功能 2025-09-09 17:00:15 +08:00
x1ao4
7f42f694ce 新增追剧日历功能 2025-09-09 16:24:58 +08:00
x1ao4
5170760331 修复 inner error 误判问题
- 添加对 "inner error" 类型错误的识别和处理
- 将 "inner error" 归类为可恢复的网络错误而非资源失效
- 前端多个方法中添加对 "inner error" 的识别和忽略
- 后端添加 is_recoverable_error 工具方法
- 后端 _send_request 方法中自动转换 "inner error" 为 "request error"
- 后端 get_detail 方法中添加重试机制处理临时网络问题
- 避免因临时网络问题误判资源状态,提升用户体验
2025-08-31 12:23:52 +08:00
x1ao4
8e5332918a 修复资源搜索结果排序时未进行时区转换的问题
- 修改前端 parsePublishTs 函数,在排序时也考虑 +8 小时时区转换
- 确保 TG 来源的搜索结果按北京时间正确排序
- 保持其他来源的排序逻辑不变
- 解决排序使用原始时间而非转换后时间的问题
2025-08-31 09:17:30 +08:00
x1ao4
967a363d87 修复 PanSou 插件资源发布时间显示错误的问题
- 简化时间处理规则:只有 TG 来源需要 +8 小时
- 其他所有来源(Unknown、Plugin 等)都不 +8 小时
- 修正前端 formatPublishDate 函数的判断逻辑
- 确保时间显示准确,避免错误的时间转换
2025-08-31 07:59:50 +08:00
x1ao4
a89ad08ae8 修正 Cookie 状态判断逻辑,准确反映账号功能支持情况
1. 修正后端get_user_info接口
   - 为成功获取账号信息的情况添加has_mparam字段
   - 确保前端能正确判断账号是否包含移动端参数

2. 修正前端Cookie状态判断逻辑
   - 根据账号索引位置判断功能支持情况
   - 第一个账号(index=0)支持转存和签到
   - 其他账号只支持签到功能
   - 修正了第一个账号被错误识别为'仅支持转存'的问题

3. 完善状态提示信息
   - 账号已登录,支持转存和签到 (第一个账号,有移动端参数)
   - 账号已登录,仅支持转存功能 (第一个账号,无移动端参数)
   - 账号已登录,仅支持签到功能 (其他账号,有移动端参数)
   - 账号已登录,不支持转存和签到 (其他账号,无移动端参数)
   - 账号已失效,请重新获取Cookie
   - 仅支持签到功能 (无昵称,有移动端参数)
   - 账号未登录,请获取Cookie (无昵称,无移动端参数)
2025-08-31 03:23:17 +08:00
x1ao4
502a3c21c0 为系统配置页面的插件配置和 Cookie 增加占位提示与悬停信息
- 为插件配置添加详细的占位符文本和悬停帮助信息
- 为 Cookie 配置部分添加智能状态悬停提示
2025-08-31 03:02:25 +08:00
x1ao4
e2ba923370 修复资源搜索结果发布时间时区显示错误的问题
- 在前端 formatPublishDate 函数中添加时区修复逻辑
- 智能识别 UTC 时间(包含 T 或 Z)并自动 +8 小时转换为北京时间
- 保持标准北京时间格式不变
- 解决发布时间显示提早 8 小时的问题
2025-08-30 22:11:45 +08:00
x1ao4
f0f608b398 调整资源搜索下拉与文件夹选择模态交互,优化关闭时机
- keep: 打开/关闭选择需转存的文件夹模态不再自动关闭下拉
- add: 点击模态右上角关闭按钮或模态内部区域不关闭下拉
- change: 仅在 “转存当前文件夹/保存到当前文件夹” 确认时,同时关闭模态与下拉
- fix: 在多处初始化分支补充 “点击发生在 #fileSelectModal 内部时不关闭下拉” 的判断
- chore: 在 `selectCurrentFolder()` 中显式关闭下拉,避免确认后下拉残留
2025-08-28 23:23:16 +08:00
x1ao4
72a2b862a3 为文件夹/分享详情加载扩展可恢复错误重试范围
- retry: 在 `getShareDetail` 将 “非法token/Bad Parameter/request error” 纳入可恢复错误
  - 模态仍显示时清空 `stoken` 并延迟 600ms 自动重试一次
  - 重试失败统一提示 “获取文件夹列表失败,请关闭窗口再试一次”
2025-08-28 22:45:31 +08:00
x1ao4
484e68a82d 为文件夹/分享详情加载引入无感自动重试,优化失败体验
- 新增:在 `getSavepathDetail` 失败时自动无感重试一次
  - 仅在 `#fileSelectModal` 仍显示时触发重试,避免误重试
  - 为请求参数追加 `_ts` 时间戳,绕过浏览器/代理缓存导致的伪重试
- 新增:在 `getShareDetail` 失败时自动无感重试一次
  - 重试前强制清空 `this.fileSelect.stoken`,让后端重新获取有效 `stoken`
  - 仅在 `#fileSelectModal` 仍显示时触发重试
- 超过最大重试次数后,立即提示“获取文件夹列表失败,请关闭窗口再试一次”,不再继续等待

原因:
- 原有“等待1秒再调一次”的重试在令牌失效或缓存命中时无效,用户需手动关窗再点
- 本次改动通过刷新 `stoken` 与规避缓存,实现与“手动关窗再点”接近的效果,且对用户无感
2025-08-28 22:05:29 +08:00
x1ao4
5216fa981d 修复资源搜索结果在大样本下超时后重复追加,导致重复渲染与计数膨胀的问题
- 前端:引入搜索 “会话号 + validating” 双重校验,超时立即取消当前会话,并在批处理/渲染前校验,阻断超时后的继续写入;保留稳定 v-for key 确保渲染一致性
- 后端:`get_detail` 增强容错,避免无 `code`/网络异常引发 KeyError;`/get_share_detail` 统一错误返回结构,前端稳定处理
2025-08-27 23:33:53 +08:00
x1ao4
8304d8e8fd 新增推送通知类型选择功能
- 新增推送通知类型配置选项
- 支持三种模式:
  - 完整信息(转存成功、转存失败、资源失效)
  - 仅成功信息(仅转存成功)
  - 排除失效信息(转存成功、转存失败)
- 优化通知过滤逻辑,提升用户体验
2025-08-27 02:32:42 +08:00
x1ao4
5c50453acd 修复资源搜索结果发布日期时区(显示)错误的问题 2025-08-27 01:05:19 +08:00