Commit Graph

286 Commits

Author SHA1 Message Date
x1ao4
593ff1f728 资源聚合去重时保留多来源,展示为 “CloudSaver · PanSou”
来源徽标支持多来源显示,多来源统一使用 multi-source class
2025-10-15 19:45:19 +08:00
x1ao4
080c73fc07 引入全局 SSE 单例,统一 onopen/onerror,任务列表与日历共用连接,切页不丢事件
- 进入日历页即时 tick 与本地补拉,消除 60s 等待
- 校正可见性回退判断为 appSSE;清理重复 SSE 回调设置
- 保留原轮询兜底与可见性恢复逻辑,确保 SSE 异常时行为一致
2025-10-15 19:10:11 +08:00
x1ao4
2d944600e6 优化海报管理功能,支持用户自定义海报保护和自动清理孤立文件
- 新增 is_custom_poster 数据库字段,标记用户自定义海报
- 实现自定义海报保护机制,防止被 TMDB 自动更新覆盖
- 添加孤立文件自动清理功能,优化存储空间管理
- 优化海报更新逻辑,支持旧文件删除和新文件下载
- 提供手动清理孤立文件的 API 接口
- 保持向后兼容,旧版本数据无缝升级

解决用户自定义海报被覆盖和孤立文件积累的问题
2025-10-12 16:28:12 +08:00
x1ao4
3898c6d41c 修复追剧日历页面当日更新标识热更新延迟的问题
- 问题:追剧日历页面当日更新标识热更新有60秒延迟,任务列表页面能实时更新
- 原因:转存记录创建/更新时未触发SSE通知,前端只能依赖轮询检测变化
- 解决:
  * 后端:转存记录创建/更新时触发SSE通知 (transfer_record_created/updated)
  * 后端:批量重命名完成时触发SSE通知 (batch_rename_completed)
  * 前端:SSE处理中优先更新今日更新数据
  * 修复:添加安全的导入函数避免模块导入错误
- 效果:实现追剧日历页面当日更新标识实时热更新,与任务列表页面体验一致

涉及文件:
- quark_auto_save.py: 添加SSE通知触发和安全导入函数
- app/run.py: 批量重命名SSE通知
- app/templates/index.html: 前端SSE处理优化
2025-10-12 14:57:49 +08:00
x1ao4
7e12a2da9b 调整创建/编辑任务模态框的警告提示样式 2025-10-10 00:45:19 +08:00
x1ao4
226db683b7 模态框标题栏统一高度微调 2025-10-10 00:14:06 +08:00
x1ao4
8a35a25358 优化 Toast 通知为内容自适应并统一居中显示
- 移除固定宽度上限,按内容自适应宽度
- 超长时最大宽度改为 calc(100vw - 20px),页面左右边距各 10px
- 始终居中显示:容器居中 + 显示阶段强制 inline-block
- 固定顶部距离为 64px,内容换行不影响上边距
- 文本自动换行且保持居中,对超长英文/URL 友好
- 微调垂直内边距,总高度净减少 1px
- 桌面端与移动端样式一致,不影响其他组件/交互
2025-10-09 23:47:27 +08:00
x1ao4
8063ec0cf8 优化任务列表海报视图的交互逻辑,悬停时隐藏任务进度徽标 2025-10-06 16:31:10 +08:00
x1ao4
c75046b60d 移除发现/任务列表海报悬停时的 no-poster 背景,避免半透明底图露出 2025-10-06 15:26:09 +08:00
x1ao4
e36a4e6f6c 优化编辑元数据模态框内的匹配结果的显示效果 2025-10-06 14:42:45 +08:00
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
be5773fb84 修复剧集编号提取时某些技术规格未被正确过滤的问题
- 修复连接符正则表达式,移除对连接符后非数字字符的要求
- 添加无空格帧率格式过滤(如 60fps、30fps 等)
- 修复分辨率过滤正则表达式,移除单词边界限制
- 同步更新前端 JavaScript 排序逻辑,保持前后端一致性

修复问题:
- 08_60fps.mp4 现在正确识别为第 8 集而不是 60
- 10_1080p.mkv 现在正确识别为第 10 集而不是 1080
- 提高技术规格过滤的准确性和覆盖率
2025-09-29 10:40:47 +08:00
x1ao4
49b2a0c81f 将移除技术规格信息的逻辑改为仅处理常见值白名单,降低误判风险 2025-09-23 16:14:34 +08:00
x1ao4
da051409df 为重置文件夹功能增加 SSE 推送,支持相关数据的实时更新 2025-09-23 14:10:27 +08:00
x1ao4
8f0b9f9455 修复 EP 格式剧集编号的识别问题
1. **Python版本** (`quark_auto_save.py`)
   - 更新日期过滤正则表达式,保护 E/EP 格式不被误伤
   - 完善日期过滤逻辑,添加对 MM-DD 格式的处理
   - 增强分辨率标识保护,防止 4K/4k 等被误识别为日期

2. **JavaScript版本** (`sort_file_by_name.js`)
   - 同步更新日期过滤正则表达式
   - 保持前后端逻辑一致性
2025-09-23 13:21:39 +08:00
x1ao4
3096702051 优化剧集编号提取功能,添加技术规格过滤逻辑 2025-09-23 12:50:07 +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
000633c203 优化 Toast 通知样式 2025-09-18 01:15:36 +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
8036e3256b 移除更换海报的日志输出
- 移除 “成功保存自定义海报: …” 与 “成功更新自定义海报: …” 的 info 日志输出,改为静默处理
- 不影响海报保存、数据库同步与 `poster_updated:<tmdb_id>` 通知链路,功能保持不变,减少无意义日志噪音
2025-09-16 01:46:54 +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
454abc0f3a 优化模态框的面包屑导航样式,支持滚动查看超长目录 2025-09-14 17:51:04 +08:00
x1ao4
fc6ecaa534 优化文件整理页面的面包屑导航样式,支持滚动查看超长目录 2025-09-14 17:21:40 +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