[TB] Refactor GetFileName in Torrent Clients

This commit is contained in:
Sam Heinz 2024-12-10 23:45:13 +10:00
parent a1599ee716
commit 350185b702
5 changed files with 16 additions and 16 deletions

View file

@ -263,14 +263,14 @@ public class AllDebridTorrentClient(ILogger<AllDebridTorrentClient> logger, IHtt
return links.Select(m => m.LinkUrl.ToString()).ToList(); return links.Select(m => m.LinkUrl.ToString()).ToList();
} }
public Task<String?> GetFileName(Data.Models.Data.Download download) public Task<String?> GetFileName(String downloadUrl)
{ {
if (String.IsNullOrWhiteSpace(download.Link)) if (String.IsNullOrWhiteSpace(downloadUrl))
{ {
return Task.FromResult<String?>(null); return Task.FromResult<String?>(null);
} }
var uri = new Uri(download.Link); var uri = new Uri(downloadUrl);
return Task.FromResult<String?>(HttpUtility.UrlDecode(uri.Segments.Last())); return Task.FromResult<String?>(HttpUtility.UrlDecode(uri.Segments.Last()));
} }

View file

@ -15,5 +15,5 @@ public interface ITorrentClient
Task<String> Unrestrict(String link); Task<String> Unrestrict(String link);
Task<Torrent> UpdateData(Torrent torrent, TorrentClientTorrent? torrentClientTorrent); Task<Torrent> UpdateData(Torrent torrent, TorrentClientTorrent? torrentClientTorrent);
Task<IList<String>?> GetDownloadLinks(Torrent torrent); Task<IList<String>?> GetDownloadLinks(Torrent torrent);
Task<String?> GetFileName(Download download); Task<String?> GetFileName(String downloadUrl);
} }

View file

@ -242,14 +242,14 @@ public class PremiumizeTorrentClient(ILogger<PremiumizeTorrentClient> logger, IH
return downloadLinks; return downloadLinks;
} }
public Task<String?> GetFileName(Data.Models.Data.Download download) public Task<String?> GetFileName(String downloadUrl)
{ {
if (String.IsNullOrWhiteSpace(download.Link)) if (String.IsNullOrWhiteSpace(downloadUrl))
{ {
return Task.FromResult<String?>(null); return Task.FromResult<String?>(null);
} }
var uri = new Uri(download.Link); var uri = new Uri(downloadUrl);
return Task.FromResult<String?>(HttpUtility.UrlDecode(uri.Segments.Last())); return Task.FromResult<String?>(HttpUtility.UrlDecode(uri.Segments.Last()));
} }

View file

@ -396,14 +396,14 @@ public class RealDebridTorrentClient(ILogger<RealDebridTorrentClient> logger, IH
return null; return null;
} }
public Task<String?> GetFileName(Data.Models.Data.Download download) public Task<String?> GetFileName(String downloadUrl)
{ {
if (String.IsNullOrWhiteSpace(download.Link)) if (String.IsNullOrWhiteSpace(downloadUrl))
{ {
return Task.FromResult<String?>(null); return Task.FromResult<String?>(null);
} }
var uri = new Uri(download.Link); var uri = new Uri(downloadUrl);
return Task.FromResult<String?>(HttpUtility.UrlDecode(uri.Segments.Last())); return Task.FromResult<String?>(HttpUtility.UrlDecode(uri.Segments.Last()));
} }

View file

@ -161,7 +161,7 @@ public class TorBoxTorrentClient(ILogger<TorBoxTorrentClient> logger, IHttpClien
{ {
var availability = await GetClient().Torrents.GetAvailabilityAsync(hash, listFiles: true); var availability = await GetClient().Torrents.GetAvailabilityAsync(hash, listFiles: true);
if (availability.Data != null) if (availability.Data != null || availability.Data?.Count < 0)
{ {
return (availability.Data[0]?.Files ?? []).Select(file => new TorrentClientAvailableFile return (availability.Data[0]?.Files ?? []).Select(file => new TorrentClientAvailableFile
{ {
@ -302,18 +302,18 @@ public class TorBoxTorrentClient(ILogger<TorBoxTorrentClient> logger, IHttpClien
return files; return files;
} }
public async Task<String?> GetFileName(Data.Models.Data.Download download) public async Task<String?> GetFileName(String downloadUrl)
{ {
if (String.IsNullOrWhiteSpace(download.Link)) if (String.IsNullOrWhiteSpace(downloadUrl))
{ {
return null; return null;
} }
var uri = new Uri(download.Link); var uri = new Uri(downloadUrl);
using (HttpClient client = new HttpClient()) using (HttpClient client = new())
{ {
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Head, uri); HttpRequestMessage request = new(HttpMethod.Head, uri);
HttpResponseMessage response = await client.SendAsync(request); HttpResponseMessage response = await client.SendAsync(request);
if (response.Content.Headers.ContentDisposition != null) if (response.Content.Headers.ContentDisposition != null)
{ {