Fix broken download status in the UI
This commit is contained in:
parent
6572ba752c
commit
2db2af4cea
4 changed files with 81 additions and 54 deletions
|
|
@ -51,8 +51,17 @@ public class SabnzbdHandler(Authentication authentication, IHttpContextAccessor
|
|||
if (loginResult.Succeeded)
|
||||
{
|
||||
context.Succeed(requirement);
|
||||
return;
|
||||
}
|
||||
|
||||
// Invalid credentials provided
|
||||
context.Fail();
|
||||
return;
|
||||
}
|
||||
|
||||
// Authentication required but missing credentials
|
||||
context.Fail();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,25 +48,30 @@ public class RemoteService(IHubContext<RdtHub> hub, Torrents torrents)
|
|||
RdSpeed = torrent.RdSpeed,
|
||||
RdSeeders = torrent.RdSeeders,
|
||||
Files = torrent.Files,
|
||||
Downloads = torrent.Downloads.Select(download => new DownloadDto
|
||||
Downloads = torrent.Downloads.Select(download =>
|
||||
{
|
||||
DownloadId = download.DownloadId,
|
||||
TorrentId = download.TorrentId,
|
||||
Path = download.Path,
|
||||
Link = download.Link,
|
||||
Added = download.Added,
|
||||
DownloadQueued = download.DownloadQueued,
|
||||
DownloadStarted = download.DownloadStarted,
|
||||
DownloadFinished = download.DownloadFinished,
|
||||
UnpackingQueued = download.UnpackingQueued,
|
||||
UnpackingStarted = download.UnpackingStarted,
|
||||
UnpackingFinished = download.UnpackingFinished,
|
||||
Completed = download.Completed,
|
||||
RetryCount = download.RetryCount,
|
||||
Error = download.Error,
|
||||
BytesTotal = download.BytesTotal,
|
||||
BytesDone = download.BytesDone,
|
||||
Speed = download.Speed
|
||||
var (speed, bytesTotal, bytesDone) = torrents.GetDownloadStats(download.DownloadId);
|
||||
|
||||
return new DownloadDto
|
||||
{
|
||||
DownloadId = download.DownloadId,
|
||||
TorrentId = download.TorrentId,
|
||||
Path = download.Path,
|
||||
Link = download.Link,
|
||||
Added = download.Added,
|
||||
DownloadQueued = download.DownloadQueued,
|
||||
DownloadStarted = download.DownloadStarted,
|
||||
DownloadFinished = download.DownloadFinished,
|
||||
UnpackingQueued = download.UnpackingQueued,
|
||||
UnpackingStarted = download.UnpackingStarted,
|
||||
UnpackingFinished = download.UnpackingFinished,
|
||||
Completed = download.Completed,
|
||||
RetryCount = download.RetryCount,
|
||||
Error = download.Error,
|
||||
BytesTotal = bytesTotal,
|
||||
BytesDone = bytesDone,
|
||||
Speed = speed
|
||||
};
|
||||
}).ToList()
|
||||
}).ToList();
|
||||
await hub.Clients.All.SendCoreAsync("update",
|
||||
|
|
|
|||
|
|
@ -544,6 +544,9 @@ public class TorrentRunner(ILogger<TorrentRunner> logger, Torrents torrents, Dow
|
|||
catch (Exception ex)
|
||||
{
|
||||
LogError($"Unable to start download: {ex.Message}", download, torrent);
|
||||
|
||||
await downloads.UpdateError(download.DownloadId, ex.Message);
|
||||
await downloads.UpdateCompleted(download.DownloadId, DateTimeOffset.UtcNow);
|
||||
}
|
||||
|
||||
Log($"Started download", download, torrent);
|
||||
|
|
|
|||
|
|
@ -60,25 +60,30 @@ public class TorrentsController(ILogger<TorrentsController> logger, Torrents tor
|
|||
RdSpeed = torrent.RdSpeed,
|
||||
RdSeeders = torrent.RdSeeders,
|
||||
Files = torrent.Files,
|
||||
Downloads = torrent.Downloads.Select(download => new DownloadDto
|
||||
Downloads = torrent.Downloads.Select(download =>
|
||||
{
|
||||
DownloadId = download.DownloadId,
|
||||
TorrentId = download.TorrentId,
|
||||
Path = download.Path,
|
||||
Link = download.Link,
|
||||
Added = download.Added,
|
||||
DownloadQueued = download.DownloadQueued,
|
||||
DownloadStarted = download.DownloadStarted,
|
||||
DownloadFinished = download.DownloadFinished,
|
||||
UnpackingQueued = download.UnpackingQueued,
|
||||
UnpackingStarted = download.UnpackingStarted,
|
||||
UnpackingFinished = download.UnpackingFinished,
|
||||
Completed = download.Completed,
|
||||
RetryCount = download.RetryCount,
|
||||
Error = download.Error,
|
||||
BytesTotal = download.BytesTotal,
|
||||
BytesDone = download.BytesDone,
|
||||
Speed = download.Speed
|
||||
var (speed, bytesTotal, bytesDone) = torrents.GetDownloadStats(download.DownloadId);
|
||||
|
||||
return new DownloadDto
|
||||
{
|
||||
DownloadId = download.DownloadId,
|
||||
TorrentId = download.TorrentId,
|
||||
Path = download.Path,
|
||||
Link = download.Link,
|
||||
Added = download.Added,
|
||||
DownloadQueued = download.DownloadQueued,
|
||||
DownloadStarted = download.DownloadStarted,
|
||||
DownloadFinished = download.DownloadFinished,
|
||||
UnpackingQueued = download.UnpackingQueued,
|
||||
UnpackingStarted = download.UnpackingStarted,
|
||||
UnpackingFinished = download.UnpackingFinished,
|
||||
Completed = download.Completed,
|
||||
RetryCount = download.RetryCount,
|
||||
Error = download.Error,
|
||||
BytesTotal = bytesTotal,
|
||||
BytesDone = bytesDone,
|
||||
Speed = speed
|
||||
};
|
||||
}).ToList()
|
||||
}).ToList();
|
||||
|
||||
|
|
@ -140,25 +145,30 @@ public class TorrentsController(ILogger<TorrentsController> logger, Torrents tor
|
|||
RdSpeed = torrent.RdSpeed,
|
||||
RdSeeders = torrent.RdSeeders,
|
||||
Files = torrent.Files,
|
||||
Downloads = torrent.Downloads.Select(download => new DownloadDto
|
||||
Downloads = torrent.Downloads.Select(download =>
|
||||
{
|
||||
DownloadId = download.DownloadId,
|
||||
TorrentId = download.TorrentId,
|
||||
Path = download.Path,
|
||||
Link = download.Link,
|
||||
Added = download.Added,
|
||||
DownloadQueued = download.DownloadQueued,
|
||||
DownloadStarted = download.DownloadStarted,
|
||||
DownloadFinished = download.DownloadFinished,
|
||||
UnpackingQueued = download.UnpackingQueued,
|
||||
UnpackingStarted = download.UnpackingStarted,
|
||||
UnpackingFinished = download.UnpackingFinished,
|
||||
Completed = download.Completed,
|
||||
RetryCount = download.RetryCount,
|
||||
Error = download.Error,
|
||||
BytesTotal = download.BytesTotal,
|
||||
BytesDone = download.BytesDone,
|
||||
Speed = download.Speed
|
||||
var (speed, bytesTotal, bytesDone) = torrents.GetDownloadStats(download.DownloadId);
|
||||
|
||||
return new DownloadDto
|
||||
{
|
||||
DownloadId = download.DownloadId,
|
||||
TorrentId = download.TorrentId,
|
||||
Path = download.Path,
|
||||
Link = download.Link,
|
||||
Added = download.Added,
|
||||
DownloadQueued = download.DownloadQueued,
|
||||
DownloadStarted = download.DownloadStarted,
|
||||
DownloadFinished = download.DownloadFinished,
|
||||
UnpackingQueued = download.UnpackingQueued,
|
||||
UnpackingStarted = download.UnpackingStarted,
|
||||
UnpackingFinished = download.UnpackingFinished,
|
||||
Completed = download.Completed,
|
||||
RetryCount = download.RetryCount,
|
||||
Error = download.Error,
|
||||
BytesTotal = bytesTotal,
|
||||
BytesDone = bytesDone,
|
||||
Speed = speed
|
||||
};
|
||||
}).ToList()
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue