Skip to content

fix(offline_download): handle unknown-size offline download tasks#2622

Open
kobe-koto wants to merge 1 commit into
OpenListTeam:mainfrom
kobe-koto:main
Open

fix(offline_download): handle unknown-size offline download tasks#2622
kobe-koto wants to merge 1 commit into
OpenListTeam:mainfrom
kobe-koto:main

Conversation

@kobe-koto

@kobe-koto kobe-koto commented Jun 15, 2026

Copy link
Copy Markdown

Summary / 摘要

  • 修复 Aria2/qBittorrent 在 total_bytes = 0 时计算出非有限进度,导致任务接口 JSON 编码失败并返回空 body 的问题。

  • 修复 SimpleHttp 普通下载在响应缺少 Content-Length 时,任务完成后不返回 total_bytes、进度不显示 100% 的问题。

  • 修复 Download stream direct upload 模式下远端大小未知时,上传完成后未把实际大小回填到 transfer task 和父 offline download task的问题。

  • 在任务 API 响应层兜底清理 Inf progress,避免单个异常任务影响整个任务列表接口。

  • This PR has breaking changes.
    / 此 PR 包含破坏性变更。

  • This PR changes public API, config, storage format, or migration behavior.
    / 此 PR 修改了公开 API、配置、存储格式或迁移行为。

  • This PR requires corresponding changes in related repositories.
    / 此 PR 需要关联仓库同步修改。

Testing / 测试

  • go test ./...
  • Manual test / 手动测试:
    在 Web 前端使用 Aria2 和 Simple HTTP (Download stream direct upload 和其他任意 policy) 作为后端下载一不返回 HEAD 或 HEAD 中不返回有效 Content-Length 的链接,在 /@manage/tasks/offline_download 中观察是否能渲染正在下载中的任务,以及下载完成后该任务是否返回有效 total bytes.

Checklist / 检查清单

  • I have read CONTRIBUTING.
    / 我已阅读 CONTRIBUTING
  • I confirm this contribution follows the repository license, contribution policy, and code of conduct.
    / 我确认此贡献符合仓库许可证、贡献规范和行为准则。
  • I have formatted the changed code with gofmt, go fmt, or prettier where applicable.
    / 我已按适用情况使用 gofmtgo fmtprettier 格式化变更代码。
  • I have requested review from relevant maintainers or code owners where applicable.
    / 我已在适用情况下请求相关维护者或代码所有者审查。

AI Disclosure / AI 使用声明

  • This PR includes AI-assisted content.
    / 此 PR 包含 AI 辅助内容。

Tools used / 使用工具:

  • ChatGPT
  • Codex
  • GitHub Copilot
  • Claude
  • Gemini
  • Other (please specify) / 其他(请注明):

Usage scope / 使用范围:

  • Code generation / 代码生成
  • Refactoring / 重构
  • Documentation / 文档
  • Tests / 测试
  • Translation / 翻译
  • Review assistance / 审查辅助
  • I have reviewed and validated all AI-assisted content included in this PR.
    / 我已审核并验证此 PR 中的所有 AI 辅助内容。
  • I have ensured that all AI-assisted commits include Co-Authored-By attribution.
    / 我已确保所有 AI 辅助提交都包含 Co-Authored-By 归属信息。
  • I can reproduce all AI-assisted content included in this PR without any AI tools.
    / 我可以在没有任何 AI 工具的情况下重现此 PR 中包含的所有 AI 辅助内容。

@jyxjjj jyxjjj added the invalid Invalid Content/Cannot Reproduce label Jun 15, 2026
@jyxjjj

jyxjjj commented Jun 15, 2026

Copy link
Copy Markdown
Member

模板

@jyxjjj jyxjjj marked this pull request as draft June 15, 2026 23:32
@kobe-koto kobe-koto changed the title fix: handle unknown-size offline download tasks fix(offline_download): handle unknown-size offline download tasks Jun 16, 2026
@kobe-koto

Copy link
Copy Markdown
Author

已按模板更新 pr body 和标题

@kobe-koto kobe-koto marked this pull request as ready for review June 17, 2026 05:04
@xrgzs xrgzs added Module: Task Task, scheduling and other goroutine-based features related and removed invalid Invalid Content/Cannot Reproduce labels Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Module: Task Task, scheduling and other goroutine-based features related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants