Fixed Premiumize selecting of files when there is no folder.
Some checks failed
Docker Image CI / build (push) Has been cancelled

This commit is contained in:
Roger Far 2023-04-08 16:46:29 -06:00
parent e1d7c07598
commit 8b8943c3c5
8 changed files with 40 additions and 24 deletions

View file

@ -4,6 +4,11 @@ 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.27] - 2023-04-08
### Changed
- Fixed Premiumize selecting of files.
- Updated internal downloader to report download speeds better.
## [2.0.26] - 2023-03-30 ## [2.0.26] - 2023-03-30
### Changed ### Changed
- Add some logging for Premiumize to better understand errors. - Add some logging for Premiumize to better understand errors.

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" />
<div class="navbar-item">Version 2.0.26</div> <div class="navbar-item">Version 2.0.27</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,6 +1,6 @@
{ {
"name": "rdt-client", "name": "rdt-client",
"version": "2.0.26", "version": "2.0.27",
"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

@ -8,11 +8,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.14" /> <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.15" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.14" /> <PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.14" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="6.0.14" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="6.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.14"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.15">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

View file

@ -11,7 +11,7 @@
<FrameworkReference Include="Microsoft.AspNetCore.App" /> <FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="AllDebrid.NET" Version="1.0.12" /> <PackageReference Include="AllDebrid.NET" Version="1.0.12" />
<PackageReference Include="Aria2.NET" Version="1.0.5" /> <PackageReference Include="Aria2.NET" Version="1.0.5" />
<PackageReference Include="Downloader.NET" Version="1.0.0" /> <PackageReference Include="Downloader.NET" Version="1.0.2" />
<PackageReference Include="MonoTorrent" Version="2.0.7" /> <PackageReference Include="MonoTorrent" Version="2.0.7" />
<PackageReference Include="Premiumize.NET" Version="1.0.3" /> <PackageReference Include="Premiumize.NET" Version="1.0.3" />
<PackageReference Include="RD.NET" Version="2.1.4" /> <PackageReference Include="RD.NET" Version="2.1.4" />

View file

@ -43,7 +43,7 @@ public class InternalDownloader : IDownloader
DownloadProgress.Invoke(this, DownloadProgress.Invoke(this,
new DownloadProgressEventArgs new DownloadProgressEventArgs
{ {
Speed = (Int64) args.Average(m => m.Speed), Speed = (Int64) args.Sum(m => m.Speed),
BytesDone = args.Sum(m => m.DownloadBytes), BytesDone = args.Sum(m => m.DownloadBytes),
BytesTotal = args.Sum(m => m.LengthBytes) BytesTotal = args.Sum(m => m.LengthBytes)
}); });

View file

@ -235,21 +235,32 @@ public class PremiumizeTorrentClient : ITorrentClient
if (transfer == null) if (transfer == null)
{ {
Log($"Transfer {torrent.RdId} not found!", torrent); throw new Exception($"Transfer {torrent.RdId} not found!");
return null;
} }
if (String.IsNullOrWhiteSpace(transfer.FolderId)) List<String> downloadLinks;
if (!String.IsNullOrWhiteSpace(transfer.FolderId))
{ {
Log($"Transfer {torrent.RdId} has no folderId!", torrent); var files = await GetClient().Folder.ListAsync(transfer.FolderId);
return null; downloadLinks = files.Content.Where(m => !String.IsNullOrWhiteSpace(m.Link)).Select(m => m.Link).ToList();
Log($"Found {downloadLinks.Count} links in folder {transfer.FolderId}", torrent);
} }
else if (!String.IsNullOrWhiteSpace(transfer.FileId))
{
var file = await GetClient().Items.DetailsAsync(transfer.FileId);
var files = await GetClient().Folder.ListAsync(transfer.FolderId); downloadLinks = new List<String>
{
file.Link
};
var downloadLinks = files.Content.Where(m => !String.IsNullOrWhiteSpace(m.Link)).Select(m => m.Link).ToList(); Log($"Found {transfer.FileId}", torrent);
}
Log($"Found {downloadLinks.Count} links", torrent); else
{
throw new Exception($"Transfer {torrent.RdId} has no folderId or fileId!");
}
foreach (var link in downloadLinks) foreach (var link in downloadLinks)
{ {

View file

@ -4,7 +4,7 @@
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net6.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.26</Version> <Version>2.0.27</Version>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
@ -29,15 +29,15 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="6.0.14" /> <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="6.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.14" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="6.0.14" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="6.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.14"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.15">
<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="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="6.0.14" /> <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="6.0.15" />
<PackageReference Include="Serilog" Version="2.12.0" /> <PackageReference Include="Serilog" Version="2.12.0" />
<PackageReference Include="Serilog.AspNetCore" Version="6.1.0" /> <PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />