Removed superfluous try catches so that DownloadClient backoff logic gets triggered.
This commit is contained in:
parent
de5ce23989
commit
10f292b225
|
@ -81,21 +81,13 @@ namespace NzbDrone.Core.Download.Clients.Deluge
|
||||||
{
|
{
|
||||||
IEnumerable<DelugeTorrent> torrents;
|
IEnumerable<DelugeTorrent> torrents;
|
||||||
|
|
||||||
try
|
if (!Settings.TvCategory.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
if (!Settings.TvCategory.IsNullOrWhiteSpace())
|
torrents = _proxy.GetTorrentsByLabel(Settings.TvCategory, Settings);
|
||||||
{
|
|
||||||
torrents = _proxy.GetTorrentsByLabel(Settings.TvCategory, Settings);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
torrents = _proxy.GetTorrents(Settings);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (DownloadClientException ex)
|
else
|
||||||
{
|
{
|
||||||
_logger.Error(ex, "Couldn't get list of torrents");
|
torrents = _proxy.GetTorrents(Settings);
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var items = new List<DownloadClientItem>();
|
var items = new List<DownloadClientItem>();
|
||||||
|
|
|
@ -35,17 +35,7 @@ namespace NzbDrone.Core.Download.Clients.Hadouken
|
||||||
|
|
||||||
public override IEnumerable<DownloadClientItem> GetItems()
|
public override IEnumerable<DownloadClientItem> GetItems()
|
||||||
{
|
{
|
||||||
HadoukenTorrent[] torrents;
|
var torrents = _proxy.GetTorrents(Settings);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
torrents = _proxy.GetTorrents(Settings);
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.ErrorException(ex.Message, ex);
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var items = new List<DownloadClientItem>();
|
var items = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
|
|
@ -47,17 +47,7 @@ namespace NzbDrone.Core.Download.Clients.NzbVortex
|
||||||
|
|
||||||
public override IEnumerable<DownloadClientItem> GetItems()
|
public override IEnumerable<DownloadClientItem> GetItems()
|
||||||
{
|
{
|
||||||
List<NzbVortexQueueItem> vortexQueue;
|
var vortexQueue = _proxy.GetQueue(30, Settings);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
vortexQueue = _proxy.GetQueue(30, Settings);
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.Warn("Couldn't get download queue. {0}", ex.Message);
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var queueItems = new List<DownloadClientItem>();
|
var queueItems = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
|
|
@ -51,19 +51,8 @@ namespace NzbDrone.Core.Download.Clients.Nzbget
|
||||||
|
|
||||||
private IEnumerable<DownloadClientItem> GetQueue()
|
private IEnumerable<DownloadClientItem> GetQueue()
|
||||||
{
|
{
|
||||||
NzbgetGlobalStatus globalStatus;
|
var globalStatus = _proxy.GetGlobalStatus(Settings);
|
||||||
List<NzbgetQueueItem> queue;
|
var queue = _proxy.GetQueue(Settings);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
globalStatus = _proxy.GetGlobalStatus(Settings);
|
|
||||||
queue = _proxy.GetQueue(Settings);
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.Error(ex, ex.Message);
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var queueItems = new List<DownloadClientItem>();
|
var queueItems = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
@ -119,17 +108,7 @@ namespace NzbDrone.Core.Download.Clients.Nzbget
|
||||||
|
|
||||||
private IEnumerable<DownloadClientItem> GetHistory()
|
private IEnumerable<DownloadClientItem> GetHistory()
|
||||||
{
|
{
|
||||||
List<NzbgetHistoryItem> history;
|
var history = _proxy.GetHistory(Settings).Take(_configService.DownloadClientHistoryLimit).ToList();
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
history = _proxy.GetHistory(Settings).Take(_configService.DownloadClientHistoryLimit).ToList();
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.Error(ex, ex.Message);
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var historyItems = new List<DownloadClientItem>();
|
var historyItems = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
|
|
@ -89,19 +89,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
||||||
|
|
||||||
public override IEnumerable<DownloadClientItem> GetItems()
|
public override IEnumerable<DownloadClientItem> GetItems()
|
||||||
{
|
{
|
||||||
QBittorrentPreferences config;
|
var config = _proxy.GetConfig(Settings);
|
||||||
List<QBittorrentTorrent> torrents;
|
var torrents = _proxy.GetTorrents(Settings);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
config = _proxy.GetConfig(Settings);
|
|
||||||
torrents = _proxy.GetTorrents(Settings);
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.Error(ex, ex.Message);
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var queueItems = new List<DownloadClientItem>();
|
var queueItems = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
|
|
@ -112,18 +112,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||||
|
|
||||||
private IEnumerable<DownloadClientItem> GetHistory()
|
private IEnumerable<DownloadClientItem> GetHistory()
|
||||||
{
|
{
|
||||||
SabnzbdHistory sabHistory;
|
var sabHistory = _proxy.GetHistory(0, _configService.DownloadClientHistoryLimit, Settings.TvCategory, Settings);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
sabHistory = _proxy.GetHistory(0, _configService.DownloadClientHistoryLimit, Settings.TvCategory, Settings);
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.Warn(ex, "Couldn't get download queue. {0}", ex.Message);
|
|
||||||
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var historyItems = new List<DownloadClientItem>();
|
var historyItems = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
@ -189,7 +178,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
historyItems.Add(historyItem);
|
historyItems.Add(historyItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,17 +33,7 @@ namespace NzbDrone.Core.Download.Clients.Transmission
|
||||||
|
|
||||||
public override IEnumerable<DownloadClientItem> GetItems()
|
public override IEnumerable<DownloadClientItem> GetItems()
|
||||||
{
|
{
|
||||||
List<TransmissionTorrent> torrents;
|
var torrents = _proxy.GetTorrents(Settings);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
torrents = _proxy.GetTorrents(Settings);
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.Error(ex, ex.Message);
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var items = new List<DownloadClientItem>();
|
var items = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
|
|
@ -81,69 +81,60 @@ namespace NzbDrone.Core.Download.Clients.RTorrent
|
||||||
|
|
||||||
public override IEnumerable<DownloadClientItem> GetItems()
|
public override IEnumerable<DownloadClientItem> GetItems()
|
||||||
{
|
{
|
||||||
try
|
var torrents = _proxy.GetTorrents(Settings);
|
||||||
|
|
||||||
|
_logger.Debug("Retrieved metadata of {0} torrents in client", torrents.Count);
|
||||||
|
|
||||||
|
var items = new List<DownloadClientItem>();
|
||||||
|
foreach (RTorrentTorrent torrent in torrents)
|
||||||
{
|
{
|
||||||
var torrents = _proxy.GetTorrents(Settings);
|
// Don't concern ourselves with categories other than specified
|
||||||
|
if (torrent.Category != Settings.TvCategory) continue;
|
||||||
|
|
||||||
_logger.Debug("Retrieved metadata of {0} torrents in client", torrents.Count);
|
if (torrent.Path.StartsWith("."))
|
||||||
|
|
||||||
var items = new List<DownloadClientItem>();
|
|
||||||
foreach (RTorrentTorrent torrent in torrents)
|
|
||||||
{
|
{
|
||||||
// Don't concern ourselves with categories other than specified
|
throw new DownloadClientException("Download paths paths must be absolute. Please specify variable \"directory\" in rTorrent.");
|
||||||
if (torrent.Category != Settings.TvCategory) continue;
|
|
||||||
|
|
||||||
if (torrent.Path.StartsWith("."))
|
|
||||||
{
|
|
||||||
throw new DownloadClientException("Download paths paths must be absolute. Please specify variable \"directory\" in rTorrent.");
|
|
||||||
}
|
|
||||||
|
|
||||||
var item = new DownloadClientItem();
|
|
||||||
item.DownloadClient = Definition.Name;
|
|
||||||
item.Title = torrent.Name;
|
|
||||||
item.DownloadId = torrent.Hash;
|
|
||||||
item.OutputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(torrent.Path));
|
|
||||||
item.TotalSize = torrent.TotalSize;
|
|
||||||
item.RemainingSize = torrent.RemainingSize;
|
|
||||||
item.Category = torrent.Category;
|
|
||||||
|
|
||||||
if (torrent.DownRate > 0)
|
|
||||||
{
|
|
||||||
var secondsLeft = torrent.RemainingSize / torrent.DownRate;
|
|
||||||
item.RemainingTime = TimeSpan.FromSeconds(secondsLeft);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
item.RemainingTime = TimeSpan.Zero;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (torrent.IsFinished)
|
|
||||||
{
|
|
||||||
item.Status = DownloadItemStatus.Completed;
|
|
||||||
}
|
|
||||||
else if (torrent.IsActive)
|
|
||||||
{
|
|
||||||
item.Status = DownloadItemStatus.Downloading;
|
|
||||||
}
|
|
||||||
else if (!torrent.IsActive)
|
|
||||||
{
|
|
||||||
item.Status = DownloadItemStatus.Paused;
|
|
||||||
}
|
|
||||||
|
|
||||||
// No stop ratio data is present, so do not delete
|
|
||||||
item.CanMoveFiles = item.CanBeRemoved = false;
|
|
||||||
|
|
||||||
items.Add(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return items;
|
var item = new DownloadClientItem();
|
||||||
}
|
item.DownloadClient = Definition.Name;
|
||||||
catch (DownloadClientException ex)
|
item.Title = torrent.Name;
|
||||||
{
|
item.DownloadId = torrent.Hash;
|
||||||
_logger.Error(ex, ex.Message);
|
item.OutputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(torrent.Path));
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
item.TotalSize = torrent.TotalSize;
|
||||||
|
item.RemainingSize = torrent.RemainingSize;
|
||||||
|
item.Category = torrent.Category;
|
||||||
|
|
||||||
|
if (torrent.DownRate > 0)
|
||||||
|
{
|
||||||
|
var secondsLeft = torrent.RemainingSize / torrent.DownRate;
|
||||||
|
item.RemainingTime = TimeSpan.FromSeconds(secondsLeft);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item.RemainingTime = TimeSpan.Zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (torrent.IsFinished)
|
||||||
|
{
|
||||||
|
item.Status = DownloadItemStatus.Completed;
|
||||||
|
}
|
||||||
|
else if (torrent.IsActive)
|
||||||
|
{
|
||||||
|
item.Status = DownloadItemStatus.Downloading;
|
||||||
|
}
|
||||||
|
else if (!torrent.IsActive)
|
||||||
|
{
|
||||||
|
item.Status = DownloadItemStatus.Paused;
|
||||||
|
}
|
||||||
|
|
||||||
|
// No stop ratio data is present, so do not delete
|
||||||
|
item.CanMoveFiles = item.CanBeRemoved = false;
|
||||||
|
|
||||||
|
items.Add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void RemoveItem(string downloadId, bool deleteData)
|
public override void RemoveItem(string downloadId, bool deleteData)
|
||||||
|
|
|
@ -72,42 +72,7 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||||
|
|
||||||
public override IEnumerable<DownloadClientItem> GetItems()
|
public override IEnumerable<DownloadClientItem> GetItems()
|
||||||
{
|
{
|
||||||
List<UTorrentTorrent> torrents;
|
var torrents = GetTorrents();
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var cacheKey = string.Format("{0}:{1}:{2}", Settings.Host, Settings.Port, Settings.TvCategory);
|
|
||||||
var cache = _torrentCache.Find(cacheKey);
|
|
||||||
|
|
||||||
var response = _proxy.GetTorrents(cache == null ? null : cache.CacheID, Settings);
|
|
||||||
|
|
||||||
if (cache != null && response.Torrents == null)
|
|
||||||
{
|
|
||||||
var removedAndUpdated = new HashSet<string>(response.TorrentsChanged.Select(v => v.Hash).Concat(response.TorrentsRemoved));
|
|
||||||
|
|
||||||
torrents = cache.Torrents
|
|
||||||
.Where(v => !removedAndUpdated.Contains(v.Hash))
|
|
||||||
.Concat(response.TorrentsChanged)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
torrents = response.Torrents;
|
|
||||||
}
|
|
||||||
|
|
||||||
cache = new UTorrentTorrentCache
|
|
||||||
{
|
|
||||||
CacheID = response.CacheNumber,
|
|
||||||
Torrents = torrents
|
|
||||||
};
|
|
||||||
|
|
||||||
_torrentCache.Set(cacheKey, cache, TimeSpan.FromMinutes(15));
|
|
||||||
}
|
|
||||||
catch (DownloadClientException ex)
|
|
||||||
{
|
|
||||||
_logger.Error(ex, ex.Message);
|
|
||||||
return Enumerable.Empty<DownloadClientItem>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var queueItems = new List<DownloadClientItem>();
|
var queueItems = new List<DownloadClientItem>();
|
||||||
|
|
||||||
|
@ -173,6 +138,40 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||||
return queueItems;
|
return queueItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<UTorrentTorrent> GetTorrents()
|
||||||
|
{
|
||||||
|
List<UTorrentTorrent> torrents;
|
||||||
|
|
||||||
|
var cacheKey = string.Format("{0}:{1}:{2}", Settings.Host, Settings.Port, Settings.TvCategory);
|
||||||
|
var cache = _torrentCache.Find(cacheKey);
|
||||||
|
|
||||||
|
var response = _proxy.GetTorrents(cache == null ? null : cache.CacheID, Settings);
|
||||||
|
|
||||||
|
if (cache != null && response.Torrents == null)
|
||||||
|
{
|
||||||
|
var removedAndUpdated = new HashSet<string>(response.TorrentsChanged.Select(v => v.Hash).Concat(response.TorrentsRemoved));
|
||||||
|
|
||||||
|
torrents = cache.Torrents
|
||||||
|
.Where(v => !removedAndUpdated.Contains(v.Hash))
|
||||||
|
.Concat(response.TorrentsChanged)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
torrents = response.Torrents;
|
||||||
|
}
|
||||||
|
|
||||||
|
cache = new UTorrentTorrentCache
|
||||||
|
{
|
||||||
|
CacheID = response.CacheNumber,
|
||||||
|
Torrents = torrents
|
||||||
|
};
|
||||||
|
|
||||||
|
_torrentCache.Set(cacheKey, cache, TimeSpan.FromMinutes(15));
|
||||||
|
|
||||||
|
return torrents;
|
||||||
|
}
|
||||||
|
|
||||||
public override void RemoveItem(string downloadId, bool deleteData)
|
public override void RemoveItem(string downloadId, bool deleteData)
|
||||||
{
|
{
|
||||||
_proxy.RemoveTorrent(downloadId, deleteData, Settings);
|
_proxy.RemoveTorrent(downloadId, deleteData, Settings);
|
||||||
|
|
Loading…
Reference in New Issue