Cleanup, make sure the RD API adheres to the set timeout when trying to add a magnet or file.
This commit is contained in:
parent
1fe407ba5a
commit
d9858409db
12 changed files with 46 additions and 42 deletions
|
|
@ -8,15 +8,15 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.5">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.7">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Serilog" Version="4.2.0" />
|
||||
<PackageReference Include="Serilog" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -15,13 +15,13 @@
|
|||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="Moq" Version="4.20.72" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions" Version="22.0.14" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions.TestingHelpers" Version="22.0.14" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions.Wrappers" Version="22.0.14" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions" Version="22.0.15" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions.TestingHelpers" Version="22.0.15" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions.Wrappers" Version="22.0.15" />
|
||||
<PackageReference Include="xunit" Version="2.9.3" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.0">
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class EnricherTest : IDisposable
|
|||
|
||||
public EnricherTest()
|
||||
{
|
||||
_mockRepository = new MockRepository(MockBehavior.Strict);
|
||||
_mockRepository = new(MockBehavior.Strict);
|
||||
_loggerMock = _mockRepository.Create<ILogger<Enricher>>(MockBehavior.Loose);
|
||||
_trackerListGrabberMock = _mockRepository.Create<ITrackerListGrabber>();
|
||||
}
|
||||
|
|
@ -67,7 +67,7 @@ public class EnricherTest : IDisposable
|
|||
|
||||
private static BEncodedDictionary CreateTorrentDictWithOnlyAnnounce(String announceUrl)
|
||||
{
|
||||
return new BEncodedDictionary
|
||||
return new()
|
||||
{
|
||||
["announce"] = new BEncodedString(announceUrl),
|
||||
["info"] = new BEncodedDictionary()
|
||||
|
|
@ -76,7 +76,7 @@ public class EnricherTest : IDisposable
|
|||
|
||||
private static BEncodedDictionary CreateTorrentDictWithNoTrackers()
|
||||
{
|
||||
return new BEncodedDictionary
|
||||
return new()
|
||||
{
|
||||
["info"] = new BEncodedDictionary()
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@ public class WebsocketsUpdater(ILogger<WebsocketsUpdater> logger, IServiceProvid
|
|||
await Task.Delay(1000, stoppingToken);
|
||||
}
|
||||
|
||||
var remoteService = serviceProvider.GetRequiredService<RemoteService>();
|
||||
var scope = serviceProvider.CreateScope();
|
||||
|
||||
var remoteService = scope.ServiceProvider.GetRequiredService<RemoteService>();
|
||||
|
||||
while (!stoppingToken.IsCancellationRequested)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,20 +12,20 @@
|
|||
<PackageReference Include="AllDebrid.NET" Version="1.0.18" />
|
||||
<PackageReference Include="Aria2.NET" Version="1.0.6" />
|
||||
<PackageReference Include="DebridLinkFr.NET" Version="1.0.4" />
|
||||
<PackageReference Include="Downloader" Version="3.3.4" />
|
||||
<PackageReference Include="Downloader.NET" Version="1.0.16" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="9.5.0" />
|
||||
<PackageReference Include="Downloader" Version="4.0.2" />
|
||||
<PackageReference Include="Downloader.NET" Version="1.0.18" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="9.7.0" />
|
||||
<PackageReference Include="MonoTorrent" Version="3.0.2" />
|
||||
<PackageReference Include="Polly" Version="8.5.2" />
|
||||
<PackageReference Include="Polly" Version="8.6.2" />
|
||||
<PackageReference Include="Premiumize.NET" Version="1.0.10" />
|
||||
<PackageReference Include="RD.NET" Version="2.1.11" />
|
||||
<PackageReference Include="Serilog" Version="4.2.0" />
|
||||
<PackageReference Include="Serilog" Version="4.3.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
|
||||
<PackageReference Include="SharpCompress" Version="0.39.0" />
|
||||
<PackageReference Include="SharpCompress" Version="0.40.0" />
|
||||
<PackageReference Include="Synology.Api.Client" Version="0.3.93" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions" Version="22.0.14" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions.Wrappers" Version="22.0.14" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions" Version="22.0.15" />
|
||||
<PackageReference Include="TestableIO.System.IO.Abstractions.Wrappers" Version="22.0.15" />
|
||||
<PackageReference Include="TorBox.NET" Version="1.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public class BezzadDownloader : IDownloader
|
|||
// For all options, see https://github.com/bezzad/Downloader
|
||||
_downloadConfiguration = new()
|
||||
{
|
||||
MaxTryAgainOnFailover = 5,
|
||||
MaxTryAgainOnFailure = 5,
|
||||
RangeDownload = false,
|
||||
ClearPackageOnCompletionWithFailure = true,
|
||||
ReserveStorageSpaceBeforeStartingDownload = false,
|
||||
|
|
|
|||
|
|
@ -76,14 +76,14 @@ public sealed class Enricher(ILogger<Enricher> logger, ITrackerListGrabber track
|
|||
|
||||
if (!paramDict.ContainsKey(key))
|
||||
{
|
||||
paramDict[key] = new List<String>();
|
||||
paramDict[key] = [];
|
||||
}
|
||||
|
||||
paramDict[key].AddRange(queryKVs.GetValues(key) ?? []);
|
||||
}
|
||||
|
||||
var existingTrackers = paramDict.TryGetValue("tr", out var value)
|
||||
? new HashSet<String>(value, StringComparer.OrdinalIgnoreCase)
|
||||
? new(value, StringComparer.OrdinalIgnoreCase)
|
||||
: new HashSet<String>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
paramDict.Remove("tr");
|
||||
|
|
|
|||
|
|
@ -128,14 +128,18 @@ public class RealDebridTorrentClient(ILogger<RealDebridTorrentClient> logger, IH
|
|||
|
||||
public async Task<String> AddMagnet(String magnetLink)
|
||||
{
|
||||
var result = await GetClient().Torrents.AddMagnetAsync(magnetLink);
|
||||
var timeoutCancellationToken = new CancellationTokenSource(TimeSpan.FromSeconds(Settings.Get.Provider.Timeout));
|
||||
|
||||
var result = await GetClient().Torrents.AddMagnetAsync(magnetLink, timeoutCancellationToken.Token);
|
||||
|
||||
return result.Id;
|
||||
}
|
||||
|
||||
public async Task<String> AddFile(Byte[] bytes)
|
||||
{
|
||||
var result = await GetClient().Torrents.AddFileAsync(bytes);
|
||||
var timeoutCancellationToken = new CancellationTokenSource(TimeSpan.FromSeconds(Settings.Get.Provider.Timeout));
|
||||
|
||||
var result = await GetClient().Torrents.AddFileAsync(bytes, timeoutCancellationToken.Token);
|
||||
|
||||
return result.Id;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,16 +217,16 @@ public class TorrentRunner(ILogger<TorrentRunner> logger, Torrents torrents, Dow
|
|||
Log($"Unpack reported an error: {unpackClient.Error}", download, download.Torrent);
|
||||
|
||||
await downloads.UpdateError(downloadId, unpackClient.Error);
|
||||
await downloads.UpdateCompleted(downloadId, DateTimeOffset.UtcNow);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log($"Unpack finished successfully", download, download.Torrent);
|
||||
|
||||
await downloads.UpdateUnpackingFinished(downloadId, DateTimeOffset.UtcNow);
|
||||
await downloads.UpdateCompleted(downloadId, DateTimeOffset.UtcNow);
|
||||
}
|
||||
|
||||
await downloads.UpdateCompleted(downloadId, DateTimeOffset.UtcNow);
|
||||
|
||||
ActiveUnpackClients.TryRemove(downloadId, out _);
|
||||
|
||||
Log($"Removed from ActiveUnpackClients", download, download.Torrent);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ using System.IO.Abstractions;
|
|||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Web;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using MonoTorrent;
|
||||
using RdtClient.Data.Data;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
using System.Net.Http.Headers;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System.Reflection;
|
||||
|
|
@ -96,7 +95,7 @@ public class TrackerListGrabber(IHttpClientFactory httpClientFactory, IMemoryCac
|
|||
{
|
||||
logger.LogError(ex, "Unable to fetch tracker list.");
|
||||
|
||||
throw new Exception("Unable to fetch tracker list for enrichment.", ex);
|
||||
throw new("Unable to fetch tracker list for enrichment.", ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
@ -116,7 +115,7 @@ public class TrackerListGrabber(IHttpClientFactory httpClientFactory, IMemoryCac
|
|||
? $"v{version[..version.LastIndexOf('.')]}"
|
||||
: "";
|
||||
|
||||
httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("RdtClient", currentVersion));
|
||||
httpClient.DefaultRequestHeaders.UserAgent.Add(new("RdtClient", currentVersion));
|
||||
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(15));
|
||||
var token = cts.Token;
|
||||
var response = await httpClient.GetAsync(trackerUri, HttpCompletionOption.ResponseHeadersRead, token).ConfigureAwait(false);
|
||||
|
|
|
|||
|
|
@ -30,16 +30,16 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.5">
|
||||
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.7">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.5" />
|
||||
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="9.0.5" />
|
||||
<PackageReference Include="Serilog" Version="4.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="9.0.7" />
|
||||
<PackageReference Include="Serilog" Version="4.3.0" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
Loading…
Reference in a new issue