mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-06 10:16:18 +00:00
extracted httpclient dependancy
This commit is contained in:
@@ -44,7 +44,10 @@ namespace MediaBrowser.Controller.Plugins
|
||||
/// </summary>
|
||||
private INetworkManager _networkManager;
|
||||
|
||||
private IKernel _kernel;
|
||||
/// <summary>
|
||||
/// The _kernel
|
||||
/// </summary>
|
||||
private readonly IKernel _kernel;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="PluginSecurityManager" /> class.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Movies;
|
||||
using MediaBrowser.Model.Entities;
|
||||
@@ -16,6 +17,22 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
/// </summary>
|
||||
class FanArtMovieProvider : FanartBaseProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
public FanArtMovieProvider(IHttpClient httpClient)
|
||||
: base()
|
||||
{
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
HttpClient = httpClient;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The fan art base URL
|
||||
/// </summary>
|
||||
@@ -70,7 +87,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (var xml = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.FanArt, cancellationToken).ConfigureAwait(false))
|
||||
using (var xml = await HttpClient.Get(url, Kernel.Instance.ResourcePools.FanArt, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
doc.Load(xml);
|
||||
}
|
||||
@@ -113,7 +130,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
}
|
||||
}
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
if (Kernel.Instance.Configuration.DownloadMovieArt && !item.ResolveArgs.ContainsMetaFileByName(ART_FILE))
|
||||
{
|
||||
var node =
|
||||
@@ -139,7 +156,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
}
|
||||
}
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
if (Kernel.Instance.Configuration.DownloadMovieDisc && !item.ResolveArgs.ContainsMetaFileByName(DISC_FILE))
|
||||
{
|
||||
var node = doc.SelectSingleNode("//fanart/movie/moviediscs/moviedisc[@lang = \"" + language + "\"]/@url") ??
|
||||
@@ -163,7 +180,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
}
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
if (Kernel.Instance.Configuration.DownloadMovieBanner && !item.ResolveArgs.ContainsMetaFileByName(BANNER_FILE))
|
||||
{
|
||||
var node = doc.SelectSingleNode("//fanart/movie/moviebanners/moviebanner[@lang = \"" + language + "\"]/@url") ??
|
||||
@@ -187,7 +204,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
}
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
if (Kernel.Instance.Configuration.DownloadMovieThumb && !item.ResolveArgs.ContainsMetaFileByName(THUMB_FILE))
|
||||
{
|
||||
var node = doc.SelectSingleNode("//fanart/movie/moviethumbs/moviethumb[@lang = \"" + language + "\"]/@url") ??
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using System.Net;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Movies;
|
||||
using MediaBrowser.Model.Entities;
|
||||
@@ -9,7 +11,6 @@ using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
@@ -36,19 +37,31 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
/// <value>The json serializer.</value>
|
||||
protected IJsonSerializer JsonSerializer { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="MovieDbProvider" /> class.
|
||||
/// </summary>
|
||||
/// <param name="jsonSerializer">The json serializer.</param>
|
||||
/// <param name="httpClient">The HTTP client.</param>
|
||||
/// <exception cref="System.ArgumentNullException">jsonSerializer</exception>
|
||||
public MovieDbProvider(IJsonSerializer jsonSerializer)
|
||||
public MovieDbProvider(IJsonSerializer jsonSerializer, IHttpClient httpClient)
|
||||
: base()
|
||||
{
|
||||
if (jsonSerializer == null)
|
||||
{
|
||||
throw new ArgumentNullException("jsonSerializer");
|
||||
}
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
JsonSerializer = jsonSerializer;
|
||||
HttpClient = httpClient;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -114,7 +127,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
{
|
||||
get
|
||||
{
|
||||
LazyInitializer.EnsureInitialized(ref _tmdbSettingsTask, ref _tmdbSettingsTaskInitialized, ref _tmdbSettingsTaskSyncLock, () => GetTmdbSettings(JsonSerializer));
|
||||
LazyInitializer.EnsureInitialized(ref _tmdbSettingsTask, ref _tmdbSettingsTaskInitialized, ref _tmdbSettingsTaskSyncLock, () => GetTmdbSettings(JsonSerializer, HttpClient));
|
||||
return _tmdbSettingsTask;
|
||||
}
|
||||
}
|
||||
@@ -123,11 +136,11 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
/// Gets the TMDB settings.
|
||||
/// </summary>
|
||||
/// <returns>Task{TmdbSettingsResult}.</returns>
|
||||
private static async Task<TmdbSettingsResult> GetTmdbSettings(IJsonSerializer jsonSerializer)
|
||||
private static async Task<TmdbSettingsResult> GetTmdbSettings(IJsonSerializer jsonSerializer, IHttpClient httpClient)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var json = await Kernel.Instance.HttpManager.Get(String.Format(TmdbConfigUrl, ApiKey), Kernel.Instance.ResourcePools.MovieDb, CancellationToken.None).ConfigureAwait(false))
|
||||
using (var json = await httpClient.Get(String.Format(TmdbConfigUrl, ApiKey), Kernel.Instance.ResourcePools.MovieDb, CancellationToken.None).ConfigureAwait(false))
|
||||
{
|
||||
return jsonSerializer.DeserializeFromStream<TmdbSettingsResult>(json);
|
||||
}
|
||||
@@ -189,7 +202,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
{
|
||||
//in addition to ours, we need to set the last refreshed time for the local data provider
|
||||
//so it won't see the new files we download and process them all over again
|
||||
if (JsonProvider == null) JsonProvider = new MovieProviderFromJson(JsonSerializer);
|
||||
if (JsonProvider == null) JsonProvider = new MovieProviderFromJson(HttpClient, JsonSerializer);
|
||||
var data = item.ProviderData.GetValueOrDefault(JsonProvider.Id, new BaseProviderInfo { ProviderId = JsonProvider.Id });
|
||||
data.LastRefreshed = value;
|
||||
item.ProviderData[JsonProvider.Id] = data;
|
||||
@@ -460,7 +473,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url3, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url3, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
searchResult = JsonSerializer.DeserializeFromStream<TmdbMovieSearchResults>(json);
|
||||
}
|
||||
@@ -492,7 +505,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url3, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url3, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
searchResult = JsonSerializer.DeserializeFromStream<TmdbMovieSearchResults>(json);
|
||||
}
|
||||
@@ -531,7 +544,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url3, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url3, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
var response = JsonSerializer.DeserializeFromStream<TmdbAltTitleResults>(json);
|
||||
|
||||
@@ -611,7 +624,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
var movieResult = JsonSerializer.DeserializeFromStream<CompleteMovieData>(json);
|
||||
|
||||
@@ -710,7 +723,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (var json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
mainResult = JsonSerializer.DeserializeFromStream<CompleteMovieData>(json);
|
||||
}
|
||||
@@ -742,7 +755,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
mainResult = JsonSerializer.DeserializeFromStream<CompleteMovieData>(json);
|
||||
}
|
||||
@@ -777,7 +790,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
cast = JsonSerializer.DeserializeFromStream<TmdbCastResult>(json);
|
||||
}
|
||||
@@ -803,7 +816,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
releases = JsonSerializer.DeserializeFromStream<TmdbReleasesResult>(json);
|
||||
}
|
||||
@@ -831,7 +844,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
images = JsonSerializer.DeserializeFromStream<TmdbImages>(json);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
using System;
|
||||
using System.IO;
|
||||
@@ -12,7 +13,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
/// </summary>
|
||||
public class MovieProviderFromJson : MovieDbProvider
|
||||
{
|
||||
public MovieProviderFromJson(IJsonSerializer jsonSerializer) : base(jsonSerializer)
|
||||
public MovieProviderFromJson(IHttpClient httpClient, IJsonSerializer jsonSerializer) : base(jsonSerializer, httpClient)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
using System;
|
||||
using System.IO;
|
||||
@@ -12,7 +13,8 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
/// </summary>
|
||||
class PersonProviderFromJson : TmdbPersonProvider
|
||||
{
|
||||
public PersonProviderFromJson(IJsonSerializer jsonSerializer) : base(jsonSerializer)
|
||||
public PersonProviderFromJson(IHttpClient httpClient, IJsonSerializer jsonSerializer)
|
||||
: base(httpClient, jsonSerializer)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Net;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
@@ -9,7 +11,6 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
|
||||
namespace MediaBrowser.Controller.Providers.Movies
|
||||
{
|
||||
@@ -29,18 +30,30 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
/// <value>The json serializer.</value>
|
||||
protected IJsonSerializer JsonSerializer { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="MovieDbProvider" /> class.
|
||||
/// </summary>
|
||||
/// <param name="httpClient">The HTTP client.</param>
|
||||
/// <param name="jsonSerializer">The json serializer.</param>
|
||||
/// <exception cref="System.ArgumentNullException">jsonSerializer</exception>
|
||||
public TmdbPersonProvider(IJsonSerializer jsonSerializer)
|
||||
public TmdbPersonProvider(IHttpClient httpClient, IJsonSerializer jsonSerializer)
|
||||
: base()
|
||||
{
|
||||
if (jsonSerializer == null)
|
||||
{
|
||||
throw new ArgumentNullException("jsonSerializer");
|
||||
}
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
HttpClient = httpClient;
|
||||
JsonSerializer = jsonSerializer;
|
||||
}
|
||||
|
||||
@@ -151,7 +164,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
searchResult = JsonSerializer.DeserializeFromStream<PersonSearchResults>(json);
|
||||
}
|
||||
@@ -177,7 +190,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
if (json != null)
|
||||
{
|
||||
@@ -240,7 +253,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream json = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (Stream json = await HttpClient.Get(url, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
if (json != null)
|
||||
{
|
||||
@@ -308,7 +321,7 @@ namespace MediaBrowser.Controller.Providers.Movies
|
||||
var localPath = Path.Combine(item.MetaLocation, targetName);
|
||||
if (!item.ResolveArgs.ContainsMetaFileByName(targetName))
|
||||
{
|
||||
using (var sourceStream = await Kernel.Instance.HttpManager.FetchToMemoryStream(source, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var sourceStream = await HttpClient.GetMemoryStream(source, Kernel.Instance.ResourcePools.MovieDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
await Kernel.Instance.FileSystemManager.SaveToLibraryFilesystem(item, localPath, sourceStream, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.IO;
|
||||
using MediaBrowser.Common.Kernel;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using System;
|
||||
@@ -33,16 +33,23 @@ namespace MediaBrowser.Controller.Providers
|
||||
/// The _logger
|
||||
/// </summary>
|
||||
private readonly ILogger _logger;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The _HTTP client
|
||||
/// </summary>
|
||||
private readonly IHttpClient _httpClient;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ProviderManager" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kernel">The kernel.</param>
|
||||
/// <param name="httpClient">The HTTP client.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
public ProviderManager(Kernel kernel, ILogger logger)
|
||||
public ProviderManager(Kernel kernel, IHttpClient httpClient, ILogger logger)
|
||||
: base(kernel)
|
||||
{
|
||||
_logger = logger;
|
||||
_httpClient = httpClient;
|
||||
_remoteImageCache = new FileSystemRepository(ImagesDataPath);
|
||||
}
|
||||
|
||||
@@ -287,7 +294,7 @@ namespace MediaBrowser.Controller.Providers
|
||||
Path.Combine(item.MetaLocation, targetName) :
|
||||
_remoteImageCache.GetResourcePath(item.GetType().FullName + item.Path.ToLower(), targetName);
|
||||
|
||||
var img = await Kernel.HttpManager.FetchToMemoryStream(source, resourcePool, cancellationToken).ConfigureAwait(false);
|
||||
var img = await _httpClient.GetMemoryStream(source, resourcePool, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
if (Kernel.Configuration.SaveLocalMeta) // queue to media directories
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Model.Entities;
|
||||
@@ -15,6 +16,22 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
{
|
||||
protected string FanArtBaseUrl = "http://api.fanart.tv/webservice/series/{0}/{1}/xml/all/1/1";
|
||||
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
public FanArtTVProvider(IHttpClient httpClient)
|
||||
: base()
|
||||
{
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
HttpClient = httpClient;
|
||||
}
|
||||
|
||||
public override bool Supports(BaseItem item)
|
||||
{
|
||||
return item is Series;
|
||||
@@ -36,7 +53,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
protected override async Task<bool> FetchAsyncInternal(BaseItem item, bool force, CancellationToken cancellationToken)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
var series = (Series)item;
|
||||
if (ShouldFetch(series, series.ProviderData.GetValueOrDefault(Id, new BaseProviderInfo { ProviderId = Id })))
|
||||
{
|
||||
@@ -46,7 +63,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var xml = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.FanArt, cancellationToken).ConfigureAwait(false))
|
||||
using (var xml = await HttpClient.Get(url, Kernel.Instance.ResourcePools.FanArt, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
doc.Load(xml);
|
||||
}
|
||||
@@ -56,7 +73,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
}
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
if (doc.HasChildNodes)
|
||||
{
|
||||
string path;
|
||||
@@ -83,7 +100,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
}
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
if (Kernel.Instance.Configuration.DownloadTVArt && !series.ResolveArgs.ContainsMetaFileByName(ART_FILE))
|
||||
{
|
||||
var node = doc.SelectSingleNode("//fanart/series/cleararts/clearart[@lang = \"" + language + "\"]/@url") ??
|
||||
@@ -107,7 +124,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
}
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
if (Kernel.Instance.Configuration.DownloadTVThumb && !series.ResolveArgs.ContainsMetaFileByName(THUMB_FILE))
|
||||
{
|
||||
var node = doc.SelectSingleNode("//fanart/series/tvthumbs/tvthumb[@lang = \"" + language + "\"]/@url") ??
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.Extensions;
|
||||
using MediaBrowser.Controller.Resolvers.TV;
|
||||
@@ -19,6 +20,21 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
/// </summary>
|
||||
class RemoteEpisodeProvider : BaseMetadataProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
public RemoteEpisodeProvider(IHttpClient httpClient)
|
||||
: base()
|
||||
{
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
HttpClient = httpClient;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The episode query
|
||||
@@ -171,7 +187,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var result = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var result = await HttpClient.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
doc.Load(result);
|
||||
}
|
||||
@@ -189,7 +205,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var result = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var result = await HttpClient.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
if (result != null) doc.Load(result);
|
||||
usingAbsoluteData = true;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.Resolvers.TV;
|
||||
using MediaBrowser.Model.Entities;
|
||||
@@ -17,6 +18,21 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
/// </summary>
|
||||
class RemoteSeasonProvider : BaseMetadataProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
public RemoteSeasonProvider(IHttpClient httpClient)
|
||||
: base()
|
||||
{
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
HttpClient = httpClient;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Supportses the specified item.
|
||||
@@ -82,7 +98,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
protected override async Task<bool> FetchAsyncInternal(BaseItem item, bool force, CancellationToken cancellationToken)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
var season = (Season)item;
|
||||
|
||||
if (!HasLocalMeta(item))
|
||||
@@ -135,7 +151,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var imgs = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var imgs = await HttpClient.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
images.Load(imgs);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.Extensions;
|
||||
@@ -21,6 +22,21 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
/// </summary>
|
||||
class RemoteSeriesProvider : BaseMetadataProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
public RemoteSeriesProvider(IHttpClient httpClient)
|
||||
: base()
|
||||
{
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
HttpClient = httpClient;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The root URL
|
||||
@@ -153,7 +169,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var xml = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var xml = await HttpClient.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
doc.Load(xml);
|
||||
}
|
||||
@@ -232,7 +248,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var actors = await Kernel.Instance.HttpManager.Get(urlActors, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var actors = await HttpClient.Get(urlActors, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
docActors.Load(actors);
|
||||
}
|
||||
@@ -299,7 +315,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var imgs = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var imgs = await HttpClient.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
images.Load(imgs);
|
||||
}
|
||||
@@ -446,7 +462,7 @@ namespace MediaBrowser.Controller.Providers.TV
|
||||
|
||||
try
|
||||
{
|
||||
using (var results = await Kernel.Instance.HttpManager.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
using (var results = await HttpClient.Get(url, Kernel.Instance.ResourcePools.TvDb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
doc.Load(results);
|
||||
}
|
||||
|
||||
@@ -113,16 +113,23 @@ namespace MediaBrowser.Controller.Updates
|
||||
/// <value>The json serializer.</value>
|
||||
protected IJsonSerializer JsonSerializer { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the HTTP client.
|
||||
/// </summary>
|
||||
/// <value>The HTTP client.</value>
|
||||
protected IHttpClient HttpClient { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="InstallationManager" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kernel">The kernel.</param>
|
||||
/// <param name="httpClient">The HTTP client.</param>
|
||||
/// <param name="zipClient">The zip client.</param>
|
||||
/// <param name="networkManager">The network manager.</param>
|
||||
/// <param name="jsonSerializer"></param>
|
||||
/// <param name="jsonSerializer">The json serializer.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
/// <exception cref="System.ArgumentNullException">zipClient</exception>
|
||||
public InstallationManager(Kernel kernel, IZipClient zipClient, INetworkManager networkManager, IJsonSerializer jsonSerializer, ILogger logger)
|
||||
public InstallationManager(Kernel kernel, IHttpClient httpClient, IZipClient zipClient, INetworkManager networkManager, IJsonSerializer jsonSerializer, ILogger logger)
|
||||
: base(kernel)
|
||||
{
|
||||
if (zipClient == null)
|
||||
@@ -141,9 +148,13 @@ namespace MediaBrowser.Controller.Updates
|
||||
{
|
||||
throw new ArgumentNullException("jsonSerializer");
|
||||
}
|
||||
if (httpClient == null)
|
||||
{
|
||||
throw new ArgumentNullException("httpClient");
|
||||
}
|
||||
|
||||
JsonSerializer = jsonSerializer;
|
||||
|
||||
HttpClient = httpClient;
|
||||
_networkManager = networkManager;
|
||||
_logger = logger;
|
||||
ZipClient = zipClient;
|
||||
@@ -162,7 +173,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
{
|
||||
var data = new Dictionary<string, string> { { "key", Kernel.PluginSecurityManager.SupporterKey }, { "mac", _networkManager.GetMacAddress() } };
|
||||
|
||||
using (var json = await Kernel.HttpManager.Post(Controller.Kernel.MBAdminUrl + "service/package/retrieveall", data, Kernel.ResourcePools.Mb, cancellationToken).ConfigureAwait(false))
|
||||
using (var json = await HttpClient.Post(Controller.Kernel.MBAdminUrl + "service/package/retrieveall", data, Kernel.ResourcePools.Mb, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
@@ -276,7 +287,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
/// <returns>Task{IEnumerable{PackageVersionInfo}}.</returns>
|
||||
public async Task<IEnumerable<PackageVersionInfo>> GetAvailablePluginUpdates(bool withAutoUpdateEnabled, CancellationToken cancellationToken)
|
||||
{
|
||||
var catalog = await Kernel.InstallationManager.GetAvailablePackages(cancellationToken).ConfigureAwait(false);
|
||||
var catalog = await GetAvailablePackages(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
var plugins = Kernel.Plugins;
|
||||
|
||||
@@ -288,7 +299,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
// Figure out what needs to be installed
|
||||
return plugins.Select(p =>
|
||||
{
|
||||
var latestPluginInfo = Kernel.InstallationManager.GetLatestCompatibleVersion(catalog, p.Name, p.Configuration.UpdateClass);
|
||||
var latestPluginInfo = GetLatestCompatibleVersion(catalog, p.Name, p.Configuration.UpdateClass);
|
||||
|
||||
return latestPluginInfo != null && latestPluginInfo.version > p.Version ? latestPluginInfo : null;
|
||||
|
||||
@@ -414,7 +425,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
var target = isArchive ? Kernel.ApplicationPaths.ProgramDataPath : Path.Combine(Kernel.ApplicationPaths.PluginsPath, package.targetFilename);
|
||||
|
||||
// Download to temporary file so that, if interrupted, it won't destroy the existing installation
|
||||
var tempFile = await Kernel.HttpManager.FetchToTempFile(package.sourceUrl, Kernel.ResourcePools.Mb, cancellationToken, progress).ConfigureAwait(false);
|
||||
var tempFile = await HttpClient.GetTempFile(package.sourceUrl, Kernel.ResourcePools.Mb, cancellationToken, progress).ConfigureAwait(false);
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user