rdt-client/server/RdtClient.Service/Services/TrackerListGrabber.cs
2025-05-20 03:27:41 +10:00

34 lines
No EOL
1 KiB
C#

namespace RdtClient.Service.Services;
public class TrackerListGrabber : ITrackerListGrabber
{
private readonly IHttpClientFactory _httpClientFactory;
public TrackerListGrabber(IHttpClientFactory httpClientFactory)
{
_httpClientFactory = httpClientFactory;
}
public async Task<String[]> GetTrackers()
{
var trackerUrlList = Settings.Get.General.MagnetTrackerEnrichment;
if (String.IsNullOrWhiteSpace(trackerUrlList))
{
return [];
}
try
{
var httpClient = _httpClientFactory.CreateClient();
var result = await httpClient.GetStringAsync(trackerUrlList);
return result
.Split('\n', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToArray();
}
catch (Exception ex)
{
throw new InvalidOperationException("Unable to fetch tracker list for enrichment.", ex);
}
}
}