@ -37,6 +37,37 @@ namespace NzbDrone.Core.Download.Clients.RTorrent
_rTorrentDirectoryValidator = rTorrentDirectoryValidator ;
_rTorrentDirectoryValidator = rTorrentDirectoryValidator ;
}
}
protected override string AddFromMagnetLink ( RemoteMovie remoteMovie , string hash , string magnetLink )
{
_proxy . AddTorrentFromUrl ( magnetLink , Settings ) ;
// Download the magnet to the appropriate directory.
_proxy . SetTorrentLabel ( hash , Settings . TvCategory , Settings ) ;
//SetPriority(remoteEpisode, hash);
SetDownloadDirectory ( hash ) ;
// Once the magnet meta download finishes, rTorrent replaces it with the actual torrent download with default settings.
// Schedule an event to apply the appropriate settings when that happens.
// var priority = (RTorrentPriority)(remoteEpisode.IsRecentEpisode() ? Settings.RecentTvPriority : Settings.OlderTvPriority);
//_proxy.SetDeferredMagnetProperties(hash, Settings.TvCategory, Settings.TvDirectory, priority, Settings);
_proxy . StartTorrent ( hash , Settings ) ;
// Wait for the magnet to be resolved.
var tries = 10 ;
var retryDelay = 500 ;
if ( WaitForTorrent ( hash , tries , retryDelay ) )
{
return hash ;
}
else
{
_logger . Warn ( "rTorrent could not resolve magnet within {0} seconds, download may remain stuck: {1}." , tries * retryDelay / 1000 , magnetLink ) ;
return hash ;
}
}
protected override string AddFromMagnetLink ( RemoteEpisode remoteEpisode , string hash , string magnetLink )
protected override string AddFromMagnetLink ( RemoteEpisode remoteEpisode , string hash , string magnetLink )
{
{
_proxy . AddTorrentFromUrl ( magnetLink , Settings ) ;
_proxy . AddTorrentFromUrl ( magnetLink , Settings ) ;
@ -68,6 +99,32 @@ namespace NzbDrone.Core.Download.Clients.RTorrent
}
}
}
}
protected override string AddFromTorrentFile ( RemoteMovie remoteMovie , string hash , string filename , byte [ ] fileContent )
{
_proxy . AddTorrentFromFile ( filename , fileContent , Settings ) ;
var tries = 2 ;
var retryDelay = 100 ;
if ( WaitForTorrent ( hash , tries , retryDelay ) )
{
_proxy . SetTorrentLabel ( hash , Settings . TvCategory , Settings ) ;
//SetPriority(remoteEpisode, hash);
SetDownloadDirectory ( hash ) ;
_proxy . StartTorrent ( hash , Settings ) ;
return hash ;
}
else
{
_logger . Debug ( "rTorrent could not add file" ) ;
RemoveItem ( hash , true ) ;
throw new ReleaseDownloadException ( remoteMovie . Release , "Downloading torrent failed" ) ;
}
}
protected override string AddFromTorrentFile ( RemoteEpisode remoteEpisode , string hash , string filename , byte [ ] fileContent )
protected override string AddFromTorrentFile ( RemoteEpisode remoteEpisode , string hash , string filename , byte [ ] fileContent )
{
{
_proxy . AddTorrentFromFile ( filename , fileContent , Settings ) ;
_proxy . AddTorrentFromFile ( filename , fileContent , Settings ) ;
@ -96,7 +153,7 @@ namespace NzbDrone.Core.Download.Clients.RTorrent
public override string Name = > "rTorrent" ;
public override string Name = > "rTorrent" ;
public override ProviderMessage Message = > new ProviderMessage ( " Son arr is unable to remove torrents that have finished seeding when using rTorrent", ProviderMessageType . Warning ) ;
public override ProviderMessage Message = > new ProviderMessage ( " Rad arr is unable to remove torrents that have finished seeding when using rTorrent", ProviderMessageType . Warning ) ;
public override IEnumerable < DownloadClientItem > GetItems ( )
public override IEnumerable < DownloadClientItem > GetItems ( )
{
{