Upgrade to MonoTorrent 3.

Catch infringed files from Real-Debrid and return a Failed. on qBittorrent.
This commit is contained in:
Roger Far 2024-07-28 21:21:09 -06:00
parent 258a4ae34b
commit a356632d50
6 changed files with 28 additions and 13 deletions

View file

@ -16,7 +16,7 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Serilog" Version="4.0.0" /> <PackageReference Include="Serilog" Version="4.0.1" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -15,11 +15,11 @@
<PackageReference Include="Downloader.NET" Version="1.0.12" /> <PackageReference Include="Downloader.NET" Version="1.0.12" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="8.0.7" /> <PackageReference Include="Microsoft.Extensions.Http.Polly" Version="8.0.7" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="8.7.0" /> <PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="8.7.0" />
<PackageReference Include="MonoTorrent" Version="2.0.7" /> <PackageReference Include="MonoTorrent" Version="3.0.0" />
<PackageReference Include="Polly" Version="8.4.1" /> <PackageReference Include="Polly" Version="8.4.1" />
<PackageReference Include="Premiumize.NET" Version="1.0.4" /> <PackageReference Include="Premiumize.NET" Version="1.0.4" />
<PackageReference Include="RD.NET" Version="2.1.4" /> <PackageReference Include="RD.NET" Version="2.1.5" />
<PackageReference Include="Serilog" Version="4.0.0" /> <PackageReference Include="Serilog" Version="4.0.1" />
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageReference Include="SharpCompress" Version="0.37.2" /> <PackageReference Include="SharpCompress" Version="0.37.2" />
</ItemGroup> </ItemGroup>

View file

@ -115,7 +115,7 @@ public class Torrents(
var id = await TorrentClient.AddMagnet(magnetLink); 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); var newTorrent = await Add(id, hash, magnetLink, false, torrent);
@ -130,7 +130,7 @@ public class Torrents(
Directory.CreateDirectory(Settings.Get.General.CopyAddedTorrents); 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)) if (File.Exists(copyFileName))
{ {
@ -166,7 +166,7 @@ public class Torrents(
var id = await TorrentClient.AddFile(bytes); 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); var newTorrent = await Add(id, hash, fileAsBase64, true, torrent);

View file

@ -123,7 +123,7 @@ public class QBittorrentController(ILogger<QBittorrentController> logger, QBitto
[HttpPost] [HttpPost]
public ActionResult<AppPreferences> AppDefaultSavePath() public ActionResult<AppPreferences> AppDefaultSavePath()
{ {
var result = Settings.AppDefaultSavePath; var result = Service.Services.Settings.AppDefaultSavePath;
return Ok(result); return Ok(result);
} }
@ -316,6 +316,7 @@ public class QBittorrentController(ILogger<QBittorrentController> logger, QBitto
foreach (var url in urls) foreach (var url in urls)
{ {
try{
if (url.StartsWith("magnet")) if (url.StartsWith("magnet"))
{ {
await qBittorrent.TorrentsAddMagnet(url.Trim(), request.Category, null); await qBittorrent.TorrentsAddMagnet(url.Trim(), request.Category, null);
@ -330,6 +331,15 @@ public class QBittorrentController(ILogger<QBittorrentController> logger, QBitto
{ {
return BadRequest($"Invalid torrent link format {url}"); return BadRequest($"Invalid torrent link format {url}");
} }
}
catch (RDNET.RealDebridException ex)
{
// Infringing file.
if (ex.ErrorCode == 35)
{
return Ok("Fails.");
}
}
} }
return Ok(); return Ok();

View file

@ -134,7 +134,7 @@ public class TorrentsController(ILogger<TorrentsController> logger, Torrents tor
var torrent = await MonoTorrent.Torrent.LoadAsync(bytes); 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); return Ok(result);
} }
@ -148,9 +148,14 @@ public class TorrentsController(ILogger<TorrentsController> logger, Torrents tor
return BadRequest(); return BadRequest();
} }
if (String.IsNullOrEmpty(request.MagnetLink))
{
return BadRequest("MagnetLink cannot be null or empty");
}
var magnet = MagnetLink.Parse(request.MagnetLink); 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); return Ok(result);
} }
@ -226,7 +231,7 @@ public class TorrentsController(ILogger<TorrentsController> logger, Torrents tor
{ {
var magnet = MagnetLink.Parse(request.MagnetLink); 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) else if (file != null)
{ {
@ -240,7 +245,7 @@ public class TorrentsController(ILogger<TorrentsController> logger, Torrents tor
var torrent = await MonoTorrent.Torrent.LoadAsync(bytes); var torrent = await MonoTorrent.Torrent.LoadAsync(bytes);
availableFiles = await torrents.GetAvailableFiles(torrent.InfoHash.ToHex()); availableFiles = await torrents.GetAvailableFiles(torrent.InfoHashes.V1OrV2.ToHex());
} }
else else
{ {

View file

@ -38,7 +38,7 @@
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="8.0.7" /> <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="8.0.7" />
<PackageReference Include="Serilog" Version="4.0.0" /> <PackageReference Include="Serilog" Version="4.0.1" />
<PackageReference Include="Serilog.AspNetCore" Version="8.0.1" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.1" />
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
</ItemGroup> </ItemGroup>