Skip to content

Releases: neon9809/iptv-manager

v0.5.0

24 Feb 15:16

Choose a tag to compare

2026-02-24 - 视频基本信息分析异步化改造

问题描述

添加订阅源时,视频基本信息分析是同步执行的,会阻塞 API 请求。当直播流数量较多时(如 64 个),用户需要等待很长时间,前端弹窗一直不关闭,用户体验较差。

修复内容

1. 新增 Celery 任务 VIDEO_BASIC_ANALYSIS

文件: app/tasks/scheduled.py

新增 video_basic_analysis_task() Celery 任务,将视频基本信息分析(分辨率、帧率、编码、比特率等)改为异步执行。

2. 更新任务优先级列表

优先级 任务类型 说明
9 SINGLE_STREAM_ANALYSIS 单个流手动增强分析 (最高)
7 SOURCE_REFRESH 首次添加/手动刷新订阅源
6 VIDEO_BASIC_ANALYSIS 视频基本信息分析 (新增)
5 BATCH_ANALYSIS 手动触发的批量增强分析
4 SOURCE_REFRESH 订阅源定时刷新
2 AUTO_ANALYSIS 自动定时增强分析 (最低)

3. 修改 API 立即返回

create_source API 验证 M3U 合法后立即返回,创建两个异步任务:

  • SOURCE_REFRESH (优先级 7): 刷新订阅源
  • VIDEO_BASIC_ANALYSIS (优先级 6): 视频基本信息分析

4. 更新任务分发器

支持分发新的 VIDEO_BASIC_ANALYSIS 任务类型到 refresh 队列。

效果对比

场景 修改前 修改后
添加订阅源响应时间 需等待所有视频分析完成(可能数十秒) 验证 M3U 后立即返回(约 1-2 秒)
前端弹窗 一直显示直到分析完成 验证成功后立即关闭
视频分析 同步阻塞执行 异步队列执行,可在"最近维护"面板查看进度

2026-02-24 - 订阅源重复添加错误处理优化

问题描述

当用户尝试添加一个已存在的订阅源 URL 时,系统返回 500 Internal Server Error,错误信息为数据库唯一约束冲突 (UniqueViolationError),而非友好的错误提示。

修复内容

add_subscription_source 函数中添加了预先检查逻辑,在 API 层捕获 ValueError 并返回 400 错误。

效果对比

场景 修复前 修复后
添加重复订阅源 URL 500 Internal Server Error 400 Bad Request,提示"该订阅源 URL 已存在"
配置恢复时遇到重复 URL 可能导致整个恢复失败 自动跳过并记录原因