diff --git a/server/RdtClient.Service/RdtClient.Service.csproj b/server/RdtClient.Service/RdtClient.Service.csproj index 6d43ec2..71d18a9 100644 --- a/server/RdtClient.Service/RdtClient.Service.csproj +++ b/server/RdtClient.Service/RdtClient.Service.csproj @@ -22,7 +22,7 @@ - + diff --git a/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs b/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs index 30dd54d..6cf14d8 100644 --- a/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs +++ b/server/RdtClient.Service/Services/TorrentClients/TorBoxTorrentClient.cs @@ -135,10 +135,30 @@ public class TorBoxTorrentClient(ILogger logger, IHttpClien return result.Data?.Hash?.ToString()!; } - public Task> GetAvailableFiles(String hash) + public async Task> GetAvailableFiles(String hash) { - var result = new List(); - return Task.FromResult>(result); + var availability = await GetClient().Torrents.GetAvailabilityAsync(hash, listFiles: true); + + if (availability.Data != null) + { + var availableFiles = new List(); + foreach (var file in availability.Data[0]?.Files!) + { + availableFiles.Add( + new TorrentClientAvailableFile + { + Filename = file!.Name, + Filesize = file.Size + }); + } + return availableFiles; + } + else + { + return []; + } + + } public Task SelectFiles(Data.Models.Data.Torrent torrent) @@ -213,7 +233,7 @@ public class TorBoxTorrentClient(ILogger logger, IHttpClien if (rdTorrent.Host == "True") { torrent.RdStatus = TorrentStatus.Finished; - } + } else { torrent.RdStatus = rdTorrent.Status switch @@ -233,7 +253,7 @@ public class TorBoxTorrentClient(ILogger logger, IHttpClien _ => TorrentStatus.Error }; } - + } catch (Exception ex) {