Files
YouTube-Manager/Manager.App/Services/System/ClientManager.cs
2025-09-02 15:17:14 +02:00

44 lines
1.2 KiB
C#

using System.Net;
using DotBased.Monads;
using Manager.Data.Entities.LibraryContext;
using Manager.YouTube;
namespace Manager.App.Services.System;
public class ClientManager : BackgroundService
{
private readonly List<YouTubeClient> _clients = [];
private bool _cancelled;
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
stoppingToken.Register(CancellationRequested);
}
private void CancellationRequested()
{
_cancelled = true;
// Clear up
}
public async Task<Result<YouTubeClient>> LoadClient(ClientAccountEntity accountEntity)
{
var container = new CookieContainer();
if (accountEntity.HttpCookies.Count != 0)
{
var cookieColl = new CookieCollection();
foreach (var cookieEntity in accountEntity.HttpCookies)
{
cookieColl.Add(new Cookie(cookieEntity.Name, cookieEntity.Value, cookieEntity.Domain));
}
container.Add(cookieColl);
}
var ytClient = new YouTubeClient(container, accountEntity.UserAgent ?? "");
await ytClient.GetStateAsync();
return ytClient;
}
}