2个不稳定版本
0.2.0 | 2023年12月29日 |
---|---|
0.1.0 | 2023年6月24日 |
#971 in 网络编程
24 每月下载次数
190KB
4.5K SLoC
GitHub | crates.io | 问题 | 变更日志
demagnetize
是一个Rust程序,通过从活跃的节点下载torrent信息,将一个或多个BitTorrent 磁力链接 转换为 .torrent
文件。
目前,demagnetize
仅支持BitTorrent协议的基本功能。以下是一些支持的特点:
- BitTorrent协议v1
- HTTP(包括压缩和IPv6扩展)和UDP追踪器
- 使用十六进制或base32编码的info散列的magnet URI
- 快速扩展(《BEP 6》)
- UDP追踪器协议扩展(《BEP 41》)
以下功能目前不支持,但计划支持,不分先后顺序:
- 加密
- 分布式哈希表
- BitTorrent协议v2
- magnet链接中的
x.pe
参数 - uTP
demagnetize
是同一作者编写的Python程序的翻译;您可以在https://github.com/jwodder/demagnetize找到Python版本。
安装
为了安装 demagnetize
,您首先需要安装 Rust和Cargo。然后,您可以通过运行以下命令构建 demagnetize
的最新版本并将其安装到 ~/.cargo/bin
:
cargo install demagnetize
用法
demagnetize [<global options>] <subcommand> ...
demagnetize
命令有两个子命令,get
(用于转换单个磁力链接)和batch
(用于转换包含磁力链接的文件),具体细节如下。
全局选项
-l <level>
,--log-level <level>
— 将日志级别设置为指定的值。可能的值有 "OFF
", "ERROR
", "WARN
", "INFO
", "DEBUG
" 和 "TRACE
"(不区分大小写)。[默认值:INFO
]
消磁获取
demagnetize [<global options>] get [<options>] <magnet-link>
将命令行上指定的单个磁力链接转换为 .torrent
文件。(注意,你可能需要引用链接以防止它被shell解释。)默认情况下,文件保存到 {name}.torrent
,其中 {name}
被替换为torrent信息中的 name
字段值,但可以通过 --outfile
选项设置不同的路径。
选项
-o PATH
,--outfile PATH
— 将.torrent
文件保存到指定的路径。路径可能包含一个{name}
占位符,它将被(净化)的torrent名称替换,以及/或一个{hash}
占位符,它将被torrent的信息哈希(十六进制表示)替换。指定-
将导致torrent被写入标准输出。[默认:{name}.torrent
]
消磁批量处理
demagnetize [<global options>] batch [<options>] <file>
从 <file>
中读取磁力链接(每行一个,忽略空行和以 #
开头的行),并将每个链接转换为 .torrent
文件。默认情况下,每个文件保存到 {name}.torrent
,其中 {name}
被替换为torrent信息中的 name
字段值,但可以通过 --outfile
选项设置不同的路径。
选项
-o PATH
,--outfile PATH
— 将.torrent
文件保存到指定的路径。路径可能包含一个{name}
占位符,它将被每个torrent的(净化)名称替换,以及/或一个{hash}
占位符,它将被每个torrent的信息哈希(十六进制表示)替换。[默认:{name}.torrent
]
依赖项
~11–24MB
~391K SLoC