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);
}