diff --git a/server/RdtClient.Data/RdtClient.Data.csproj b/server/RdtClient.Data/RdtClient.Data.csproj index ca714f0..50558bb 100644 --- a/server/RdtClient.Data/RdtClient.Data.csproj +++ b/server/RdtClient.Data/RdtClient.Data.csproj @@ -16,7 +16,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/server/RdtClient.Service/RdtClient.Service.csproj b/server/RdtClient.Service/RdtClient.Service.csproj index c736d2e..f01e9d6 100644 --- a/server/RdtClient.Service/RdtClient.Service.csproj +++ b/server/RdtClient.Service/RdtClient.Service.csproj @@ -15,11 +15,11 @@ - + - - + + diff --git a/server/RdtClient.Service/Services/Torrents.cs b/server/RdtClient.Service/Services/Torrents.cs index cc39252..d1ff70d 100644 --- a/server/RdtClient.Service/Services/Torrents.cs +++ b/server/RdtClient.Service/Services/Torrents.cs @@ -115,7 +115,7 @@ public class Torrents( var id = await TorrentClient.AddMagnet(magnetLink); - var hash = magnet.InfoHash.ToHex(); + var hash = magnet.InfoHashes.V1OrV2.ToHex(); var newTorrent = await Add(id, hash, magnetLink, false, torrent); @@ -130,7 +130,7 @@ public class Torrents( Directory.CreateDirectory(Settings.Get.General.CopyAddedTorrents); } - var copyFileName = Path.Combine(Settings.Get.General.CopyAddedTorrents, $"{FileHelper.RemoveInvalidFileNameChars(magnet.Name)}.magnet"); + var copyFileName = Path.Combine(Settings.Get.General.CopyAddedTorrents, $"{FileHelper.RemoveInvalidFileNameChars(magnet.Name!)}.magnet"); if (File.Exists(copyFileName)) { @@ -166,7 +166,7 @@ public class Torrents( var id = await TorrentClient.AddFile(bytes); - var hash = monoTorrent.InfoHash.ToHex(); + var hash = monoTorrent.InfoHashes.V1OrV2.ToHex(); var newTorrent = await Add(id, hash, fileAsBase64, true, torrent); diff --git a/server/RdtClient.Web/Controllers/QBittorrentController.cs b/server/RdtClient.Web/Controllers/QBittorrentController.cs index d0c57cb..e80cfed 100644 --- a/server/RdtClient.Web/Controllers/QBittorrentController.cs +++ b/server/RdtClient.Web/Controllers/QBittorrentController.cs @@ -123,7 +123,7 @@ public class QBittorrentController(ILogger logger, QBitto [HttpPost] public ActionResult AppDefaultSavePath() { - var result = Settings.AppDefaultSavePath; + var result = Service.Services.Settings.AppDefaultSavePath; return Ok(result); } @@ -316,6 +316,7 @@ public class QBittorrentController(ILogger logger, QBitto foreach (var url in urls) { + try{ if (url.StartsWith("magnet")) { await qBittorrent.TorrentsAddMagnet(url.Trim(), request.Category, null); @@ -330,6 +331,15 @@ public class QBittorrentController(ILogger logger, QBitto { return BadRequest($"Invalid torrent link format {url}"); } + } + catch (RDNET.RealDebridException ex) + { + // Infringing file. + if (ex.ErrorCode == 35) + { + return Ok("Fails."); + } + } } return Ok(); diff --git a/server/RdtClient.Web/Controllers/TorrentsController.cs b/server/RdtClient.Web/Controllers/TorrentsController.cs index 634e9e2..69536b5 100644 --- a/server/RdtClient.Web/Controllers/TorrentsController.cs +++ b/server/RdtClient.Web/Controllers/TorrentsController.cs @@ -134,7 +134,7 @@ public class TorrentsController(ILogger logger, Torrents tor var torrent = await MonoTorrent.Torrent.LoadAsync(bytes); - var result = await torrents.GetAvailableFiles(torrent.InfoHash.ToHex()); + var result = await torrents.GetAvailableFiles(torrent.InfoHashes.V1OrV2.ToHex()); return Ok(result); } @@ -148,9 +148,14 @@ public class TorrentsController(ILogger logger, Torrents tor return BadRequest(); } + if (String.IsNullOrEmpty(request.MagnetLink)) + { + return BadRequest("MagnetLink cannot be null or empty"); + } + var magnet = MagnetLink.Parse(request.MagnetLink); - var result = await torrents.GetAvailableFiles(magnet.InfoHash.ToHex()); + var result = await torrents.GetAvailableFiles(magnet.InfoHashes.V1OrV2.ToHex()); return Ok(result); } @@ -226,7 +231,7 @@ public class TorrentsController(ILogger logger, Torrents tor { var magnet = MagnetLink.Parse(request.MagnetLink); - availableFiles = await torrents.GetAvailableFiles(magnet.InfoHash.ToHex()); + availableFiles = await torrents.GetAvailableFiles(magnet.InfoHashes.V1OrV2.ToHex()); } else if (file != null) { @@ -240,7 +245,7 @@ public class TorrentsController(ILogger logger, Torrents tor var torrent = await MonoTorrent.Torrent.LoadAsync(bytes); - availableFiles = await torrents.GetAvailableFiles(torrent.InfoHash.ToHex()); + availableFiles = await torrents.GetAvailableFiles(torrent.InfoHashes.V1OrV2.ToHex()); } else { diff --git a/server/RdtClient.Web/RdtClient.Web.csproj b/server/RdtClient.Web/RdtClient.Web.csproj index a7bb243..792a0da 100644 --- a/server/RdtClient.Web/RdtClient.Web.csproj +++ b/server/RdtClient.Web/RdtClient.Web.csproj @@ -38,7 +38,7 @@ - +