github hect0x7/JMComic-Crawler-Python v2.7.9

4 hours ago

Summary

本次更新支持基于 DownloadControl 的协作式取消下载与多层级共享 Runtime 调度,重构批量下载结果为保序检索集合,降低默认图片并发配置,并优化多任务进度界面。

Added

  • 新增 JmTempRuntime、JmSyncRuntime 与 JmAsyncRuntime;裸同步 Downloader 的局部调度使用临时单池 Runtime,顶层同步 API 或自定义同步调度可复用 album/photo/image 三层线程池,异步下载可复用 decode 线程池。
  • 新增 DownloadControl 和 DownloadCancelledException,支持通过任务上下文协作式取消同步与异步下载;DownloadCancelledException 支持通过 completed_results 与 unfinished_ids 读取批量取消时的已完成成果与未完成 ID。
  • BatchResult 重构为独立类,保持输入 FIFO 原序并支持车号检索与下标访问,不再继承 set。
  • DownloadResult 新增 album 和 photo 快捷实体访问属性。
  • 新增 JTC (Jm Task Context) 门面类,统一提供上下文、Runtime、Option 及取消控制器的快捷读取方法。
  • jmcomic --dry-run 使用随机模拟任务预览多任务进度和重试日志,不请求网络、不下载图片、不写日志文件,也不加载 --option 配置;不能与 --no-progress 同用。

Changed

  • 默认图片层下载并发配置 download.threading.image 从 30 调整为 20。
  • 下载调度统一使用标准库 Executor;顶层 API 和裸同步 Downloader 的临时调度显式关闭自己创建的 Runtime,jm_task_context 只传播字段;外部 Runtime 和 Executor 仍由调用方关闭。
  • 顶层下载会把 Runtime 和 Option 作为公开字段直接放入任务上下文;Runtime 不依赖 Context 或 Option,未配置的层级由实际调用点传入默认 worker 数。

Fixed

  • 同步和异步下载器共用一个动态进度界面与日志区,已结束任务保留到最后一个活动下载器退出,再统一关闭界面。
  • 界面启动或渲染失败时清理注册状态;界面退出失败时仍执行下载器资源释放,避免影响后续下载。

Don't miss a new JMComic-Crawler-Python release

NewReleases is sending notifications on new releases.