Update to .NET 8.
Some checks failed
Docker Image CI / build (push) Has been cancelled

This commit is contained in:
Roger Versluis 2023-11-14 14:29:32 -07:00
parent ee0a631cd9
commit b8e45417b5
11 changed files with 43 additions and 41 deletions

View file

@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.0.41] - 2023-11-14
### Changed
- Upgraded to .NET8 to see if downloader perf improves.
## [2.0.40] - 2023-10-03 ## [2.0.40] - 2023-10-03
### Changed ### Changed
- Symlink downloader fixes. - Symlink downloader fixes.

View file

@ -21,7 +21,7 @@ RUN \
RUN ls -FCla /appclient/root RUN ls -FCla /appclient/root
# Stage 2 - Build the backend # Stage 2 - Build the backend
FROM mcr.microsoft.com/dotnet/sdk:6.0-bullseye-slim-amd64 AS dotnet-build-env FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim-amd64 AS dotnet-build-env
ARG TARGETPLATFORM ARG TARGETPLATFORM
ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64} ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64}
ARG BUILDPLATFORM ARG BUILDPLATFORM
@ -71,7 +71,7 @@ RUN \
echo "**** Install pre-reqs ****" && \ echo "**** Install pre-reqs ****" && \
apk add bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib && \ apk add bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib && \
echo "**** Installing dotnet ****" && \ echo "**** Installing dotnet ****" && \
apk add aspnetcore6-runtime && \ apk add aspnetcore8-runtime && \
echo "**** Setting permissions ****" && \ echo "**** Setting permissions ****" && \
chown -R abc:abc /data && \ chown -R abc:abc /data && \
rm -rf \ rm -rf \

View file

