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