Merge pull request #445 from isc30/master

qBittorrent API improvements
This commit is contained in:
Roger Far 2024-04-06 13:38:11 -06:00 committed by GitHub
commit 995cee66f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 23 additions and 15 deletions

View file

@ -6,7 +6,7 @@ import { RealDebridStatus, Torrent } from './models/torrent.model';
name: 'status',
})
export class TorrentStatusPipe implements PipeTransform {
constructor(private pipe: FileSizePipe) {}
constructor(private pipe: FileSizePipe) { }
transform(torrent: Torrent): string {
if (torrent.error) {
@ -38,9 +38,8 @@ export class TorrentStatusPipe implements PipeTransform {
speed = this.pipe.transform(allSpeeds, 'filesize');
return `Downloading file ${downloading.length + downloaded.length}/${
torrent.downloads.length
} (${progress.toFixed(2)}% - ${speed}/s)`;
return `Downloading file ${downloading.length + downloaded.length}/${torrent.downloads.length
} (${progress.toFixed(2)}% - ${speed}/s)`;
}
const unpacking = torrent.downloads.where((m) => m.unpackingStarted && !m.unpackingFinished && m.bytesDone > 0);
@ -87,6 +86,9 @@ export class TorrentStatusPipe implements PipeTransform {
switch (torrent.rdStatus) {
case RealDebridStatus.Downloading:
if (torrent.rdSeeders < 1) {
return `Torrent stalled`
}
const speed = this.pipe.transform(torrent.rdSpeed, 'filesize');
return `Torrent downloading (${torrent.rdProgress}% - ${speed}/s)`;
case RealDebridStatus.Processing:

View file

@ -16,6 +16,7 @@
<th>Name</th>
<th>Category</th>
<th>Priority</th>
<th>Seeders</th>
<th>Files</th>
<th>Downloads</th>
<th>Size</th>
@ -40,6 +41,9 @@
<td>
{{ torrent.priority }}
</td>
<td>
{{ torrent.rdSeeders }}
</td>
<td>
{{ torrent.files.length | number }}
</td>
@ -74,7 +78,7 @@
>
Retry Selected
</button>
<button
class="button is-primary"
(click)="changeSettingsModal()"

View file

@ -224,8 +224,10 @@ public class QBittorrent
torrentPath = Path.Combine(downloadPath, torrent.RdName) + Path.DirectorySeparatorChar;
}
var bytesDone = torrent.RdProgress;
Decimal? rdProgress = torrent.RdProgress / 100.0m;
Decimal? downloadProgress = 0;
var bytesTotal = torrent.RdSize;
var bytesDone = (long?)(torrent.RdSize * rdProgress);
var speed = torrent.RdSpeed ?? 0;
if (torrent.Downloads.Count > 0)
@ -233,14 +235,10 @@ public class QBittorrent
bytesDone = torrent.Downloads.Sum(m => m.BytesDone);
bytesTotal = torrent.Downloads.Sum(m => m.BytesTotal);
speed = (Int32) torrent.Downloads.Average(m => m.Speed);
downloadProgress = bytesTotal > 0 ? (Decimal?)bytesDone / bytesTotal : 0;
}
var progress = (bytesDone / (Single?)bytesTotal);
if (progress == null || !Single.IsNormal(progress.Value))
{
progress = 0;
}
Decimal? progress = (rdProgress + downloadProgress) / 2m;
var result = new TorrentInfo
{
@ -267,10 +265,10 @@ public class QBittorrent
Name = torrent.RdName,
NumComplete = 10,
NumIncomplete = 0,
NumLeechs = 100,
NumSeeds = 100,
NumLeechs = 1,
NumSeeds = torrent.RdSeeders ?? 1,
Priority = ++prio,
Progress = (Single) progress,
Progress = (float)(progress ?? 0),
Ratio = 1,
RatioLimit = 1,
SavePath = downloadPath,
@ -298,6 +296,10 @@ public class QBittorrent
{
result.State = "pausedUP";
}
else if (torrent.RdStatus == TorrentStatus.Downloading && torrent.RdSeeders < 1)
{
result.State = "stalledDL";
}
results.Add(result);
}