using System.Collections.Concurrent; using System.Text.RegularExpressions; using Common.Configuration.ContentBlocker; namespace Infrastructure.Verticals.DownloadClient; public interface IDownloadService : IDisposable { public Task LoginAsync(); /// /// Checks whether the download should be removed from the *arr queue. /// /// The download hash. public Task ShouldRemoveFromArrQueueAsync(string hash); /// /// Blocks unwanted files from being fully downloaded. /// /// The torrent hash. /// The . /// The patterns to test the files against. /// The regexes to test the files against. /// True if all files have been blocked; otherwise false. public Task BlockUnwantedFilesAsync( string hash, BlocklistType blocklistType, ConcurrentBag patterns, ConcurrentBag regexes ); /// /// Deletes a download item. /// public Task Delete(string hash); }