在Scala中使用磁铁uri下载文件

在Scala中使用磁铁uri下载文件,scala,bittorrent,magnet-uri,Scala,Bittorrent,Magnet Uri,我想在我的Scala应用程序中加入一些bittorrent功能。我想使用磁铁链接独家如果我可以为他们的易用性。问题是我想使用一个预构建的库,比如。但是,我发现这些库不使用磁铁链接,它们使用metainfo或torrent文件本身 所以我想我的第一步是利用磁铁链接,自己构建一个metainfo对象。我非常了解磁铁链接的组成,可以将其解析为参数我只是不太确定如何使用磁铁参数。我不知道该怎么处理它们。 以下是我在PB上找到的一个测试磁铁链接: magnet:?xt=urn:btih:ad11eb1a0

我想在我的Scala应用程序中加入一些bittorrent功能。我想使用磁铁链接独家如果我可以为他们的易用性。问题是我想使用一个预构建的库,比如。但是,我发现这些库不使用磁铁链接,它们使用metainfo或torrent文件本身

所以我想我的第一步是利用磁铁链接,自己构建一个metainfo对象。我非常了解磁铁链接的组成,可以将其解析为参数我只是不太确定如何使用磁铁参数。我不知道该怎么处理它们。

以下是我在PB上找到的一个测试磁铁链接:

magnet:?xt=urn:btih:ad11eb1a0aeed57116225fb341dc61883c22aeba&dn=Rise.of.the.Guardians.2012.TS.NEW.SOURCE.x264.AAC-UNiQUE&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80
解析后,我得到:

xt=urn:btih:ad11eb1a0aeed57116225fb341dc61883c22aeba
dn=Rise.of.the.Guardians.2012.TS.NEW.SOURCE.x264.AAC-UNiQUE
tr=udp://tracker.openbittorrent.com:80
tr=udp://tracker.publicbt.com:80
tr=udp://tracker.istole.it:6969
tr=udp://tracker.ccc.de:80
很简单。现在我没有太多使用散列,但我很确定我不能直接从中获得任何信息。我唯一的猜测是,我可能必须联系其中一个跟踪器才能获得元信息。不过我不确定


[fyi]Torrent将仅用于合法共享,用于在应用程序用户之间共享应用程序数据和应用程序文件

根据客户端需要的infohash检索元数据

  • 在这种情况下,能够找到同龄人*
  • 支持
  • 对扩展协议的支持
  • 因为,根据自述文件,ttorrent没有实现BEPs 9和10,所以不能使用磁铁链接

    [*]HTTP跟踪器和DHT是其他来源,需要它们自己的协议,但与本例无关