@ -6,7 +6,7 @@ This is a web interface to manage your torrents on Real-Debrid, AllDebrid or Pre
- Download all files from Real-Debrid, AllDebrid or Premiumize to your local machine automatically - Download all files from Real-Debrid, AllDebrid or Premiumize to your local machine automatically
- Unpack all files when finished downloading - Unpack all files when finished downloading
- Implements a fake qBittorrent API so you can hook up other applications like Sonarr, Radarr or Couchpotato. - Implements a fake qBittorrent API so you can hook up other applications like Sonarr, Radarr or Couchpotato.
- Built with Angular 15 and .NET 6 - Built with Angular 15 and .NET 8
**You will need a Premium service at Real-Debrid, AllDebrid or Premiumize!** **You will need a Premium service at Real-Debrid, AllDebrid or Premiumize!**
@ -73,7 +73,7 @@ Replace the paths in `volumes` as in the above step.
Instead of running in Docker you can install it as a service in Windows or Linux. Instead of running in Docker you can install it as a service in Windows or Linux.
## Windows Service ## Windows Service
1. Make sure you have the ASP.NET Core Runtime 6 installed: [https://dotnet.microsoft.com/download/dotnet/6.0](https://dotnet.microsoft.com/download/dotnet/6.0) 1. Make sure you have the ASP.NET Core Runtime 8 installed: [https://dotnet.microsoft.com/download/dotnet/8.0](https://dotnet.microsoft.com/download/dotnet/8.0)
1. Get the latest zip file from the Releases page and extract it to your host. 1. Get the latest zip file from the Releases page and extract it to your host.
1. Open the `appsettings.json` file and replace the `LogLevel` `Path` to a path on your host. 1. Open the `appsettings.json` file and replace the `LogLevel` `Path` to a path on your host.
1. In `appsettings.json` replace the `Database` `Path` to a path on your host. 1. In `appsettings.json` replace the `Database` `Path` to a path on your host.
@ -92,7 +92,7 @@ Instead of running in Docker you can install it as a service in Linux.
```rm packages-microsoft-prod.deb``` ```rm packages-microsoft-prod.deb```
```sudo apt-get update && sudo apt-get install -y dotnet-sdk-6.0``` ```sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0```
2. Get latest archive from [releases](https://github.com/rogerfar/rdt-client/releases): 2. Get latest archive from [releases](https://github.com/rogerfar/rdt-client/releases):
```wget <zip_url>``` ```wget <zip_url>```
@ -218,7 +218,7 @@ By default the application runs in the root of your hosted address (i.e. https:/
- NodeJS - NodeJS
- NPM - NPM
- Angular CLI - Angular CLI
- .NET 6 - .NET 8
- Visual Studio 2022 - Visual Studio 2022
- (optional) Resharper - (optional) Resharper

View file

@ -55,7 +55,7 @@
<a class="navbar-item" routerLink="profile"> Profile </a> <a class="navbar-item" routerLink="profile"> Profile </a>
<a class="navbar-item" (click)="logout()"> Logout </a> <a class="navbar-item" (click)="logout()"> Logout </a>
<hr class="navbar-divider" /> <hr class="navbar-divider" />
<a href="https://github.com/rogerfar/rdt-client" target="_blank" class="navbar-item">Version 2.0.40</a> <a href="https://github.com/rogerfar/rdt-client" target="_blank" class="navbar-item">Version 2.0.41</a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,6 +1,6 @@
{ {
"name": "rdt-client", "name": "rdt-client",
"version": "2.0.40", "version": "2.0.41",
"description": "This is a web interface to manage your torrents on Real-Debrid.", "description": "This is a web interface to manage your torrents on Real-Debrid.",
"main": "index.js", "main": "index.js",
"dependencies": { "dependencies": {

View file

@ -1,22 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.21" /> <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.21" /> <PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.21" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="6.0.21" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.21"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<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="2.12.0" /> <PackageReference Include="Serilog" Version="3.1.1" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
@ -15,9 +15,9 @@
<PackageReference Include="MonoTorrent" Version="2.0.7" /> <PackageReference Include="MonoTorrent" Version="2.0.7" />
<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.4" />
<PackageReference Include="Serilog" Version="2.12.0" /> <PackageReference Include="Serilog" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="SharpCompress" Version="0.33.0" /> <PackageReference Include="SharpCompress" Version="0.34.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View file

@ -424,22 +424,22 @@ public class QBittorrent
switch (Settings.Get.Integrations.Default.FinishedAction) switch (Settings.Get.Integrations.Default.FinishedAction)
{ {
case TorrentFinishedAction.RemoveAllTorrents: case TorrentFinishedAction.RemoveAllTorrents:
_logger.LogDebug($"Removing torrents from Real-Debrid and Real-Debrid Client, no files", torrent); _logger.LogDebug("Removing torrents from Real-Debrid and Real-Debrid Client, no files");
await _torrents.Delete(torrent.TorrentId, true, true, false); await _torrents.Delete(torrent.TorrentId, true, true, false);
break; break;
case TorrentFinishedAction.RemoveRealDebrid: case TorrentFinishedAction.RemoveRealDebrid:
_logger.LogDebug($"Removing torrents from Real-Debrid, no files", torrent); _logger.LogDebug("Removing torrents from Real-Debrid, no files");
await _torrents.Delete(torrent.TorrentId, false, true, false); await _torrents.Delete(torrent.TorrentId, false, true, false);
break; break;
case TorrentFinishedAction.RemoveClient: case TorrentFinishedAction.RemoveClient:
_logger.LogDebug($"Removing torrents from client, no files", torrent); _logger.LogDebug("Removing torrents from client, no files");
await _torrents.Delete(torrent.TorrentId, true, false, false); await _torrents.Delete(torrent.TorrentId, true, false, false);
break; break;
case TorrentFinishedAction.None: case TorrentFinishedAction.None:
_logger.LogDebug($"Not removing torrents or files", torrent); _logger.LogDebug("Not removing torrents or files");
break; break;
default: default:

View file

@ -237,7 +237,7 @@ public class QBittorrentController : Controller
} }
[Authorize(Policy = "AuthSetting")] [Authorize(Policy = "AuthSetting")]
[Route("torrents/topPrio")] [Route("torrents/pause")]
[HttpPost] [HttpPost]
public async Task<ActionResult> TorrentsPausePost([FromForm] QBTorrentsHashesRequest request) public async Task<ActionResult> TorrentsPausePost([FromForm] QBTorrentsHashesRequest request)
{ {
@ -265,7 +265,7 @@ public class QBittorrentController : Controller
} }
[Authorize(Policy = "AuthSetting")] [Authorize(Policy = "AuthSetting")]
[Route("torrents/topPrio")] [Route("torrents/resume")]
[HttpPost] [HttpPost]
public async Task<ActionResult> TorrentsResumePost([FromForm] QBTorrentsHashesRequest request) public async Task<ActionResult> TorrentsResumePost([FromForm] QBTorrentsHashesRequest request)
{ {

View file

@ -1,6 +1,7 @@
using System.Diagnostics; using System.Diagnostics;
using System.Net; using System.Net;
using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Hosting.WindowsServices; using Microsoft.Extensions.Hosting.WindowsServices;
using RdtClient.Data.Data; using RdtClient.Data.Data;
@ -174,14 +175,11 @@ try
app.UseRouting(); app.UseRouting();
app.UseAuthentication(); app.UseAuthentication();
app.UseAuthorization(); app.UseAuthorization();
app.UseEndpoints(endpoints => app.MapHub<RdtHub>("/hub");
{
endpoints.MapHub<RdtHub>("/hub"); app.MapControllers();
endpoints.MapControllers();
});
app.MapWhen(x => !x.Request.Path.StartsWithSegments("/api"), routeBuilder => app.MapWhen(x => !x.Request.Path.StartsWithSegments("/api"), routeBuilder =>
{ {

View file

@ -1,10 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<UserSecretsId>94c24cba-f03f-4453-a671-3640b517c573</UserSecretsId> <UserSecretsId>94c24cba-f03f-4453-a671-3640b517c573</UserSecretsId>
<Version>2.0.40</Version> <Version>2.0.41</Version>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
@ -29,17 +29,17 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="6.0.21" /> <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.21" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="6.0.21" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.21"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<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="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.1" /> <PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="6.0.21" /> <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="8.0.0" />
<PackageReference Include="Serilog" Version="2.12.0" /> <PackageReference Include="Serilog" Version="3.1.1" />
<PackageReference Include="Serilog.AspNetCore" Version="6.1.0" /> <PackageReference Include="Serilog.AspNetCore" Version="7.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
</ItemGroup> </ItemGroup>