2009-06-24 7 views
1

J'essaie de créer un script pour m'aider à déplacer de gros fichiers sur un réseau Windows interne, et j'espérais que Ruby, en conjonction avec BitTorrent serait idéal. Cependant, mon code ne semble pas réellement télécharger quoi que ce soit.RubyTorrent Problème

Je sais que le projet RubyTorrent a été abandonné depuis longtemps, alors j'espérais qu'un de mes collègues Stackoverflow puisse m'aider.

Mon code (jusqu'à présent est):

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 

Comme vous pouvez le voir, la ligne « bt.tracker » est à venir comme nulle, donc il pourrait y avoir un problème qui passe le fichier .torrent, mais alors pourquoi ça passe le reste du fichier?

Toute aide apportée à ce travail serait grandement appréciée.

Répondre

2

Votre code est bon, le seul problème est que vous essayez d'imprimer bt.tracker lorsque vous n'êtes toujours pas connecté au tracker. Si vous essayez d'imprimer après avoir été connecté il n'y a aucun problème

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 doux, mais il ne marche pas encore semblent être en fait le téléchargement de torrent, d'ailleurs, où est-il en cours de téléchargement à? – Ash

+0

En fait, ce n'est pas vrai qu'il télécharge maintenant :) mais où stocke-t-il les données? – Ash

+0

lol nm - je viens de le trouver :) dans le répertoire que le fichier rb est exécuté. Merci de votre aide. – Ash

-1

Je pense qu'il attend un nom de fichier. Pourrait-il être aussi simple que d'avoir besoin de require 'open-uri'?