Repository navigation
v2.1.0
Pre-release
Pre-release
v2.1.0
引擎
- 动态分段:分片布局在下载过程中会长大,不再是开跑前一次性切死。从 2 条
连接起步,有实打实的进度才逐级放开到设定上限;单个分片跑到一半会被拆成两半,
拆出来的另一半另开连接继续拉 - 无 Range 自动回退:服务器对 Range 请求返回 200 而不是 206 时,自动退化成
单流下载,不再把整份文件当成分片数据写坏 - 续传校验:会话文件里记了 ETag / Last-Modified / Content-Length,资源变了
就不再接着旧进度写,任务转成「资源已变更」而不是悄悄写出一个坏文件 - 会话落盘:分片布局写成
<文件名>.sdm.session.json,崩溃或被杀之后能按原
布局接着下 - 进度报增量:文件级进度是所有分片增量之和。修好了进度虚高 2.5 倍的 bug
(2 MB 的文件一度报成 5 MB) - 代理:支持 http / https 原生代理,SOCKS4 / SOCKS5 走
httpx-socks - 校验和:可选 md5 / sha1 / sha256,完成后自动算出校验值
- 完成后行为:打开文件、打开文件夹、跑脚本、休眠,可按任务设置
- 磁盘空间预检:开跑前检查剩余空间,不够就直接失败,不下到一半才发现
- 名字冲突:默认保留两者(
foo (1).zip),覆盖要走「移到废纸篓」,不会
静默删掉用户已有文件 - 任务队列:同时活跃的任务数有上限(默认 5),超出的排队,可置顶置底
- 重试与改选项:失败任务可重试,代理 / 校验算法 / 完成后行为可以中途改
错误处理
- 12 类结构化错误分类:网络、磁盘、权限、空间不足、认证、链接过期、服务器、
限流、协议、不支持、用户取消、未知 - 每类错误都带能不能自动重试和用户该做什么的中文说明
- HTTP 状态码自动归类,403 / 410 / 451 归到「链接失效」,任务转「等待新链接」
- 尊重
Retry-After,重试用指数退避 + 抖动,最多 5 次 - 错误详情可以复制出来,粘到反馈里能看懂
浏览器接管
- Native Messaging 宿主:Chrome / Edge / Firefox / Safari 扩展通过原生消息
把下载派给应用,自动带上页面的 Cookie、User-Agent、Referer - 配对令牌:扩展第一次连接要跟应用配对,令牌存在本地,回环 HTTP 通道强制
校验 - Chrome / Edge 扩展重写:取消浏览器自带的下载,接管文件名、按分类分目录
- Firefox 修好:以前把文件名当 URL 发出去,压根下不动
- Safari 改成纯手动:右键菜单 + 工具栏按钮,不做自动拦截
界面
- 底部状态栏:全局速度、限速、活跃任务数
- 分类列 + 列显隐选择器
- 新建任务对话框重写:多行 URL、保存目录、分类、代理、请求头键值行、分块数、
开始时机(立即 / 排队 / 定时),带解析状态和重新解析 - 详情面板:分片可视化 + 最近 60 秒的速度曲线
- 浅色 / 深色主题切换,跟随系统
- 设置里补齐 7 个新键(并发任务数、主题、代理、配对令牌、初始连接数、分片上限等)
macOS / Windows 系统集成
- 菜单栏状态行:实时显示「下载中 N 个 · 速度」,1.5 秒刷一次;带暂停全部、
继续全部、剪贴板监控勾选 - Dock 图标显示整体下载进度
- AppleScript 词典:可在 Script Editor 里
add download、pause all downloads、
resume all downloads、get download list - Windows 托盘图标 + 与 macOS 一致的菜单
- Windows URL Scheme 注册表项
打包
- 新增
sdmd-native-host产物,浏览器按清单拉起它 - macOS 首次启动自动装原生消息宿主清单,Windows 解包后自动装
- AppleScript 词典打进
.app,Info.plist里写OSAScriptingDefinition
已知限制
- Safari 只做手动接管,不做自动拦截
- 不支持 BT / 磁力
- 没有 App Intents 原生集成
- SOCKS 代理需要额外装
httpx-socks - 本版仍未经过大规模手测,按惯例发 Pre-release
v2.0.6
- 下载列表可以按文件名、大小、速度、状态排序,未知大小的任务排在最后
- 速度显示改成平滑曲线,不再忽快忽慢;任务结束或暂停时速度归零
- 下载完成后自动写进历史记录
- 日志每天自动清理一次,改动日志设置时也会立即清理
- 设置里可以直接打开 macOS 的 Console.app 看日志
- 下载完成和失败时发系统通知;应用在前台时也弹横幅;点通知会把主窗口拉到前面
- 站点规则对探测请求也生效,需要 Referer 或特定 UA 的站点不再一启动就失败
- 命令行和后台守护支持用环境变量指定 socket 路径
- 后台守护必须由系统服务启动,手动运行会给出提示而不是挂在前台
- 剪贴板候选弹窗可以随时停止监听;已经在下载队列里的链接不再重复提示
- 关闭自动分类后,所有下载落进下载目录根目录
- 关掉主窗口后应用继续在菜单栏待着,可从菜单栏唤回
- 关闭窗口时按设置隐藏 Dock 图标,从菜单栏唤回时恢复
- 启动时自动同步开机自启状态
- 带宽限制输入框的单位改成 KB/s,之前填的数值实际是按字节算的
- 支持
superdownloadmanager://链接唤起下载
v2.0.5
- 修好分片计数:详情页的「已完成分片 / 总片数」以前一直是 0/0,现在正确显示
- 最后一个分片完成后状态不再停留在未完成
- 已完成的任务也能查看分片明细
- 修好 socket 路径过长时 daemon 起不来:路径超过系统上限自动改用短路径
- 打包时校验应用图标,没打进 bundle 直接让构建失败
v2.0.4
- 详情页分片表可以展开看全部,默认仍只列前 64 个
- 换任务时自动收起
v2.0.3
- 修好应用图标:之前打包没传图标参数,访达和 Dock 里显示的是打包工具的默认图标
- macOS 菜单栏常驻图标,菜单项跟桌面版一致:打开主窗口、加 URL、在访达显示下载目录、关于、设置、退出
- Windows 也用同一个图标
v2.0.2
- 一个包就够:命令行和后台守护都装在 app 里,首次启动自动装好
- macOS 把
sdm软链到 PATH 并注册开机自启 - Windows 首次运行时释放命令行和守护进程,加进 PATH 并注册计划任务
- macOS DMG 生成(
build.py --mac)
v2.0.1
Python 重写版。跨 macOS、Windows、Linux,界面换成液态玻璃。
- 引擎改用 httpx 真流式传输,字节到达即落盘
- 分片下载默认 32 段,上限 128
- 断点续传按已落盘字节继续
- 链接过期(403/410/451)时任务转「等待新链接」,换新 URL 后从已完成分段续传
- 全局限速、单任务限速、时间段限速规则
- 自动文件分类,无扩展名文件按 magic byte 识别
- 站点规则支持 Referer、User-Agent、Cookie、Basic Auth
- 下载历史、计划任务、站点规则、日志、通知
- 剪贴板候选确认、浏览器扩展派单
sdm命令行,每个命令返回 JSON- 后台 daemon,开机自启
- 窗口自由缩放,布局重排不裁切
- 详情页显示真实分片状态
- macOS DMG 生成(
build.py --mac)
Windows 22H2 与 macOS 12+。