[CHANGE] Added logger to client
This commit is contained in:
@@ -3,6 +3,7 @@ using System.Net.Mime;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using DotBased.Logging;
|
||||
using DotBased.Monads;
|
||||
using Manager.YouTube.Models;
|
||||
using Manager.YouTube.Models.Innertube;
|
||||
@@ -22,12 +23,15 @@ public sealed class YouTubeClient : IDisposable
|
||||
public Cookie? SapisidCookie => CookieContainer.GetAllCookies()["SAPISID"];
|
||||
public HttpClient HttpClient { get; }
|
||||
|
||||
private YouTubeClient(CookieCollection? cookies, string userAgent)
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private YouTubeClient(CookieCollection? cookies, string userAgent, ILogger logger)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(userAgent))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(userAgent));
|
||||
}
|
||||
_logger = logger;
|
||||
UserAgent = userAgent;
|
||||
if (cookies == null || cookies.Count == 0)
|
||||
{
|
||||
@@ -47,10 +51,13 @@ public sealed class YouTubeClient : IDisposable
|
||||
/// </summary>
|
||||
/// <param name="cookies">The cookies to use for making requests. Empty collection or null for anonymous requests.</param>
|
||||
/// <param name="userAgent">The user agent to use for the requests. Only WEB client is supported.</param>
|
||||
/// <param name="logger">The logger that the client is going to use, if null will create a new logger.</param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Result<YouTubeClient>> CreateAsync(CookieCollection? cookies, string userAgent)
|
||||
public static async Task<Result<YouTubeClient>> CreateAsync(CookieCollection? cookies, string userAgent, ILogger? logger = null)
|
||||
{
|
||||
var client = new YouTubeClient(cookies, userAgent);
|
||||
logger ??= LogService.RegisterLogger<YouTubeClient>();
|
||||
|
||||
var client = new YouTubeClient(cookies, userAgent, logger);
|
||||
var clientInitializeResult = await client.FetchClientDataAsync();
|
||||
if (!clientInitializeResult.IsSuccess)
|
||||
{
|
||||
@@ -329,7 +336,7 @@ public sealed class YouTubeClient : IDisposable
|
||||
var stateResult = SetClientStateFromHtml(html);
|
||||
if (!stateResult.IsSuccess)
|
||||
{
|
||||
//TODO: Log warning: failed to update client state!
|
||||
_logger.Warning("Failed to update client state.");
|
||||
}
|
||||
|
||||
var htmlParseResult = HtmlParser.GetVideoDataFromHtml(html);
|
||||
|
||||
Reference in New Issue
Block a user