x1ao4
|
ba829ffacc
|
新增按任务进度执行的执行周期模式
新增功能:
- 支持两种执行周期判断模式:按自选周期执行(自选)和按任务进度执行(自动)
- 系统配置添加执行周期设置选项,支持批量应用到所有任务
- 任务配置支持单独设置执行周期模式,覆盖系统默认值
- 按任务进度执行时,根据任务进度是否 100% 智能判断是否跳过
- 优化日志输出,准确反映实际应用的执行周期设置
技术实现:
- 新增 CalendarDB.get_task_metrics() 方法获取任务进度
- 修改 is_time() 函数支持两种执行周期判断模式
- 系统配置默认值为 manual,保持向后兼容
- 手动运行任务不受执行周期设置影响
涉及文件:
- app/sdk/db.py: 新增 get_task_metrics 方法
- app/run.py: 添加 execution_mode 默认值初始化
- app/templates/index.html: UI 修改和批量选择功能
- quark_auto_save.py: 核心判断逻辑和日志输出优化
|
2025-11-14 15:47:53 +08:00 |
|
x1ao4
|
fb794ac08f
|
优化 SQLite 数据库并发访问,解决 database is locked 错误
- 启用 WAL 模式(Write-Ahead Logging),大幅提升并发读写性能
- 为所有数据库操作添加自动重试机制(最多 3 次,指数退避)
- 设置连接超时时间(5 秒)和忙等待超时(5 秒),避免长时间阻塞
- 优化连接关闭逻辑,确保异常情况下也能正确释放资源
|
2025-11-13 10:54:12 +08:00 |
|
x1ao4
|
20add4c668
|
调整手动运行任务开始通知格式并新增结束成功通知
- 开始通知改为 “>>> 开始执行手动运行任务 [名称]”
- 任务结束后根据退出码输出成功或非零退出码警告
- 不影响定时任务日志行为
|
2025-11-11 17:49:30 +08:00 |
|
x1ao4
|
099581956e
|
补全定时任务的开始和结束日志输出
为 "播出集数自动刷新" 和 "追剧日历自动刷新" 添加完整的开始/结束日志
|
2025-11-11 11:00:14 +08:00 |
|
x1ao4
|
ff5a4cba9a
|
允许 APScheduler 在主机睡眠后补偿执行
- 全局启用 misfire_grace_time=None 与 coalesce=True,容忍长时间暂停并仅补偿一次
- 对 run_python 与日历刷新任务显式设置 misfire/coalesce/max_instances=1
- 避免睡眠唤醒后持续出现 missed,确保后续按期执行
- 不修改业务逻辑与数据,兼容现有行为
|
2025-11-10 20:30:28 +08:00 |
|
x1ao4
|
e7be8f5738
|
统一节目集数统计逻辑,改用后端 season_counts 提供数据
- 使用后端注入的 season_counts 展示已转存/已播出/总集数
- 移除前端基于 progressByTaskName/episodes 的本地推导分支
- 保留 episodes/progressByTaskName 用于非统计渲染与标识
- 提升渲染性能与前后端口径一致性
|
2025-11-10 17:28:54 +08:00 |
|
x1ao4
|
c5df061549
|
修复失效信息重复显示和日志连续空行问题
- 修复 do_rename_task 中失效信息重复显示的问题
- 修复日志输出中连续空行的问题
|
2025-11-08 18:02:20 +08:00 |
|
x1ao4
|
7a5d47b214
|
重构定时任务运行机制,支持自动清理与异常恢复
- 为定时运行全部任务(`run_python`)实现进程清理逻辑:
* 每次运行前检查上一次任务是否仍在运行
* 若仍在运行则强制终止并清理进程对象
* 在 `finally` 块中统一清除进程引用,防止任务阻塞
- 为追剧日历刷新任务(`run_calendar_refresh_all_internal_wrapper`)添加相同的检查逻辑:
* 检测上一次线程是否仍在运行
* 若仍在运行则记录警告并继续执行新任务
* 确保线程异常退出后能自动清理
- 优化异常处理,保证无论任务正常、异常或被系统终止,下次调度均可正常运行
- 避免 “maximum number of running instances reached” 等并发冲突问题
|
2025-11-08 16:11:57 +08:00 |
|
x1ao4
|
b7a6b1e35f
|
强化 “播出集数刷新时间” 限制,杜绝提前计入
- enrich_tasks_with_calendar_meta:未到刷新时间时,无条件用有效日期(昨日)统计覆盖缓存的 aired_count
- 已过刷新时间:仅在缓存非当日时用有效日期(今日)回填,确保日切后统一生效
- 修复部分节目 “提前计入已播” 且随后 “逐步恢复” 的展示不一致问题
- DB 统计口径保持 air_date<=有效日期,无前端改动
|
2025-11-07 19:05:41 +08:00 |
|
x1ao4
|
d213b62071
|
提升播出集数自动刷新任务的可靠性:失败按需重试
- 每日任务到点执行;若失败或当日标记未写入,则安排 10 分钟后一次性重试,直至成功为止(成功后清理重试任务)
- 启动与首次建立日历 SSE 时各进行一次按需检查(仅在已到刷新点且当日未生效时触发)
- 使用轻量标记文件 config/.aired_done 记录当日有效日期,无需修改数据库结构
|
2025-11-06 17:16:41 +08:00 |
|
x1ao4
|
98c0d9f938
|
修复已播出集数刷新时间限制未生效问题并优化相关功能
- 修复已播出集数刷新时间限制未生效问题,统一所有计算位置使用有效日期
- 配置保存时检测刷新时间变化,立即重新计算并热更新
- 优化日志输出,仅在配置改变时显示,避免重复信息
|
2025-11-06 02:42:44 +08:00 |
|
x1ao4
|
08553f99ca
|
在追剧日历自动刷新任务中新增了节目状态变更检测与热更新功能
- 在 run_calendar_refresh_all_internal 中检测 TMDB 节目状态变更(本地化)
- 变更时更新 shows.status 与 last_refreshed_at,保持其他字段不变
- 新增通知事件 status_updated,触发前后端热更新
- 保持原有集数据刷新与 auto_refresh 通知逻辑不变
|
2025-11-05 21:34:15 +08:00 |
|
x1ao4
|
874a09d57b
|
避免子进程误报 “播出集数自动刷新” 时间
- 引入 `IS_FLASK_SERVER_PROCESS` 仅在主进程打印启动提示
- 缓存上次时间,仅在时间变更时输出一次
- 解决手动运行子进程误打印为 00:00 的问题
|
2025-11-05 21:14:47 +08:00 |
|
x1ao4
|
eb74b6314a
|
启动与配置更新时稳定注册定时任务并优化日志
- 启动流程在 reload_tasks() 后重启 “追剧日历自动刷新/播出集数自动刷新” 任务,避免被清空
- 新增播出集数自动刷新任务的启动说明日志,显示执行时间
- 合并调度日志为 “已启动定时运行全部任务,定时规则 …”
- 降低 apscheduler 日志级别至 WARNING,去除 “Adding job tentatively …” 等噪音
|
2025-11-05 21:05:55 +08:00 |
|
x1ao4
|
4240ff9066
|
新增已播出集数刷新时间限制与自定义配置
- 新增性能设置项 "播出集数刷新时间"(24 小时制,默认 00:00)
- 访问时强制刷新受限于用户设置的刷新时间
- 仅在刷新时间之后允许访问时强制刷新已播出集数
- 已转存集数和节目总集数保持实时热更新,不受限制
- 向后兼容:配置缺失或解析失败时默认允许刷新
|
2025-11-05 01:40:38 +08:00 |
|
x1ao4
|
7d5f297b70
|
落库缓存计数与进度,前后端同步热更新
- 新增 season_metrics/task_metrics 表,缓存已转存/已播出/总集数与 progress_pct
- 统一进度口径:已转存 ÷ min(已播出, 总集数),越界钳制
- 季数据刷新/改绑/改季时写回季级缓存并通知前端
- 转存记录新增/删除后重算任务与季级缓存并通知前端
- 聚合接口优先读缓存,缺失回退计算并回填
|
2025-11-05 00:52:24 +08:00 |
|
x1ao4
|
e4c14ef3a1
|
同步删除 TMDB 不存在的季内集,保持本地 DB 与 TMDB 一致
在 CalendarDB 新增 prune_season_episodes_not_in;在季数据拉取/刷新路径统一调用,先删后写,消除 “幽灵集” 导致的计数/展示偏差
|
2025-11-04 18:47:22 +08:00 |
|
x1ao4
|
643ee8e592
|
修正模态框资源搜索下拉框 Spinner 的左边距
|
2025-10-15 20:30:23 +08:00 |
|
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 |
|