mirror of
https://github.com/fergalmoran/Readarr.git
synced 2025-12-31 05:48:18 +00:00
New: Removing Flood downloads when seeding criteria have been met
This commit is contained in:
@@ -17,8 +17,10 @@ namespace NzbDrone.Core.Download.Clients.Flood
|
||||
public class Flood : TorrentClientBase<FloodSettings>
|
||||
{
|
||||
private readonly IFloodProxy _proxy;
|
||||
private readonly IDownloadSeedConfigProvider _downloadSeedConfigProvider;
|
||||
|
||||
public Flood(IFloodProxy proxy,
|
||||
IDownloadSeedConfigProvider downloadSeedConfigProvider,
|
||||
ITorrentFileInfoReader torrentFileInfoReader,
|
||||
IHttpClient httpClient,
|
||||
IConfigService configService,
|
||||
@@ -28,6 +30,7 @@ namespace NzbDrone.Core.Download.Clients.Flood
|
||||
: base(torrentFileInfoReader, httpClient, configService, diskProvider, remotePathMappingService, logger)
|
||||
{
|
||||
_proxy = proxy;
|
||||
_downloadSeedConfigProvider = downloadSeedConfigProvider;
|
||||
}
|
||||
|
||||
private static IEnumerable<string> HandleTags(RemoteBook remoteBook, FloodSettings settings)
|
||||
@@ -70,7 +73,7 @@ namespace NzbDrone.Core.Download.Clients.Flood
|
||||
}
|
||||
|
||||
public override string Name => "Flood";
|
||||
public override ProviderMessage Message => new ProviderMessage("Readarr is unable to remove torrents that have finished seeding when using Flood", ProviderMessageType.Warning);
|
||||
public override ProviderMessage Message => new ProviderMessage("Readarr will handle automatic removal of torrents based on the current seed criteria in Settings -> Indexers", ProviderMessageType.Info);
|
||||
|
||||
protected override string AddFromTorrentFile(RemoteBook remoteBook, string hash, string filename, byte[] fileContent)
|
||||
{
|
||||
@@ -112,6 +115,8 @@ namespace NzbDrone.Core.Download.Clients.Flood
|
||||
TotalSize = properties.SizeBytes,
|
||||
SeedRatio = properties.Ratio,
|
||||
Message = properties.Message,
|
||||
CanMoveFiles = false,
|
||||
CanBeRemoved = false,
|
||||
};
|
||||
|
||||
if (properties.Eta > 0)
|
||||
@@ -136,7 +141,28 @@ namespace NzbDrone.Core.Download.Clients.Flood
|
||||
item.Status = DownloadItemStatus.Paused;
|
||||
}
|
||||
|
||||
item.CanMoveFiles = item.CanBeRemoved = false;
|
||||
if (item.Status == DownloadItemStatus.Completed)
|
||||
{
|
||||
// Grab cached seedConfig
|
||||
var seedConfig = _downloadSeedConfigProvider.GetSeedConfiguration(item.DownloadId);
|
||||
|
||||
if (seedConfig != null)
|
||||
{
|
||||
if (item.SeedRatio >= seedConfig.Ratio)
|
||||
{
|
||||
// Check if seed ratio reached
|
||||
item.CanMoveFiles = item.CanBeRemoved = true;
|
||||
}
|
||||
else if (properties.DateFinished != null && properties.DateFinished > 0)
|
||||
{
|
||||
// Check if seed time reached
|
||||
if ((DateTimeOffset.Now - DateTimeOffset.FromUnixTimeSeconds(properties.DateFinished)) >= seedConfig.SeedTime)
|
||||
{
|
||||
item.CanMoveFiles = item.CanBeRemoved = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
items.Add(item);
|
||||
}
|
||||
|
||||
@@ -31,5 +31,9 @@ namespace NzbDrone.Core.Download.Clients.Flood.Types
|
||||
|
||||
[JsonProperty(PropertyName = "tags")]
|
||||
public List<string> Tags { get; set; }
|
||||
|
||||
// added in Flood 4.5
|
||||
[JsonProperty(PropertyName = "dateFinished")]
|
||||
public long? DateFinished { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user