[CHANGE] Added logger to client
This commit is contained in:
parent
ed9cb7eff1
commit
9fdde5e756
1 changed files with 11 additions and 4 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue