From 1d4aa9f31cf585b32e4f9df5b9ccfe8ef949cf04 Mon Sep 17 00:00:00 2001 From: xjasonlyu Date: Tue, 24 May 2022 21:02:52 +0800 Subject: [PATCH] Add BaseProvider --- .../Providers/BaseProvider.cs | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Jellyfin.Plugin.JavTube/Providers/BaseProvider.cs diff --git a/Jellyfin.Plugin.JavTube/Providers/BaseProvider.cs b/Jellyfin.Plugin.JavTube/Providers/BaseProvider.cs new file mode 100644 index 0000000..7b4c741 --- /dev/null +++ b/Jellyfin.Plugin.JavTube/Providers/BaseProvider.cs @@ -0,0 +1,70 @@ +#if __EMBY__ +using MediaBrowser.Common.Net; +using MediaBrowser.Model.Logging; +using HttpRequestOptions = MediaBrowser.Common.Net.HttpRequestOptions; +#else +using Microsoft.Extensions.Logging; +#endif + +namespace Jellyfin.Plugin.JavTube.Providers; + +public abstract class BaseProvider +{ + private readonly ILogger _logger; + +#if __EMBY__ + private readonly IHttpClient _httpClient; + protected BaseProvider(IHttpClient httpClient,ILogger logger) + { + _httpClient = httpClient; + Logger = logger; + } +#else + private readonly IHttpClientFactory _httpClientFactory; + protected BaseProvider(IHttpClientFactory httpClientFactory, ILogger logger) + { + _httpClientFactory = httpClientFactory; + _logger = logger; + } +#endif + +#if __EMBY__ + public Task GetImageResponse(string url, CancellationToken cancellationToken) +#else + public Task GetImageResponse(string url, CancellationToken cancellationToken) +#endif + { + LogInfo("GetImageResponse for url: {0}", url); + return GetAsync(url, cancellationToken); + } + +#if __EMBY__ + private async Task GetAsync(string url, CancellationToken cancellationToken) + { + return await _httpClient.GetResponse(new HttpRequestOptions + { + Url = url, + EnableDefaultUserAgent = false, + UserAgent = Constant.UserAgent, + CancellationToken = cancellationToken + }).ConfigureAwait(false); + } +#else + private async Task GetAsync(string url, CancellationToken cancellationToken) + { + var httpClient = _httpClientFactory.CreateClient(); + httpClient.DefaultRequestHeaders.Add("User-Agent", Constant.UserAgent); + return await httpClient.GetAsync(url, cancellationToken).ConfigureAwait(false); + } +#endif + + protected void LogInfo(string message, params object[] args) + { +#if __EMBY__ + _logger.Info(message, args); +#else + // ReSharper disable once TemplateIsNotCompileTimeConstantProblem + _logger.LogInformation(message, args); +#endif + } +} \ No newline at end of file