From 7a822bef5cbefe6eba16defbc8c8989003ec3645 Mon Sep 17 00:00:00 2001 From: Sam Heinz <54530346+asylumexp@users.noreply.github.com> Date: Mon, 17 Mar 2025 00:28:19 +1000 Subject: [PATCH] [TB] fix: extract folder move logic --- .../TorrentClients/TorBoxTorrentClient.cs | 18 +++++++++++++----- .../Services/TorrentRunner.cs | 1 - 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs b/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs index a432946..62aff18 100644 --- a/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs +++ b/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs @@ -362,24 +362,32 @@ public class TorBoxTorrentClient(ILogger logger, IHttpClien { var innerFolder = Directory.GetDirectories(hashDir)[0]; - if (!Path.GetFileName(innerFolder).Equals(_torrent.Hash, StringComparison.CurrentCultureIgnoreCase)) + var moveDir = extractPath; + if (!extractPath.Contains(_torrent.RdName!)) { - innerFolder = hashDir; + moveDir = hashDir; } foreach (var file in Directory.GetFiles(innerFolder)) { - var destFile = Path.Combine(extractPath, Path.GetFileName(file)); + var destFile = Path.Combine(moveDir, Path.GetFileName(file)); File.Move(file, destFile); } foreach (var dir in Directory.GetDirectories(innerFolder)) { - var destDir = Path.Combine(extractPath, Path.GetFileName(dir)); + var destDir = Path.Combine(moveDir, Path.GetFileName(dir)); Directory.Move(dir, destDir); } - Directory.Delete(hashDir, true); + if (!extractPath.Contains(_torrent.RdName!)) + { + Directory.Delete(innerFolder, true); + } + else + { + Directory.Delete(hashDir, true); + } } } diff --git a/server/RdtClient.Service/Services/TorrentRunner.cs b/server/RdtClient.Service/Services/TorrentRunner.cs index a5b8072..a7e7cb6 100644 --- a/server/RdtClient.Service/Services/TorrentRunner.cs +++ b/server/RdtClient.Service/Services/TorrentRunner.cs @@ -8,7 +8,6 @@ using RdtClient.Service.Services.Downloaders; using System.Collections.Concurrent; using System.Diagnostics; using System.Text.Json; -using System.Web; namespace RdtClient.Service.Services;