diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 6a0df2dab2..503049da14 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -126,33 +126,19 @@ 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); + 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().EncodeBase64(), - ToBePaused(), - ToBeQueuedFirst(remoteMovie), - GetSeedRatio(remoteMovie), - Settings); + 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(); @@ -186,22 +172,32 @@ protected override void Test(List failures) } } - private string GetDownloadDirectory() + private string GetDownloadDirectory(RemoteMovie remoteMovie = null) { + string destDir; + if (Settings.DestinationDirectory.IsNotNullOrWhiteSpace()) { - return Settings.DestinationDirectory.TrimEnd('/'); + destDir = Settings.DestinationDirectory.TrimEnd('/'); + } + else + { + destDir = _proxy.GetDownloadConfiguration(Settings).DecodedDownloadDirectory.TrimEnd('/'); } - - var destDir = _proxy.GetDownloadConfiguration(Settings).DecodedDownloadDirectory.TrimEnd('/'); if (Settings.Category.IsNotNullOrWhiteSpace()) { destDir = $"{destDir}/{Settings.Category}"; } - return destDir; - } + if (remoteMovie?.Release?.Title.IsNotNullOrWhiteSpace() ?? false) + { + var folderName = FileNameExtensions.CleanFileName(remoteMovie.Release.Title); + destDir = $"{destDir}/{folderName}"; + } + + return destDir; + } private bool ToBePaused() {