rdt-client/server/RdtClient.Service/Services/Downloads.cs
Roger Far d16e7f0c88 Changed the Aria2 updates to be done in the main TorrentRunner loop instead of each downloader making their own connections.
Added checks if Aria2 links actually got added.
Improved debug messages and set Microsoft message to Warning.
Abstracted the RealDebrid client into a ITorrentClient.
Add retry mechanism for server errors from RealDebrid.
2021-10-27 14:55:46 -06:00

108 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using RdtClient.Data.Data;
using Download = RdtClient.Data.Models.Data.Download;
namespace RdtClient.Service.Services
{
public class Downloads
{
private readonly DownloadData _downloadData;
public Downloads(DownloadData downloadData)
{
_downloadData = downloadData;
}
public async Task<List<Download>> GetForTorrent(Guid torrentId)
{
return await _downloadData.GetForTorrent(torrentId);
}
public async Task<Download> GetById(Guid downloadId)
{
return await _downloadData.GetById(downloadId);
}
public async Task<Download> Get(Guid torrentId, String path)
{
return await _downloadData.Get(torrentId, path);
}
public async Task<Download> Add(Guid torrentId, String path)
{
return await _downloadData.Add(torrentId, path);
}
public async Task UpdateUnrestrictedLink(Guid downloadId, String unrestrictedLink)
{
await _downloadData.UpdateUnrestrictedLink(downloadId, unrestrictedLink);
}
public async Task UpdateDownloadStarted(Guid downloadId, DateTimeOffset? dateTime)
{
await _downloadData.UpdateDownloadStarted(downloadId, dateTime);
}
public async Task UpdateDownloadFinished(Guid downloadId, DateTimeOffset? dateTime)
{
await _downloadData.UpdateDownloadFinished(downloadId, dateTime);
}
public async Task UpdateUnpackingQueued(Guid downloadId, DateTimeOffset? dateTime)
{
await _downloadData.UpdateUnpackingQueued(downloadId, dateTime);
}
public async Task UpdateUnpackingStarted(Guid downloadId, DateTimeOffset? dateTime)
{
await _downloadData.UpdateUnpackingStarted(downloadId, dateTime);
}
public async Task UpdateUnpackingFinished(Guid downloadId, DateTimeOffset? dateTime)
{
await _downloadData.UpdateUnpackingFinished(downloadId, dateTime);
}
public async Task UpdateCompleted(Guid downloadId, DateTimeOffset? dateTime)
{
await _downloadData.UpdateCompleted(downloadId, dateTime);
}
public async Task UpdateError(Guid downloadId, String error)
{
await _downloadData.UpdateError(downloadId, error);
}
public async Task UpdateRetryCount(Guid downloadId, Int32 retryCount)
{
await _downloadData.UpdateRetryCount(downloadId, retryCount);
}
public async Task UpdateRemoteId(Guid downloadId, String remoteId)
{
await _downloadData.UpdateRemoteId(downloadId, remoteId);
}
public async Task DeleteForTorrent(Guid torrentId)
{
await _downloadData.DeleteForTorrent(torrentId);
}
public async Task UpdateDownload(Guid downloadId)
{
await _downloadData.Download(downloadId);
}
public async Task UpdateUnpack(Guid downloadId)
{
await _downloadData.Unpack(downloadId);
}
public async Task Reset(Guid downloadId)
{
await _downloadData.Reset(downloadId);
}
}
}