From 231299c8837a6f21f24aa8598cfd936c6bdd2199 Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 12:19:18 +0200 Subject: [PATCH 01/10] Update TorrentFreeboxDownload.cs Proposed fix for issue 9938. A folder is created for each downloaded movie. Radarr can now correctly map the movie to transfer it to the folder. --- .../FreeboxDownload/TorrentFreeboxDownload.cs | 77 +++++++++++-------- 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 6a0df2dab2..e8fe54bea0 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -127,27 +127,25 @@ public override IEnumerable GetItems() return queueItems; } - protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) - { - return _proxy.AddTaskFromUrl(magnetLink, - GetDownloadDirectory().EncodeBase64(), - ToBePaused(), - ToBeQueuedFirst(remoteMovie), - GetSeedRatio(remoteMovie), - Settings); - } - - protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) - { - return _proxy.AddTaskFromFile(filename, - fileContent, - GetDownloadDirectory().EncodeBase64(), - ToBePaused(), - ToBeQueuedFirst(remoteMovie), - GetSeedRatio(remoteMovie), - Settings); - } - + protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) + { + return _proxy.AddTaskFromUrl(magnetLink, + GetDownloadDirectory(remoteMovie).EncodeBase64(), + ToBePaused(), + ToBeQueuedFirst(remoteMovie), + GetSeedRatio(remoteMovie), + Settings); + } + protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) + { + return _proxy.AddTaskFromFile(filename, + fileContent, + GetDownloadDirectory(remoteMovie).EncodeBase64(), + ToBePaused(), + ToBeQueuedFirst(remoteMovie), + GetSeedRatio(remoteMovie), + Settings); + } public override void RemoveItem(DownloadClientItem item, bool deleteData) { _proxy.DeleteTask(item.DownloadId, deleteData, Settings); @@ -186,22 +184,33 @@ protected override void Test(List failures) } } - private string GetDownloadDirectory() - { - if (Settings.DestinationDirectory.IsNotNullOrWhiteSpace()) - { - return Settings.DestinationDirectory.TrimEnd('/'); - } + private string GetDownloadDirectory(RemoteMovie remoteMovie = null) + { + string destDir; - var destDir = _proxy.GetDownloadConfiguration(Settings).DecodedDownloadDirectory.TrimEnd('/'); + if (Settings.DestinationDirectory.IsNotNullOrWhiteSpace()) + { + destDir = Settings.DestinationDirectory.TrimEnd('/'); + } + else + { + destDir = _proxy.GetDownloadConfiguration(Settings).DecodedDownloadDirectory.TrimEnd('/'); + } - if (Settings.Category.IsNotNullOrWhiteSpace()) - { - destDir = $"{destDir}/{Settings.Category}"; - } + if (Settings.Category.IsNotNullOrWhiteSpace()) + { + destDir = $"{destDir}/{Settings.Category}"; + } - return destDir; - } + // Ajout du sous-dossier spécifique au film si un film est fourni + if (remoteMovie != null) + { + var folderName = remoteMovie.Release.Title.Replace("/", "-").Replace("\\", "-"); + destDir = $"{destDir}/{folderName}"; + } + + return destDir; + } private bool ToBePaused() { From 6d5342051c3f6225356d475e17dc15790bcaf3be Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 12:31:15 +0200 Subject: [PATCH 02/10] Update TorrentFreeboxDownload.cs --- .../Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index e8fe54bea0..37f40002e1 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -202,7 +202,6 @@ private string GetDownloadDirectory(RemoteMovie remoteMovie = null) destDir = $"{destDir}/{Settings.Category}"; } - // Ajout du sous-dossier spécifique au film si un film est fourni if (remoteMovie != null) { var folderName = remoteMovie.Release.Title.Replace("/", "-").Replace("\\", "-"); From d300760a4cc6346d813a36b7c057f29f441852ae Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 14:25:31 +0200 Subject: [PATCH 03/10] Update TorrentFreeboxDownload.cs - Tabs removal (or trying) - Modif if remotemovie is not null --- .../FreeboxDownload/TorrentFreeboxDownload.cs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 37f40002e1..e7d9202812 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -130,21 +130,21 @@ public override IEnumerable GetItems() protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) { return _proxy.AddTaskFromUrl(magnetLink, - GetDownloadDirectory(remoteMovie).EncodeBase64(), - ToBePaused(), - ToBeQueuedFirst(remoteMovie), - GetSeedRatio(remoteMovie), - Settings); + GetDownloadDirectory(remoteMovie).EncodeBase64(), + ToBePaused(), + ToBeQueuedFirst(remoteMovie), + GetSeedRatio(remoteMovie), + Settings); } protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) { return _proxy.AddTaskFromFile(filename, - fileContent, - GetDownloadDirectory(remoteMovie).EncodeBase64(), - ToBePaused(), - ToBeQueuedFirst(remoteMovie), - GetSeedRatio(remoteMovie), - Settings); + fileContent, + GetDownloadDirectory(remoteMovie).EncodeBase64(), + ToBePaused(), + ToBeQueuedFirst(remoteMovie), + GetSeedRatio(remoteMovie), + Settings); } public override void RemoveItem(DownloadClientItem item, bool deleteData) { @@ -204,7 +204,7 @@ private string GetDownloadDirectory(RemoteMovie remoteMovie = null) if (remoteMovie != null) { - var folderName = remoteMovie.Release.Title.Replace("/", "-").Replace("\\", "-"); + var folderName = FileNameExtensions.CleanFileName(remoteMovie.Release.Title); destDir = $"{destDir}/{folderName}"; } From 71dc83f8a25649066be14392fad6ed173810ac96 Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 14:46:05 +0200 Subject: [PATCH 04/10] Update TorrentFreeboxDownload.cs - I hope really without tabs ! --- .../FreeboxDownload/TorrentFreeboxDownload.cs | 73 ++++++++----------- 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index e7d9202812..32d65406a1 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -127,30 +127,19 @@ public override IEnumerable GetItems() return queueItems; } - protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) - { - return _proxy.AddTaskFromUrl(magnetLink, - GetDownloadDirectory(remoteMovie).EncodeBase64(), - ToBePaused(), - ToBeQueuedFirst(remoteMovie), - GetSeedRatio(remoteMovie), - Settings); - } - protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) - { - return _proxy.AddTaskFromFile(filename, - fileContent, - GetDownloadDirectory(remoteMovie).EncodeBase64(), - ToBePaused(), - ToBeQueuedFirst(remoteMovie), - GetSeedRatio(remoteMovie), - Settings); - } + protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) + { + return _proxy.AddTaskFromUrl(magnetLink, GetDownloadDirectory(remoteMovie).EncodeBase64(), ToBePaused(), ToBeQueuedFirst(remoteMovie), GetSeedRatio(remoteMovie), Settings); + } + protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) + { + return _proxy.AddTaskFromFile(filename, fileContent, GetDownloadDirectory(remoteMovie).EncodeBase64(), ToBePaused(), ToBeQueuedFirst(remoteMovie), GetSeedRatio(remoteMovie), Settings); + } public override void RemoveItem(DownloadClientItem item, bool deleteData) { _proxy.DeleteTask(item.DownloadId, deleteData, Settings); } - + public override DownloadClientInfo GetStatus() { var destDir = GetDownloadDirectory(); @@ -184,32 +173,32 @@ protected override void Test(List failures) } } - private string GetDownloadDirectory(RemoteMovie remoteMovie = null) - { - string destDir; + private string GetDownloadDirectory(RemoteMovie remoteMovie = null) + { + string destDir; - if (Settings.DestinationDirectory.IsNotNullOrWhiteSpace()) - { - destDir = Settings.DestinationDirectory.TrimEnd('/'); - } - else - { - destDir = _proxy.GetDownloadConfiguration(Settings).DecodedDownloadDirectory.TrimEnd('/'); - } + if (Settings.DestinationDirectory.IsNotNullOrWhiteSpace()) + { + destDir = Settings.DestinationDirectory.TrimEnd('/'); + } + else + { + destDir = _proxy.GetDownloadConfiguration(Settings).DecodedDownloadDirectory.TrimEnd('/'); + } - if (Settings.Category.IsNotNullOrWhiteSpace()) - { - destDir = $"{destDir}/{Settings.Category}"; - } + if (Settings.Category.IsNotNullOrWhiteSpace()) + { + destDir = $"{destDir}/{Settings.Category}"; + } - if (remoteMovie != null) - { - var folderName = FileNameExtensions.CleanFileName(remoteMovie.Release.Title); - destDir = $"{destDir}/{folderName}"; - } + if (remoteMovie != null) + { + var folderName = FileNameExtensions.CleanFileName(remoteMovie.Release.Title); + destDir = $"{destDir}/{folderName}"; + } - return destDir; - } + return destDir; + } private bool ToBePaused() { From 658cb30ebcb75e9b8e6d53885df27a29a2ff7a95 Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 15:16:48 +0200 Subject: [PATCH 05/10] Update TorrentFreeboxDownload.cs --- .../Clients/FreeboxDownload/TorrentFreeboxDownload.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 32d65406a1..13e0d4334a 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -126,15 +126,17 @@ public override IEnumerable GetItems() return queueItems; } - + protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) { return _proxy.AddTaskFromUrl(magnetLink, GetDownloadDirectory(remoteMovie).EncodeBase64(), ToBePaused(), ToBeQueuedFirst(remoteMovie), GetSeedRatio(remoteMovie), Settings); } + protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) { return _proxy.AddTaskFromFile(filename, fileContent, GetDownloadDirectory(remoteMovie).EncodeBase64(), ToBePaused(), ToBeQueuedFirst(remoteMovie), GetSeedRatio(remoteMovie), Settings); } + public override void RemoveItem(DownloadClientItem item, bool deleteData) { _proxy.DeleteTask(item.DownloadId, deleteData, Settings); From a57430513577c61a8681f4187bf64c71d4cb7131 Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 16:07:56 +0200 Subject: [PATCH 06/10] Update src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs Co-authored-by: Bogdan --- .../Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 13e0d4334a..3131643794 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -193,7 +193,7 @@ private string GetDownloadDirectory(RemoteMovie remoteMovie = null) destDir = $"{destDir}/{Settings.Category}"; } - if (remoteMovie != null) + if (remoteMovie?.Release?.Title.IsNotNullOrWhiteSpace() ?? false) { var folderName = FileNameExtensions.CleanFileName(remoteMovie.Release.Title); destDir = $"{destDir}/{folderName}"; From 58e33c056d25aa9973d5eea64ee4c9c80a8a7d1d Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 16:08:14 +0200 Subject: [PATCH 07/10] Update src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs Co-authored-by: Bogdan --- .../Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 3131643794..e5ec93ca0c 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -190,7 +190,7 @@ private string GetDownloadDirectory(RemoteMovie remoteMovie = null) if (Settings.Category.IsNotNullOrWhiteSpace()) { - destDir = $"{destDir}/{Settings.Category}"; + destDir = $"{destDir}/{Settings.Category}"; } if (remoteMovie?.Release?.Title.IsNotNullOrWhiteSpace() ?? false) From e6f87bc96785fb54dbe66c33a6db24b5b3b86161 Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 16:08:25 +0200 Subject: [PATCH 08/10] Update src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs Co-authored-by: Bogdan --- .../Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index e5ec93ca0c..a68d656c27 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -141,7 +141,6 @@ public override void RemoveItem(DownloadClientItem item, bool deleteData) { _proxy.DeleteTask(item.DownloadId, deleteData, Settings); } - public override DownloadClientInfo GetStatus() { var destDir = GetDownloadDirectory(); From d8483db8f5b986441ccaa90384d1f05ebcf526f2 Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 16:08:37 +0200 Subject: [PATCH 09/10] Update src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs Co-authored-by: Bogdan --- .../Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index a68d656c27..21ccd06eca 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -131,7 +131,6 @@ protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash { return _proxy.AddTaskFromUrl(magnetLink, GetDownloadDirectory(remoteMovie).EncodeBase64(), ToBePaused(), ToBeQueuedFirst(remoteMovie), GetSeedRatio(remoteMovie), Settings); } - protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) { return _proxy.AddTaskFromFile(filename, fileContent, GetDownloadDirectory(remoteMovie).EncodeBase64(), ToBePaused(), ToBeQueuedFirst(remoteMovie), GetSeedRatio(remoteMovie), Settings); From 3af626a8569a85469720600f9a4970a115d646c6 Mon Sep 17 00:00:00 2001 From: Foireatout Date: Mon, 13 Apr 2026 16:08:46 +0200 Subject: [PATCH 10/10] Update src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs Co-authored-by: Bogdan --- .../Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 21ccd06eca..503049da14 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -126,7 +126,6 @@ public override IEnumerable GetItems() return queueItems; } - protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) { return _proxy.AddTaskFromUrl(magnetLink, GetDownloadDirectory(remoteMovie).EncodeBase64(), ToBePaused(), ToBeQueuedFirst(remoteMovie), GetSeedRatio(remoteMovie), Settings);