fixed missing methods

This commit is contained in:
Flaminel
2025-02-27 21:41:07 +02:00
parent 1243da3d22
commit a994bc4526
5 changed files with 33 additions and 7 deletions
@@ -42,8 +42,9 @@ public class TestDownloadService : DownloadService
ConcurrentBag<string> patterns, ConcurrentBag<Regex> regexes) => Task.FromResult(new BlockFilesResult()); ConcurrentBag<string> patterns, ConcurrentBag<Regex> regexes) => Task.FromResult(new BlockFilesResult());
public override Task DeleteDownload(string hash) => Task.CompletedTask; public override Task DeleteDownload(string hash) => Task.CompletedTask;
public override Task CreateCategoryAsync(string name) => Task.CompletedTask; public override Task CreateCategoryAsync(string name) => Task.CompletedTask;
public override List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories) => Task.FromResult<List<object>?>(null); public override Task<List<object>?> GetSeedingDownloads() => Task.FromResult<List<object>?>(null);
public override List<object>? FilterDownloadsToChangeCategoryAsync(List<object>? downloads, List<string> categories) => Task.FromResult<List<object>?>(null); public override List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories) => null;
public override List<object>? FilterDownloadsToChangeCategoryAsync(List<object>? downloads, List<string> categories) => null;
public override Task CleanDownloadsAsync(List<object>? downloads, List<CleanCategory> categoriesToClean, HashSet<string> excludedHashes) => Task.CompletedTask; public override Task CleanDownloadsAsync(List<object>? downloads, List<CleanCategory> categoriesToClean, HashSet<string> excludedHashes) => Task.CompletedTask;
public override Task ChangeCategoryForNoHardLinksAsync(List<object>? downloads, HashSet<string> excludedHashes) => Task.CompletedTask; public override Task ChangeCategoryForNoHardLinksAsync(List<object>? downloads, HashSet<string> excludedHashes) => Task.CompletedTask;
@@ -89,6 +89,9 @@ public sealed class DownloadCleaner : GenericHandler
List<object>? downloadsToClean = _downloadService.FilterDownloadsToBeCleanedAsync(downloads, _config.Categories); List<object>? downloadsToClean = _downloadService.FilterDownloadsToBeCleanedAsync(downloads, _config.Categories);
// release unused objects
downloads = null;
_logger.LogTrace("looking for downloads clean"); _logger.LogTrace("looking for downloads clean");
await _downloadService.CleanDownloadsAsync(downloadsToClean, _config.Categories, _excludedHashes); await _downloadService.CleanDownloadsAsync(downloadsToClean, _config.Categories, _excludedHashes);
} }
@@ -196,11 +196,19 @@ public class DelugeService : DownloadService, IDelugeService
return result; return result;
} }
public override async List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories) public override async Task<List<object>?> GetSeedingDownloads()
{ {
return (await _client.GetStatusForAllTorrents()) return (await _client.GetStatusForAllTorrents())
?.Where(x => !string.IsNullOrEmpty(x.Hash)) ?.Where(x => !string.IsNullOrEmpty(x.Hash))
.Where(x => x.State?.Equals("seeding", StringComparison.InvariantCultureIgnoreCase) is true) .Where(x => x.State?.Equals("seeding", StringComparison.InvariantCultureIgnoreCase) is true)
.Cast<object>()
.ToList();
}
public override List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories)
{
return downloads
?.Cast<TorrentStatus>()
.Where(x => categories.Any(cat => cat.Name.Equals(x.Label, StringComparison.InvariantCultureIgnoreCase))) .Where(x => categories.Any(cat => cat.Name.Equals(x.Label, StringComparison.InvariantCultureIgnoreCase)))
.Cast<object>() .Cast<object>()
.ToList(); .ToList();
@@ -53,6 +53,11 @@ public class DummyDownloadService : DownloadService
throw new NotImplementedException(); throw new NotImplementedException();
} }
public override Task<List<object>?> GetSeedingDownloads()
{
throw new NotImplementedException();
}
public override List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories) public override List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
@@ -182,8 +182,7 @@ public class TransmissionService : DownloadService, ITransmissionService
return result; return result;
} }
/// <inheritdoc/> public override async Task<List<object>?> GetSeedingDownloads()
public override async List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories)
{ {
string[] fields = [ string[] fields = [
TorrentFields.FILES, TorrentFields.FILES,
@@ -204,6 +203,16 @@ public class TransmissionService : DownloadService, ITransmissionService
?.Torrents ?.Torrents
?.Where(x => !string.IsNullOrEmpty(x.HashString)) ?.Where(x => !string.IsNullOrEmpty(x.HashString))
.Where(x => x.Status is 5 or 6) .Where(x => x.Status is 5 or 6)
.Cast<object>()
.ToList();
}
/// <inheritdoc/>
public override List<object>? FilterDownloadsToBeCleanedAsync(List<object>? downloads, List<CleanCategory> categories)
{
return downloads
?
.Cast<TorrentInfo>()
.Where(x => categories .Where(x => categories
.Any(cat => .Any(cat =>
{ {