x1ao4
|
4bd7d73514
|
修复 pan.qoark.cn 重定向链接无法正常访问的问题
问题:
- 搜索结果中的 pan.qoark.cn 链接在 qasx 内无法正常访问
- 这些链接实际会重定向到 pan.quark.cn 的真实地址
修复:
- 在 PanSou 搜索结果处理中添加重定向解析,自动获取真实地址
- 在后端 get_share_detail 接口中添加重定向解析
- 前端支持显示和提取 pan.qoark.cn 链接的资源 ID
|
2026-01-10 15:40:21 +08:00 |
|
x1ao4
|
e4ffec9ba4
|
修复豆瓣海报无法显示的问题
- 新增后端图片代理路由 /api/proxy/douban-image,用于代理豆瓣图片请求
- 后端代理会自动设置正确的 Referer 头以绕过豆瓣防盗链限制
- 修改前端 getProxiedImageUrl 函数,自动检测豆瓣图片URL并使用代理
- 支持流式传输和缓存控制,提升加载性能
解决豆瓣新增防盗链限制导致海报无法显示的问题
|
2026-01-10 14:32:42 +08:00 |
|
x1ao4
|
d550de4e9f
|
修复当 TMDB 上集的 air_date 被删除时 air_date_local 未同步清空的问题
问题描述:
- 当 TMDB 上某一集的播出日期被删除后,本地数据库的 air_date 会在刷新时被清空
- 但对应的 air_date_local 没有被清空,导致已播出集数计算不准确
修复内容:
- 修改 update_episodes_air_date_local 函数,在所有三个分支中添加对 air_date 为空的处理
- 当 air_date 为空时,自动清空对应的 air_date_local
- 确保 air_date_local 始终与 air_date 保持一致
影响范围:
- 修复后,当 TMDB 上集的播出日期被删除时,air_date_local 会被正确清空
- is_episode_aired 函数会正确返回 False,已播出集数计算会及时更新
|
2025-12-25 10:55:37 +08:00 |
|
x1ao4
|
c999913e9e
|
优化播出状态刷新任务日志,添加集号显示
问题描述:
当同一天有多集播出时,播出状态刷新任务的日志会重复显示相同的节目名和季号,
用户无法区分是哪一集触发的刷新任务。
修改内容:
1. 修改 recompute_show_aired_progress 函数:
- 添加可选的 season_number 和 episode_number 参数
- 当提供 episode_number 时,日志中显示集号信息
- 当提供 season_number 时,只处理指定的季
2. 修改 schedule_airtime_based_refresh_jobs 函数:
- 在按播出时间安排任务时,传递 season_number 和 episode_number 参数
- 确保自动运行的任务日志包含集号信息
效果:
- 之前:日志显示 "[节目名 · 第 X 季] 播出状态刷新任务"
- 现在:日志显示 "[节目名 · 第 X 季 · 第 Y 集] 播出状态刷新任务"
兼容性:
- 所有现有调用点保持兼容(新参数为可选参数)
- 补偿刷新、手动刷新等场景不受影响(这些场景应刷新整个节目)
安全性:
- 使用参数化查询,防止 SQL 注入
- 保持原有异常处理逻辑
- Lambda 函数使用默认参数避免闭包问题
|
2025-12-21 23:02:39 +08:00 |
|
x1ao4
|
3adcc2cc50
|
修复文件命名中没有季编号的节目无法显示待播集日期的问题
在追剧日历的内容管理模式下,部分综艺节目(如 “你好,星期六”)由于文件名仅包含日期而不包含季号(Sxx),导致前端无法解析出 season_number。 此前后端未将数据库匹配到的 latest_season_number 返回给前端,导致前端在计算下一集播出时间时因缺少季号而失败。
本次修改在 enrich_tasks_with_calendar_meta 中明确注入了 latest_season_number 字段,确保前端在文件名解析失败时能正确回退使用数据库记录的最新季号。
|
2025-12-21 01:48:01 +08:00 |
|
x1ao4
|
12346fe5ec
|
在追剧日历的集数悬停信息中增加节目级播出时间信息
|
2025-12-17 18:24:57 +08:00 |
|
x1ao4
|
d19f8f3383
|
增加已播出但未转存集的显示样式
功能改进:
- 日历视图:为已播出但未转存的集增加浅绿色背景(#e6f7ee)
- 已转存:浅蓝色背景(#e6f1ff)
- 已播出未转存:浅绿色背景(#e6f7ee)
- 未播出未转存:浅灰色背景(#f7f7f9)
- 移动端表格:已播出未转存集显示绿色条(#28a745)
- 海报视图:
- 已转存集:右上角显示 bi-check2-all 图标
- 已播出未转存集:右上角显示 bi-check2 图标
- 未播出未转存集:不显示标识
技术实现:
- 后端:在 /api/calendar/episodes_local 接口中为每集添加 is_aired 字段
- 使用 is_episode_aired 函数精确计算(考虑播出时间)
- 实现批量查询优化,将数据库查询从 1000+ 次降到 2-3 次
- 添加完整的异常处理和回退机制
- 前端:新增 isEpisodeAiredForDisplay 方法判断已播出状态
- 优先使用后端返回的 is_aired 字段,保证前后端一致
- 兼容旧版本数据(无 is_aired 时回退到日期比较)
- 在日历视图和海报视图中应用新的样式逻辑
|
2025-12-17 17:48:38 +08:00 |
|
x1ao4
|
06adc79a17
|
新增剧集播出日期偏移功能
- 支持在编辑元数据模态框内为(本地)播出时间显示和编辑播出日期偏移参数,对于转换时区后的本地播出时间,若产生了日期偏移,将自动补全偏移参数,也支持修改、添加或删除日期偏移参数,删除日期偏移将使用剧集在发行地的原始播出日期作为播出日期进行判定或显示
- 日期偏移会影响剧集的本地播出日期,从而影响剧集已播出集数和任务进度的计算
|
2025-12-16 15:27:51 +08:00 |
|
x1ao4
|
4a2acea19e
|
完善 Trakt 初次配置逻辑并优化了 API 配置模块
- 新增首次配置 Trakt Client ID 时全量同步播出时间并重算进度逻辑
- 优化系统配置页面:合并 API 配置模块并优化间距和交互体验
|
2025-12-12 21:29:08 +08:00 |
|
x1ao4
|
07abca763e
|
新增基于 Trakt 精确播出时间的本地时区已播出统计与显示及相关优化
|
2025-12-12 18:17:20 +08:00 |
|
x1ao4
|
9269f66cd5
|
将日志备份文件数量从 5 个改为 2 个
|
2025-11-30 22:34:53 +08:00 |
|
x1ao4
|
12cf1bb190
|
新增运行日志显示范围设置选项,支持按时间范围显示日志
- 将日志显示方式从按条数限制改为按时间范围限制(默认显示最近 3 天的日志)
- 在系统配置的性能设置中添加 '运行日志显示范围' 配置项,允许用户自定义天数
- 保持向后兼容:API 仍支持 limit 参数,旧配置自动使用默认值
|
2025-11-30 21:41:35 +08:00 |
|
x1ao4
|
e6e1f95a8c
|
在 WebUI 上增加了运行日志查看页面
|
2025-11-29 21:04:38 +08:00 |
|
x1ao4
|
9f2b2c7bfe
|
完善孤立内容清理逻辑,自动清理孤立的 shows 和海报文件
- 在 cleanup_orphan_data 中添加清理孤立 shows 的逻辑
- 当任务被删除或修改时,自动清理不再被任何任务引用的 shows
- 在清理孤立数据后自动清理孤立的海报文件
- 确保数据库和文件系统中的孤立数据都能被及时清理
|
2025-11-28 11:00:46 +08:00 |
|
x1ao4
|
0c81dd48b7
|
为转存记录添加状态筛选功能
|
2025-11-25 15:01:27 +08:00 |
|
x1ao4
|
1ca3230153
|
优化手动执行模式:支持忽略执行周期规则的单任务运行
- 新增 IGNORE_EXECUTION_RULES 环境变量,用于标记手动运行单个任务时忽略执行周期/进度限制
- run_script_now 在手动运行单个任务时设置该标记,并保留原始任务索引用于日志显示
- do_save 支持 ignore_execution_rules 参数,单任务手动运行时直接跳过执行周期与进度判断
- 保持手动运行 ALL 和定时任务的执行周期/进度规则不变,避免影响现有功能
|
2025-11-17 17:21:19 +08:00 |
|
x1ao4
|
b420029771
|
为定时运行全部任务添加自动重试机制
- 当定时任务执行失败(返回非零退出码)时,自动重试一次,提高任务执行成功率。
- 重试前等待 5 秒,避免立即重试。
- 保留所有原有功能和日志记录。
|
2025-11-16 11:54:24 +08:00 |
|
x1ao4
|
4950b53e03
|
修复会话持久化问题并增强安全性
- 修复用户每天需要重新登录的问题,确保登录状态保持31天
- 添加 before_request 钩子确保已登录用户的会话保持永久状态
- 增强会话 cookie 安全性:添加 HTTPONLY 和 SAMESITE 标志
- 实现动态 SESSION_COOKIE_SECURE 设置,自动适配 HTTP/HTTPS 环境
- 支持反向代理场景,自动检测 X-Forwarded-Proto 和 X-Forwarded-Scheme 头
修改内容:
- 添加 SESSION_COOKIE_HTTPONLY 和 SESSION_COOKIE_SAMESITE 配置
- 实现动态 HTTPS 检测和 SESSION_COOKIE_SECURE 设置
- 添加 make_session_permanent() 钩子函数确保会话持久化
安全性:
- 防止 XSS 攻击(HTTPONLY)
- 防止 CSRF 攻击(SAMESITE)
- HTTPS 环境下自动启用 Secure 标志
兼容性:
- 同时支持 HTTP 和 HTTPS 环境
- 支持 Nginx、Apache 等反向代理场景
- 不影响现有登录、登出和验证功能
|
2025-11-16 10:40:00 +08:00 |
|
x1ao4
|
7a15bb1758
|
修复定时运行全部任务完成后已转存集数和当日更新标识的热更新问题
- 修复 recompute_task_metrics_and_notify 中 season_metrics 的 transferred_count 未更新的 bug
- 在定时任务执行完毕后发送 crontab_task_completed SSE 通知
- 前端添加对 crontab_task_completed 事件的处理,确保刷新今日更新数据
|
2025-11-15 20:21:19 +08:00 |
|
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
|
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
|
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
|
593ff1f728
|
资源聚合去重时保留多来源,展示为 “CloudSaver · PanSou”
来源徽标支持多来源显示,多来源统一使用 multi-source class
|
2025-10-15 19:45:19 +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
|
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
|
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
|
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
|
41b2cd7727
|
修复最近转存文件只包含日期信息时集数统计和转存进度丢失的问题
- 修复后端 enrich_tasks_with_calendar_meta 函数,增加对只有日期情况的处理
- 修复前端任务列表页面数据加载,确保 episodes 数据和进度映射正确构建
- 解决刷新页面后已转存集数变为0的问题
- 保持向后兼容,不影响包含集数的文件处理
问题:最近转存文件中不包含集数但包含播出日期时,任务列表页面的集数统计和转存进度在刷新后会丢失
解决:完善后端数据处理逻辑,确保前端页面能正确加载和构建所需的数据映射
|
2025-09-15 01:25:39 +08:00 |
|
x1ao4
|
8f0c60957d
|
新增海报语言设置功能
|
2025-09-13 20:26:27 +08:00 |
|
x1ao4
|
2db4e1587d
|
在任务列表页面新增创建任务按钮,优化热更新和季数匹配逻辑
|
2025-09-13 19:08:44 +08:00 |
|
x1ao4
|
7f42f694ce
|
新增追剧日历功能
|
2025-09-09 16:24:58 +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
|
5216fa981d
|
修复资源搜索结果在大样本下超时后重复追加,导致重复渲染与计数膨胀的问题
- 前端:引入搜索 “会话号 + validating” 双重校验,超时立即取消当前会话,并在批处理/渲染前校验,阻断超时后的继续写入;保留稳定 v-for key 确保渲染一致性
- 后端:`get_detail` 增强容错,避免无 `code`/网络异常引发 KeyError;`/get_share_detail` 统一错误返回结构,前端稳定处理
|
2025-08-27 23:33:53 +08:00 |
|