|
|
|
@ -388,16 +388,20 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var minimumRetention = 60 * 24 * 14;
|
|
|
|
|
|
|
|
|
|
return new DownloadClientInfo
|
|
|
|
|
{
|
|
|
|
|
IsLocalhost = Settings.Host == "127.0.0.1" || Settings.Host == "localhost",
|
|
|
|
|
OutputRootFolders = new List<OsPath> { _remotePathMappingService.RemapRemoteToLocal(Settings.Host, destDir) },
|
|
|
|
|
RemovesCompletedDownloads = (config.MaxRatioEnabled || (config.MaxSeedingTimeEnabled && config.MaxSeedingTime < minimumRetention)) && (config.MaxRatioAction == QBittorrentMaxRatioAction.Remove || config.MaxRatioAction == QBittorrentMaxRatioAction.DeleteFiles)
|
|
|
|
|
RemovesCompletedDownloads = RemovesCompletedDownloads(config)
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool RemovesCompletedDownloads(QBittorrentPreferences config)
|
|
|
|
|
{
|
|
|
|
|
var minimumRetention = 60 * 24 * 14; // 14 days in minutes
|
|
|
|
|
return (config.MaxRatioEnabled || (config.MaxSeedingTimeEnabled && config.MaxSeedingTime < minimumRetention)) && (config.MaxRatioAction == QBittorrentMaxRatioAction.Remove || config.MaxRatioAction == QBittorrentMaxRatioAction.DeleteFiles);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void Test(List<ValidationFailure> failures)
|
|
|
|
|
{
|
|
|
|
|
failures.AddIfNotNull(TestConnection());
|
|
|
|
@ -448,7 +452,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|
|
|
|
|
|
|
|
|
// Complain if qBittorrent is configured to remove torrents on max ratio
|
|
|
|
|
var config = Proxy.GetConfig(Settings);
|
|
|
|
|
if ((config.MaxRatioEnabled || config.MaxSeedingTimeEnabled) && (config.MaxRatioAction == QBittorrentMaxRatioAction.Remove || config.MaxRatioAction == QBittorrentMaxRatioAction.DeleteFiles))
|
|
|
|
|
if (RemovesCompletedDownloads(config))
|
|
|
|
|
{
|
|
|
|
|
return new NzbDroneValidationFailure(string.Empty, _localizationService.GetLocalizedString("DownloadClientQbittorrentValidationRemovesAtRatioLimit"))
|
|
|
|
|
{
|
|
|
|
|