2009-06-24 8 views
1

私は大規模なファイルを内部のWindowsネットワーク上で移動するのに役立つスクリプトを作成しようとしており、RubyとBitTorrentを併用することが望ましいと考えていました。しかし、私のコードdoesntは実際に何かをダウンロードするようです。RubyTorrent Issue

私はRubyTorrentプロジェクトが長い間放棄されていることを知っています。だから、私の仲間のStackoverflowersが私を助けてくれることを願っていました。

私のコード(これまでのところです):

require 'rubytorrent' 
bt = RubyTorrent::BitTorrent.new('http://www.mininova.org/get/2511754') 
puts bt.tracker 
puts bt.port 
thread = Thread.new do 
    while true 
    puts bt.percent_completed 
    sleep 15 
    end 
end 
bt.on_event(self, :complete) { thread.kill } 
thread.join 

あなたが見ることができるように、「bt.tracker」行がnilとして来ているので、それは.torrentファイルを渡す問題かもしれませんが、それでは、ファイルの残りの部分を渡すのはなぜですか?

これを動作させる助けがあれば、大歓迎です。

答えて

2

あなたのコードは良いですが、唯一の問題はトラッカーに接続していないときにbt.trackerを印刷しようとすることです。 あなたが

begin 
    bt = RubyTorrent::BitTorrent.new('yourtorrent') 
rescue IOError 
    puts "Can't open the torrent" 
end 

bt.on_event(self, :tracker_connected) { |s, url| puts "[tracker] connected to tracker #{url}" } 

puts 'Tracker : '+bt.tracker.to_s 
puts bt.port 
thread = Thread.new do 
    while true 
    puts 'Tracker : '+bt.tracker.to_s 
    puts bt.percent_completed 
    sleep 10 
    end 
end 
bt.on_event(self, :complete) { thread.kill } 
thread.join 
+0

OK何ら問題はありません接続された後、それを印刷しようとした場合には、甘いthatsの、まだ、しかも、それがダウンロードされている急流をダウンロードし、実際のように見えるdoesntの? – Ash

+0

実際には、それは今はダウンロードされていません:)しかし、それはどこにデータを格納していますか? – Ash

+0

lol nm - rbファイルが実行されているディレクトリに:)ご協力いただきありがとうございます。 – Ash

-1

ファイル名が必要だと思います。 require 'open-uri'にする必要があるほど簡単かもしれませんか?