Fixed speed and statuses on the qBittorrent api.
This commit is contained in:
parent
b0f584a6d5
commit
9b74c45ec3
1 changed files with 50 additions and 28 deletions
|
|
@ -241,19 +241,30 @@ namespace RdtClient.Service.Services
|
|||
|
||||
var torrentPath = Path.Combine(downloadPath, torrent.RdName);
|
||||
|
||||
var bytesDone = torrent.RdProgress;
|
||||
var bytesTotal = torrent.RdSize;
|
||||
var speed = torrent.RdSpeed ?? 0;
|
||||
|
||||
if (torrent.Downloads.Count > 0)
|
||||
{
|
||||
bytesDone = torrent.Downloads.Sum(m => m.BytesDone);
|
||||
bytesTotal = torrent.Downloads.Sum(m => m.BytesTotal);
|
||||
speed = (Int32) torrent.Downloads.Average(m => m.Speed);
|
||||
}
|
||||
|
||||
var result = new TorrentInfo
|
||||
{
|
||||
AddedOn = torrent.RdAdded.ToUnixTimeSeconds(),
|
||||
AmountLeft = (Int64) (torrent.RdSize * (100.0 - torrent.RdProgress) / 100.0),
|
||||
AddedOn = torrent.Added.ToUnixTimeSeconds(),
|
||||
AmountLeft = (Int64) (bytesDone * (100.0 - bytesTotal) / 100.0),
|
||||
AutoTmm = false,
|
||||
Availability = 2,
|
||||
Category = torrent.Category ?? "",
|
||||
Completed = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
CompletionOn = torrent.RdEnded?.ToUnixTimeSeconds(),
|
||||
Completed = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
CompletionOn = torrent.Completed?.ToUnixTimeSeconds(),
|
||||
DlLimit = -1,
|
||||
Dlspeed = torrent.RdSpeed ?? 0,
|
||||
Downloaded = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
DownloadedSession = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
Dlspeed = speed,
|
||||
Downloaded = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
DownloadedSession = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
Eta = 0,
|
||||
FlPiecePrio = false,
|
||||
ForceStart = false,
|
||||
|
|
@ -268,7 +279,7 @@ namespace RdtClient.Service.Services
|
|||
NumLeechs = 100,
|
||||
NumSeeds = 100,
|
||||
Priority = ++prio,
|
||||
Progress = (Int64) (torrent.RdProgress / 100.0),
|
||||
Progress = (Int64) (bytesDone / 100.0),
|
||||
Ratio = 1,
|
||||
RatioLimit = 1,
|
||||
ContentPath = torrentPath,
|
||||
|
|
@ -277,16 +288,16 @@ namespace RdtClient.Service.Services
|
|||
SeenComplete = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
|
||||
SeqDl = false,
|
||||
State = "downloading",
|
||||
Size = torrent.RdSize,
|
||||
Size = bytesTotal,
|
||||
SuperSeeding = false,
|
||||
Tags = "",
|
||||
TimeActive = (Int64) (torrent.RdAdded - DateTimeOffset.UtcNow).TotalMinutes,
|
||||
TotalSize = torrent.RdSize,
|
||||
TimeActive = (Int64) (torrent.Added - DateTimeOffset.UtcNow).TotalMinutes,
|
||||
TotalSize = bytesTotal,
|
||||
Tracker = "udp://tracker.opentrackr.org:1337",
|
||||
UpLimit = -1,
|
||||
Uploaded = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
UploadedSession = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
Upspeed = torrent.RdSpeed ?? 0
|
||||
Uploaded = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
UploadedSession = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
Upspeed = speed
|
||||
};
|
||||
|
||||
if (torrent.Completed.HasValue)
|
||||
|
|
@ -349,24 +360,35 @@ namespace RdtClient.Service.Services
|
|||
{
|
||||
savePath = Path.Combine(savePath, torrent.Category);
|
||||
}
|
||||
|
||||
var bytesDone = torrent.RdProgress;
|
||||
var bytesTotal = torrent.RdSize;
|
||||
var speed = torrent.RdSpeed ?? 0;
|
||||
|
||||
if (torrent.Downloads.Count > 0)
|
||||
{
|
||||
bytesDone = torrent.Downloads.Sum(m => m.BytesDone);
|
||||
bytesTotal = torrent.Downloads.Sum(m => m.BytesTotal);
|
||||
speed = (Int32) torrent.Downloads.Average(m => m.Speed);
|
||||
}
|
||||
|
||||
var result = new TorrentProperties
|
||||
{
|
||||
AdditionDate = torrent.RdAdded.ToUnixTimeSeconds(),
|
||||
AdditionDate = torrent.Added.ToUnixTimeSeconds(),
|
||||
Comment = "RealDebridClient <https://github.com/rogerfar/rdt-client>",
|
||||
CompletionDate = torrent.RdEnded?.ToUnixTimeSeconds() ?? -1,
|
||||
CompletionDate = torrent.Completed?.ToUnixTimeSeconds() ?? -1,
|
||||
CreatedBy = "RealDebridClient <https://github.com/rogerfar/rdt-client>",
|
||||
CreationDate = torrent.RdAdded.ToUnixTimeSeconds(),
|
||||
CreationDate = torrent.Added.ToUnixTimeSeconds(),
|
||||
DlLimit = -1,
|
||||
DlSpeed = torrent.RdSpeed ?? 0,
|
||||
DlSpeedAvg = torrent.RdSpeed ?? 0,
|
||||
DlSpeed = speed,
|
||||
DlSpeedAvg = speed,
|
||||
Eta = 0,
|
||||
LastSeen = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
|
||||
NbConnections = 0,
|
||||
NbConnectionsLimit = 100,
|
||||
Peers = 0,
|
||||
PeersTotal = 2,
|
||||
PieceSize = torrent.Files.Count > 0 ? torrent.RdSize / torrent.Files.Count : 0,
|
||||
PieceSize = torrent.Files.Count > 0 ? bytesTotal / torrent.Files.Count : 0,
|
||||
PiecesHave = torrent.Downloads.Count(m => m.Completed.HasValue),
|
||||
PiecesNum = torrent.Files.Count,
|
||||
Reannounce = 0,
|
||||
|
|
@ -375,16 +397,16 @@ namespace RdtClient.Service.Services
|
|||
Seeds = 100,
|
||||
SeedsTotal = 100,
|
||||
ShareRatio = 9999,
|
||||
TimeElapsed = (Int64) (torrent.RdAdded - DateTimeOffset.UtcNow).TotalMinutes,
|
||||
TotalDownloaded = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
TotalDownloadedSession = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
TotalSize = torrent.RdSize,
|
||||
TotalUploaded = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
TotalUploadedSession = (Int64) (torrent.RdSize * (torrent.RdProgress / 100.0)),
|
||||
TimeElapsed = (Int64) (torrent.Added - DateTimeOffset.UtcNow).TotalMinutes,
|
||||
TotalDownloaded = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
TotalDownloadedSession = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
TotalSize = bytesTotal,
|
||||
TotalUploaded = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
TotalUploadedSession = (Int64) (bytesTotal * (bytesDone / 100.0)),
|
||||
TotalWasted = 0,
|
||||
UpLimit = -1,
|
||||
UpSpeed = torrent.RdSpeed ?? 0,
|
||||
UpSpeedAvg = torrent.RdSpeed ?? 0
|
||||
UpSpeed = speed,
|
||||
UpSpeedAvg = speed
|
||||
};
|
||||
|
||||
return result;
|
||||
|
|
|
|||
Loading…
Reference in a new issue