From a6d382010434840bcf47eacd0b9211bed045f813 Mon Sep 17 00:00:00 2001 From: Marius Nechifor Date: Mon, 17 Feb 2025 02:48:27 +0200 Subject: [PATCH] Improve Transmission category detection (#62) --- .../Transmission/TransmissionService.cs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/code/Infrastructure/Verticals/DownloadClient/Transmission/TransmissionService.cs b/code/Infrastructure/Verticals/DownloadClient/Transmission/TransmissionService.cs index 660060d6..4479f384 100644 --- a/code/Infrastructure/Verticals/DownloadClient/Transmission/TransmissionService.cs +++ b/code/Infrastructure/Verticals/DownloadClient/Transmission/TransmissionService.cs @@ -203,7 +203,16 @@ public class TransmissionService : DownloadService, ITransmissionService ?.Where(x => !string.IsNullOrEmpty(x.HashString)) .Where(x => x.Status is 5 or 6) .Where(x => categories - .Any(cat => x.DownloadDir?.EndsWith(cat.Name, StringComparison.InvariantCultureIgnoreCase) is true) + .Any(cat => + { + if (x.DownloadDir is null) + { + return false; + } + + return Path.GetFileName(Path.TrimEndingDirectorySeparator(x.DownloadDir)) + .Equals(cat.Name, StringComparison.InvariantCultureIgnoreCase); + }) ) .Cast() .ToList(); @@ -220,8 +229,17 @@ public class TransmissionService : DownloadService, ITransmissionService } Category? category = categoriesToClean - .FirstOrDefault(x => download.DownloadDir?.EndsWith(x.Name, StringComparison.InvariantCultureIgnoreCase) is true); + .FirstOrDefault(x => + { + if (download.DownloadDir is null) + { + return false; + } + return Path.GetFileName(Path.TrimEndingDirectorySeparator(download.DownloadDir)) + .Equals(x.Name, StringComparison.InvariantCultureIgnoreCase); + }); + if (category is null) { continue;