protected override string AddFromMagnetLink(RemoteAlbum remoteAlbum, string hash, string magnetLink) { var actualHash = _proxy.AddTorrentFromMagnet(magnetLink, Settings); if (actualHash.IsNullOrWhiteSpace()) { throw new DownloadClientException("Deluge failed to add magnet " + magnetLink); } if (!Settings.MusicCategory.IsNullOrWhiteSpace()) { _proxy.SetLabel(actualHash, Settings.MusicCategory, Settings); } _proxy.SetTorrentSeedingConfiguration(actualHash, remoteAlbum.SeedConfiguration, Settings); var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if (isRecentAlbum && Settings.RecentTvPriority == (int)DelugePriority.First || !isRecentAlbum && Settings.OlderTvPriority == (int)DelugePriority.First) { _proxy.MoveTorrentToTopInQueue(actualHash, Settings); } return(actualHash.ToUpper()); }
protected override string AddFromTorrentFile(RemoteAlbum remoteAlbum, string hash, string filename, byte[] fileContent) { var actualHash = _proxy.AddTorrentFromFile(filename, fileContent, Settings); if (actualHash.IsNullOrWhiteSpace()) { throw new DownloadClientException("Deluge failed to add torrent " + filename); } _proxy.SetTorrentSeedingConfiguration(actualHash, remoteAlbum.SeedConfiguration, Settings); if (Settings.MusicCategory.IsNotNullOrWhiteSpace()) { _proxy.SetTorrentLabel(actualHash, Settings.MusicCategory, Settings); } var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if ((isRecentAlbum && Settings.RecentTvPriority == (int)DelugePriority.First) || (!isRecentAlbum && Settings.OlderTvPriority == (int)DelugePriority.First)) { _proxy.MoveTorrentToTopInQueue(actualHash, Settings); } return(actualHash.ToUpper()); }
protected override string AddFromMagnetLink(RemoteAlbum remoteAlbum, string hash, string magnetLink) { if (!Proxy.GetConfig(Settings).DhtEnabled&& !magnetLink.Contains("&tr=")) { throw new NotSupportedException("Magnet Links without trackers not supported if DHT is disabled"); } Proxy.AddTorrentFromUrl(magnetLink, Settings); if (Settings.MusicCategory.IsNotNullOrWhiteSpace()) { Proxy.SetTorrentLabel(hash.ToLower(), Settings.MusicCategory, Settings); } var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if (isRecentAlbum && Settings.RecentTvPriority == (int)QBittorrentPriority.First || !isRecentAlbum && Settings.OlderTvPriority == (int)QBittorrentPriority.First) { Proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); } SetInitialState(hash.ToLower()); if (remoteAlbum.SeedConfiguration != null && (remoteAlbum.SeedConfiguration.Ratio.HasValue || remoteAlbum.SeedConfiguration.SeedTime.HasValue)) { Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteAlbum.SeedConfiguration, Settings); } return(hash); }
protected override string AddFromTorrentFile(RemoteAlbum remoteAlbum, string hash, string filename, byte[] fileContent) { var setShareLimits = remoteAlbum.SeedConfiguration != null && (remoteAlbum.SeedConfiguration.Ratio.HasValue || remoteAlbum.SeedConfiguration.SeedTime.HasValue); var addHasSetShareLimits = setShareLimits && ProxyApiVersion >= new Version(2, 8, 1); var isRecentAlbum = remoteAlbum.IsRecentAlbum(); var moveToTop = (isRecentAlbum && Settings.RecentTvPriority == (int)QBittorrentPriority.First) || (!isRecentAlbum && Settings.OlderTvPriority == (int)QBittorrentPriority.First); var forceStart = (QBittorrentState)Settings.InitialState == QBittorrentState.ForceStart; Proxy.AddTorrentFromFile(filename, fileContent, addHasSetShareLimits ? remoteAlbum.SeedConfiguration : null, Settings); if ((!addHasSetShareLimits && setShareLimits) || moveToTop || forceStart) { if (!WaitForTorrent(hash)) { return(hash); } if (!addHasSetShareLimits && setShareLimits) { try { Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteAlbum.SeedConfiguration, Settings); } catch (Exception ex) { _logger.Warn(ex, "Failed to set the torrent seed criteria for {0}.", hash); } } if (moveToTop) { try { Proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); } catch (Exception ex) { _logger.Warn(ex, "Failed to set the torrent priority for {0}.", hash); } } if (forceStart) { try { Proxy.SetForceStart(hash.ToLower(), true, Settings); } catch (Exception ex) { _logger.Warn(ex, "Failed to set ForceStart for {0}.", hash); } } } return(hash); }
protected override string AddFromNzbFile(RemoteAlbum remoteAlbum, string filename, byte[] fileContent) { var priority = remoteAlbum.IsRecentAlbum() ? Settings.RecentTvPriority : Settings.OlderTvPriority; var response = _proxy.DownloadNzb(fileContent, filename, priority, Settings); if (response == null) { throw new DownloadClientException("Failed to add nzb {0}", filename); } return(response); }
protected override string AddFromNzbFile(RemoteAlbum remoteAlbum, string filename, byte[] fileContent) { var category = Settings.MusicCategory; var priority = remoteAlbum.IsRecentAlbum() ? Settings.RecentTvPriority : Settings.OlderTvPriority; var response = _proxy.DownloadNzb(fileContent, filename, category, priority, Settings); if (response == null || response.Ids.Empty()) { throw new DownloadClientRejectedReleaseException(remoteAlbum.Release, "SABnzbd rejected the NZB for an unknown reason"); } return(response.Ids.First()); }
protected override string AddFromTorrentFile(RemoteAlbum remoteAlbum, string hash, string filename, byte[] fileContent) { _proxy.AddTorrentFromData(fileContent, GetDownloadDirectory(), Settings); _proxy.SetTorrentSeedingConfiguration(hash, remoteAlbum.SeedConfiguration, Settings); var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if (isRecentAlbum && Settings.RecentTvPriority == (int)TransmissionPriority.First || !isRecentAlbum && Settings.OlderTvPriority == (int)TransmissionPriority.First) { _proxy.MoveTorrentToTopInQueue(hash, Settings); } return(hash); }
protected override string AddFromMagnetLink(RemoteAlbum remoteAlbum, string hash, string magnetLink) { _proxy.AddTorrentFromUrl(magnetLink, GetDownloadDirectory(), Settings); _proxy.SetTorrentSeedingConfiguration(hash, remoteAlbum.SeedConfiguration, Settings); var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if (isRecentAlbum && Settings.RecentTvPriority == (int)TransmissionPriority.First || !isRecentAlbum && Settings.OlderTvPriority == (int)TransmissionPriority.First) { _proxy.MoveTorrentToTopInQueue(hash, Settings); } return(hash); }
protected override string AddFromTorrentFile(RemoteAlbum remoteAlbum, string hash, string filename, byte[] fileContent) { var priority = (RTorrentPriority)(remoteAlbum.IsRecentAlbum() ? Settings.RecentTvPriority : Settings.OlderTvPriority); _proxy.AddTorrentFromFile(filename, fileContent, Settings.MusicCategory, priority, Settings.MusicDirectory, Settings); var tries = 10; var retryDelay = 500; if (!WaitForTorrent(hash, tries, retryDelay)) { _logger.Debug("rTorrent didn't add the torrent within {0} seconds: {1}.", tries * retryDelay / 1000, filename); throw new ReleaseDownloadException(remoteAlbum.Release, "Downloading torrent failed"); } return(hash); }
protected override string AddFromTorrentFile(RemoteAlbum remoteAlbum, string hash, string filename, byte[] fileContent) { _proxy.AddTorrentFromFile(filename, fileContent, Settings); _proxy.SetTorrentLabel(hash, Settings.MusicCategory, Settings); _proxy.SetTorrentSeedingConfiguration(hash, remoteAlbum.SeedConfiguration, Settings); var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if (isRecentAlbum && Settings.RecentTvPriority == (int)UTorrentPriority.First || !isRecentAlbum && Settings.OlderTvPriority == (int)UTorrentPriority.First) { _proxy.MoveTorrentToTopInQueue(hash, Settings); } _proxy.SetState(hash, (UTorrentState)Settings.IntialState, Settings); return(hash); }
protected override string AddFromMagnetLink(RemoteAlbum remoteAlbum, string hash, string magnetLink) { var priority = (RTorrentPriority)(remoteAlbum.IsRecentAlbum() ? Settings.RecentTvPriority : Settings.OlderTvPriority); _proxy.AddTorrentFromUrl(magnetLink, Settings.MusicCategory, priority, Settings.MusicDirectory, Settings); var tries = 10; var retryDelay = 500; // Wait a bit for the magnet to be resolved. if (!WaitForTorrent(hash, tries, retryDelay)) { _logger.Warn("rTorrent could not resolve magnet within {0} seconds, download may remain stuck: {1}.", tries * retryDelay / 1000, magnetLink); return(hash); } return(hash); }
protected override string AddFromTorrentFile(RemoteAlbum remoteAlbum, string hash, string filename, Byte[] fileContent) { Proxy.AddTorrentFromFile(filename, fileContent, Settings); try { if (Settings.MusicCategory.IsNotNullOrWhiteSpace()) { Proxy.SetTorrentLabel(hash.ToLower(), Settings.MusicCategory, Settings); } } catch (Exception ex) { _logger.Warn(ex, "Failed to set the torrent label for {0}.", filename); } try { var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if (isRecentAlbum && Settings.RecentTvPriority == (int)QBittorrentPriority.First || !isRecentAlbum && Settings.OlderTvPriority == (int)QBittorrentPriority.First) { Proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); } } catch (Exception ex) { _logger.Warn(ex, "Failed to set the torrent priority for {0}.", filename); } SetInitialState(hash.ToLower()); if (remoteAlbum.SeedConfiguration != null && (remoteAlbum.SeedConfiguration.Ratio.HasValue || remoteAlbum.SeedConfiguration.SeedTime.HasValue)) { Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteAlbum.SeedConfiguration, Settings); } return(hash); }
protected override string AddFromMagnetLink(RemoteAlbum remoteAlbum, string hash, string magnetLink) { _proxy.AddTorrentFromUrl(magnetLink, Settings); _proxy.SetTorrentSeedingConfiguration(hash, remoteAlbum.SeedConfiguration, Settings); if (Settings.MusicCategory.IsNotNullOrWhiteSpace()) { _proxy.SetTorrentLabel(hash, Settings.MusicCategory, Settings); } var isRecentAlbum = remoteAlbum.IsRecentAlbum(); if ((isRecentAlbum && Settings.RecentTvPriority == (int)UTorrentPriority.First) || (!isRecentAlbum && Settings.OlderTvPriority == (int)UTorrentPriority.First)) { _proxy.MoveTorrentToTopInQueue(hash, Settings); } _proxy.SetState(hash, (UTorrentState)Settings.IntialState, Settings); return(hash); }
protected override string AddFromMagnetLink(RemoteAlbum remoteAlbum, string hash, string magnetLink) { if (!Proxy.GetConfig(Settings).DhtEnabled&& !magnetLink.Contains("&tr=")) { throw new NotSupportedException("Magnet Links without trackers not supported if DHT is disabled"); } var setShareLimits = remoteAlbum.SeedConfiguration != null && (remoteAlbum.SeedConfiguration.Ratio.HasValue || remoteAlbum.SeedConfiguration.SeedTime.HasValue); var addHasSetShareLimits = setShareLimits && ProxyApiVersion >= new Version(2, 8, 1); var isRecentAlbum = remoteAlbum.IsRecentAlbum(); var moveToTop = (isRecentAlbum && Settings.RecentTvPriority == (int)QBittorrentPriority.First) || (!isRecentAlbum && Settings.OlderTvPriority == (int)QBittorrentPriority.First); var forceStart = (QBittorrentState)Settings.InitialState == QBittorrentState.ForceStart; Proxy.AddTorrentFromUrl(magnetLink, addHasSetShareLimits && setShareLimits ? remoteAlbum.SeedConfiguration : null, Settings); if ((!addHasSetShareLimits && setShareLimits) || moveToTop || forceStart) { if (!WaitForTorrent(hash)) { return(hash); } if (!addHasSetShareLimits && setShareLimits) { try { Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteAlbum.SeedConfiguration, Settings); } catch (Exception ex) { _logger.Warn(ex, "Failed to set the torrent seed criteria for {0}.", hash); } } if (moveToTop) { try { Proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); } catch (Exception ex) { _logger.Warn(ex, "Failed to set the torrent priority for {0}.", hash); } } if (forceStart) { try { Proxy.SetForceStart(hash.ToLower(), true, Settings); } catch (Exception ex) { _logger.Warn(ex, "Failed to set ForceStart for {0}.", hash); } } } return(hash); }