using Cleanuparr.Domain.Entities; using Cleanuparr.Persistence.Models.Configuration.DownloadCleaner; namespace Cleanuparr.Infrastructure.Features.DownloadClient; /// /// Download clients whose downloads seed, and so can be evaluated against seeding rules and moved on dead-torrent detection. /// Implemented by the torrent clients only; usenet downloads never seed. /// public interface ISeedingCleanupCapable : IDownloadService { /// /// Fetches all seeding downloads. /// /// A list of downloads that are seeding. Task> GetSeedingDownloads(); /// /// Filters downloads that should be cleaned. /// /// The downloads to filter. /// The seeding rules by which to filter the downloads. /// A list of downloads for the provided categories. List? FilterDownloadsToBeCleanedAsync(List? downloads, List seedingRules); /// /// Cleans the downloads. /// /// The downloads to clean. /// The seeding rules. Task CleanDownloadsAsync(List? downloads, List seedingRules); /// /// Stops a download, leaving it in the client. /// /// The download item. Task StopDownload(IDownloadItem item); }