aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-02-24 19:13:45 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-02-24 19:13:45 -0500
commit28ccfb1bd17eceb683d428d1c0e2d2ea52a2f7ff (patch)
treee5dccabace19f632c185781c4501d488c7dc7fae
parent5b1eea558a55b9a46e556b795189425441b4a026 (diff)
extracted httpclient dependancy
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationPaths.cs5
-rw-r--r--MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj6
-rw-r--r--MediaBrowser.Common/Kernel/BaseKernel.cs22
-rw-r--r--MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs1
-rw-r--r--MediaBrowser.Common/Kernel/TcpManager.cs3
-rw-r--r--MediaBrowser.Common/MediaBrowser.Common.csproj7
-rw-r--r--MediaBrowser.Common/Net/IHttpClient.cs61
-rw-r--r--MediaBrowser.Common/Net/INetworkManager.cs2
-rw-r--r--MediaBrowser.Common/Net/IWebSocket.cs1
-rw-r--r--MediaBrowser.Common/Net/MimeTypes.cs2
-rw-r--r--MediaBrowser.Common/Net/WebSocketConnectEventArgs.cs1
-rw-r--r--MediaBrowser.Common/Net/WebSocketConnection.cs5
-rw-r--r--MediaBrowser.Common/Net/WebSocketMessageType.cs22
-rw-r--r--MediaBrowser.Common/Net/WebSocketState.cs38
-rw-r--r--MediaBrowser.Common/ScheduledTasks/ScheduledTaskHelpers.cs3
-rw-r--r--MediaBrowser.Controller/Plugins/PluginSecurityManager.cs5
-rw-r--r--MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs27
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs45
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs5
-rw-r--r--MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs6
-rw-r--r--MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs27
-rw-r--r--MediaBrowser.Controller/Providers/ProviderManager.cs15
-rw-r--r--MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs27
-rw-r--r--MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs22
-rw-r--r--MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs22
-rw-r--r--MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs24
-rw-r--r--MediaBrowser.Controller/Updates/InstallationManager.cs25
-rw-r--r--MediaBrowser.Networking/HttpManager/HttpManager.cs (renamed from MediaBrowser.Common/Net/HttpManager.cs)29
-rw-r--r--MediaBrowser.Networking/HttpServer/HttpServer.cs (renamed from MediaBrowser.Networking/Web/HttpServer.cs)2
-rw-r--r--MediaBrowser.Networking/HttpServer/NativeWebSocket.cs (renamed from MediaBrowser.Networking/Web/NativeWebSocket.cs)32
-rw-r--r--MediaBrowser.Networking/HttpServer/ServerFactory.cs (renamed from MediaBrowser.Networking/Web/ServerFactory.cs)2
-rw-r--r--MediaBrowser.Networking/MediaBrowser.Networking.csproj11
-rw-r--r--MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs1
-rw-r--r--MediaBrowser.Server.Implementations/WorldWeatherOnline/WeatherProvider.cs18
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs25
-rw-r--r--MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj9
-rw-r--r--Nuget/MediaBrowser.ApiClient.nuspec6
-rw-r--r--Nuget/MediaBrowser.Common.Internal.nuspec13
-rw-r--r--Nuget/MediaBrowser.Common.nuspec2
-rw-r--r--Nuget/MediaBrowser.Server.Core.nuspec4
40 files changed, 412 insertions, 171 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs b/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs
index 93478b22c..f38013d00 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs
@@ -1,4 +1,5 @@
-using System;
+using MediaBrowser.Common.Kernel;
+using System;
using System.Configuration;
using System.IO;
using System.Reflection;
@@ -9,7 +10,7 @@ namespace MediaBrowser.Common.Implementations
/// Provides a base class to hold common application paths used by both the Ui and Server.
/// This can be subclassed to add application-specific paths.
/// </summary>
- public abstract class BaseApplicationPaths
+ public abstract class BaseApplicationPaths : IApplicationPaths
{
/// <summary>
/// The _program data path
diff --git a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
index d271db060..736a15d42 100644
--- a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
+++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
@@ -31,6 +31,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup>
+ <RunPostBuildEvent>Always</RunPostBuildEvent>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="protobuf-net">
<HintPath>..\packages\protobuf-net.2.0.0.621\lib\net40\protobuf-net.dll</HintPath>
@@ -77,6 +80,9 @@
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
+ <PropertyGroup>
+ <PostBuildEvent>xcopy "$(TargetPath)" "$(SolutionDir)\Nuget\dlls\" /y /d /r /i</PostBuildEvent>
+ </PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs
index a5a9b46ec..50dca1e4c 100644
--- a/MediaBrowser.Common/Kernel/BaseKernel.cs
+++ b/MediaBrowser.Common/Kernel/BaseKernel.cs
@@ -172,12 +172,6 @@ namespace MediaBrowser.Common.Kernel
public IEnumerable<IWebSocketListener> WebSocketListeners { get; private set; }
/// <summary>
- /// The _HTTP manager
- /// </summary>
- /// <value>The HTTP manager.</value>
- public HttpManager HttpManager { get; private set; }
-
- /// <summary>
/// Gets or sets the TCP manager.
/// </summary>
/// <value>The TCP manager.</value>
@@ -323,9 +317,6 @@ namespace MediaBrowser.Common.Kernel
Logger.Info("Version {0} initializing", ApplicationVersion);
- DisposeHttpManager();
- HttpManager = new HttpManager(this, Logger);
-
await OnConfigurationLoaded().ConfigureAwait(false);
FindParts();
@@ -422,7 +413,6 @@ namespace MediaBrowser.Common.Kernel
if (dispose)
{
DisposeTcpManager();
- DisposeHttpManager();
}
}
@@ -439,18 +429,6 @@ namespace MediaBrowser.Common.Kernel
}
/// <summary>
- /// Disposes the HTTP manager.
- /// </summary>
- private void DisposeHttpManager()
- {
- if (HttpManager != null)
- {
- HttpManager.Dispose();
- HttpManager = null;
- }
- }
-
- /// <summary>
/// Gets the current application version
/// </summary>
/// <value>The application version.</value>
diff --git a/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs b/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs
index 0f20758d4..5374bb714 100644
--- a/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs
+++ b/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs
@@ -3,7 +3,6 @@ using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
diff --git a/MediaBrowser.Common/Kernel/TcpManager.cs b/MediaBrowser.Common/Kernel/TcpManager.cs
index c04b77599..6ea390904 100644
--- a/MediaBrowser.Common/Kernel/TcpManager.cs
+++ b/MediaBrowser.Common/Kernel/TcpManager.cs
@@ -8,7 +8,6 @@ using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
-using System.Net.WebSockets;
using System.Reflection;
using System.Text;
using System.Threading;
@@ -39,7 +38,7 @@ namespace MediaBrowser.Common.Kernel
/// Gets or sets the json serializer.
/// </summary>
/// <value>The json serializer.</value>
- private IJsonSerializer _jsonSerializer;
+ private readonly IJsonSerializer _jsonSerializer;
/// <summary>
/// This subscribes to HttpListener requests and finds the appropriate BaseHandler to process it
diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj
index f9147141d..dd73e8877 100644
--- a/MediaBrowser.Common/MediaBrowser.Common.csproj
+++ b/MediaBrowser.Common/MediaBrowser.Common.csproj
@@ -72,9 +72,6 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
- <Reference Include="System.Net" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Web" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
@@ -102,7 +99,7 @@
<Compile Include="Net\Handlers\BaseActionHandler.cs" />
<Compile Include="Net\Handlers\IHttpServerHandler.cs" />
<Compile Include="Net\Handlers\StaticFileHandler.cs" />
- <Compile Include="Net\HttpManager.cs" />
+ <Compile Include="Net\IHttpClient.cs" />
<Compile Include="Net\IHttpServer.cs" />
<Compile Include="Net\INetworkManager.cs" />
<Compile Include="Net\IRestfulService.cs" />
@@ -113,6 +110,8 @@
<Compile Include="Net\UdpMessageReceivedEventArgs.cs" />
<Compile Include="Net\WebSocketConnectEventArgs.cs" />
<Compile Include="Net\WebSocketConnection.cs" />
+ <Compile Include="Net\WebSocketMessageType.cs" />
+ <Compile Include="Net\WebSocketState.cs" />
<Compile Include="Plugins\BaseUiPlugin.cs" />
<Compile Include="Plugins\IPlugin.cs" />
<Compile Include="Plugins\IUIPlugin.cs" />
diff --git a/MediaBrowser.Common/Net/IHttpClient.cs b/MediaBrowser.Common/Net/IHttpClient.cs
new file mode 100644
index 000000000..ef0dd69b7
--- /dev/null
+++ b/MediaBrowser.Common/Net/IHttpClient.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Common.Net
+{
+ public interface IHttpClient : IDisposable
+ {
+ /// <summary>
+ /// Performs a GET request and returns the resulting stream
+ /// </summary>
+ /// <param name="url">The URL.</param>
+ /// <param name="resourcePool">The resource pool.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{Stream}.</returns>
+ /// <exception cref="MediaBrowser.Model.Net.HttpException"></exception>
+ Task<Stream> Get(string url, SemaphoreSlim resourcePool, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Performs a POST request
+ /// </summary>
+ /// <param name="url">The URL.</param>
+ /// <param name="postData">Params to add to the POST data.</param>
+ /// <param name="resourcePool">The resource pool.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>stream on success, null on failure</returns>
+ /// <exception cref="System.ArgumentNullException">postData</exception>
+ /// <exception cref="MediaBrowser.Model.Net.HttpException"></exception>
+ Task<Stream> Post(string url, Dictionary<string, string> postData, SemaphoreSlim resourcePool, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Downloads the contents of a given url into a temporary location
+ /// </summary>
+ /// <param name="url">The URL.</param>
+ /// <param name="resourcePool">The resource pool.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <param name="progress">The progress.</param>
+ /// <param name="userAgent">The user agent.</param>
+ /// <returns>Task{System.String}.</returns>
+ /// <exception cref="System.ArgumentNullException">progress</exception>
+ /// <exception cref="MediaBrowser.Model.Net.HttpException"></exception>
+ Task<string> GetTempFile(string url, SemaphoreSlim resourcePool, CancellationToken cancellationToken, IProgress<double> progress, string userAgent = null);
+
+ /// <summary>
+ /// Downloads the contents of a given url into a MemoryStream
+ /// </summary>
+ /// <param name="url">The URL.</param>
+ /// <param name="resourcePool">The resource pool.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{MemoryStream}.</returns>
+ /// <exception cref="MediaBrowser.Model.Net.HttpException"></exception>
+ Task<MemoryStream> GetMemoryStream(string url, SemaphoreSlim resourcePool, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+ /// </summary>
+ void Dispose();
+ }
+} \ No newline at end of file
diff --git a/MediaBrowser.Common/Net/INetworkManager.cs b/MediaBrowser.Common/Net/INetworkManager.cs
index 7f6bfe152..782855cd1 100644
--- a/MediaBrowser.Common/Net/INetworkManager.cs
+++ b/MediaBrowser.Common/Net/INetworkManager.cs
@@ -1,5 +1,5 @@
-using System.Collections.Generic;
using MediaBrowser.Model.Net;
+using System.Collections.Generic;
namespace MediaBrowser.Common.Net
{
diff --git a/MediaBrowser.Common/Net/IWebSocket.cs b/MediaBrowser.Common/Net/IWebSocket.cs
index 3fd4b1241..9c9bcb41d 100644
--- a/MediaBrowser.Common/Net/IWebSocket.cs
+++ b/MediaBrowser.Common/Net/IWebSocket.cs
@@ -1,5 +1,4 @@
using System;
-using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
diff --git a/MediaBrowser.Common/Net/MimeTypes.cs b/MediaBrowser.Common/Net/MimeTypes.cs
index 8f980200e..b9d0347d7 100644
--- a/MediaBrowser.Common/Net/MimeTypes.cs
+++ b/MediaBrowser.Common/Net/MimeTypes.cs
@@ -200,7 +200,7 @@ namespace MediaBrowser.Common.Net
return "image/svg+xml";
}
- throw new InvalidOperationException("Argument not supported: " + path);
+ throw new ArgumentException("Argument not supported: " + path);
}
}
}
diff --git a/MediaBrowser.Common/Net/WebSocketConnectEventArgs.cs b/MediaBrowser.Common/Net/WebSocketConnectEventArgs.cs
index 711da7a50..ce22c9520 100644
--- a/MediaBrowser.Common/Net/WebSocketConnectEventArgs.cs
+++ b/MediaBrowser.Common/Net/WebSocketConnectEventArgs.cs
@@ -1,5 +1,4 @@
using System;
-using System.Net;
namespace MediaBrowser.Common.Net
{
diff --git a/MediaBrowser.Common/Net/WebSocketConnection.cs b/MediaBrowser.Common/Net/WebSocketConnection.cs
index 6b22ef78e..36d649e3b 100644
--- a/MediaBrowser.Common/Net/WebSocketConnection.cs
+++ b/MediaBrowser.Common/Net/WebSocketConnection.cs
@@ -1,8 +1,7 @@
-using System.IO;
-using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Serialization;
using System;
-using System.Net.WebSockets;
+using System.IO;
using System.Threading;
using System.Threading.Tasks;
diff --git a/MediaBrowser.Common/Net/WebSocketMessageType.cs b/MediaBrowser.Common/Net/WebSocketMessageType.cs
new file mode 100644
index 000000000..3b12bc2b2
--- /dev/null
+++ b/MediaBrowser.Common/Net/WebSocketMessageType.cs
@@ -0,0 +1,22 @@
+
+namespace MediaBrowser.Common.Net
+{
+ /// <summary>
+ /// Enum WebSocketMessageType
+ /// </summary>
+ public enum WebSocketMessageType
+ {
+ /// <summary>
+ /// The text
+ /// </summary>
+ Text,
+ /// <summary>
+ /// The binary
+ /// </summary>
+ Binary,
+ /// <summary>
+ /// The close
+ /// </summary>
+ Close,
+ }
+}
diff --git a/MediaBrowser.Common/Net/WebSocketState.cs b/MediaBrowser.Common/Net/WebSocketState.cs
new file mode 100644
index 000000000..7f8ac3cbe
--- /dev/null
+++ b/MediaBrowser.Common/Net/WebSocketState.cs
@@ -0,0 +1,38 @@
+
+namespace MediaBrowser.Common.Net
+{
+ /// <summary>
+ /// Enum WebSocketState
+ /// </summary>
+ public enum WebSocketState
+ {
+ /// <summary>
+ /// The none
+ /// </summary>
+ None,
+ /// <summary>
+ /// The connecting
+ /// </summary>
+ Connecting,
+ /// <summary>
+ /// The open
+ /// </summary>
+ Open,
+ /// <summary>
+ /// The close sent
+ /// </summary>
+ CloseSent,
+ /// <summary>
+ /// The close received
+ /// </summary>
+ CloseReceived,
+ /// <summary>
+ /// The closed
+ /// </summary>
+ Closed,
+ /// <summary>
+ /// The aborted
+ /// </summary>
+ Aborted
+ }
+}
diff --git a/MediaBrowser.Common/ScheduledTasks/ScheduledTaskHelpers.cs b/MediaBrowser.Common/ScheduledTasks/ScheduledTaskHelpers.cs
index e67eb3626..2c3d21a4b 100644
--- a/MediaBrowser.Common/ScheduledTasks/ScheduledTaskHelpers.cs
+++ b/MediaBrowser.Common/ScheduledTasks/ScheduledTaskHelpers.cs
@@ -1,5 +1,4 @@
-using MediaBrowser.Common.Kernel;
-using MediaBrowser.Model.Tasks;
+using MediaBrowser.Model.Tasks;
using System;
using System.Linq;
diff --git a/MediaBrowser.Controller/Plugins/PluginSecurityManager.cs b/MediaBrowser.Controller/Plugins/PluginSecurityManager.cs
index 9accef621..a08eb457d 100644
--- a/MediaBrowser.Controller/Plugins/PluginSecurityManager.cs
+++ b/MediaBrowser.Controller/Plugins/PluginSecurityManager.cs
@@ -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.
diff --git a/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs b/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs
index e833e4931..0a0b1110a 100644
--- a/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs
+++ b/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs
@@ -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;
@@ -17,6 +18,22 @@ namespace MediaBrowser.Controller.Providers.Movies
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>
protected string FanArtBaseUrl = "http://api.fanart.tv/webservice/movie/{0}/{1}/xml/all/1/1";
@@ -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") ??
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
index bc261de6d..9bd28d1ad 100644
--- a/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
+++ b/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
@@ -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;
@@ -37,18 +38,30 @@ namespace MediaBrowser.Controller.Providers.Movies
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);
}
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs
index 5de17aab0..6b83c861e 100644
--- a/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs
+++ b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs
@@ -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)
{
}
diff --git a/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs b/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs
index 7517ec65c..f87af5a1f 100644
--- a/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs
+++ b/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs
@@ -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)
{
}
diff --git a/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs b/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs
index 32013614c..2e1ca8d04 100644
--- a/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs
+++ b/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs
@@ -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
{
@@ -30,17 +31,29 @@ namespace MediaBrowser.Controller.Providers.Movies
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);
diff --git a/MediaBrowser.Controller/Providers/ProviderManager.cs b/MediaBrowser.Controller/Providers/ProviderManager.cs
index c5e70dfae..0f7198756 100644
--- a/MediaBrowser.Controller/Providers/ProviderManager.cs
+++ b/MediaBrowser.Controller/Providers/ProviderManager.cs
@@ -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
{
diff --git a/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs b/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs
index 05ab172a8..8d5c2e0c7 100644
--- a/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs
@@ -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") ??
diff --git a/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs b/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs
index b06598114..a31520c9d 100644
--- a/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs
@@ -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;
diff --git a/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs b/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs
index 3e7f6b1a2..72468c24a 100644
--- a/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs
@@ -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);
}
diff --git a/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs b/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
index b8941dbba..c05e9c5e6 100644
--- a/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
@@ -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);
}
diff --git a/MediaBrowser.Controller/Updates/InstallationManager.cs b/MediaBrowser.Controller/Updates/InstallationManager.cs
index af544dd51..15d626b2f 100644
--- a/MediaBrowser.Controller/Updates/InstallationManager.cs
+++ b/MediaBrowser.Controller/Updates/InstallationManager.cs
@@ -114,15 +114,22 @@ namespace MediaBrowser.Controller.Updates
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();
diff --git a/MediaBrowser.Common/Net/HttpManager.cs b/MediaBrowser.Networking/HttpManager/HttpManager.cs
index 180843e0f..2f44fa74b 100644
--- a/MediaBrowser.Common/Net/HttpManager.cs
+++ b/MediaBrowser.Networking/HttpManager/HttpManager.cs
@@ -1,5 +1,6 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Kernel;
+using MediaBrowser.Common.Net;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Net;
using System;
@@ -14,12 +15,12 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
-namespace MediaBrowser.Common.Net
+namespace MediaBrowser.Networking.HttpManager
{
/// <summary>
/// Class HttpManager
/// </summary>
- public class HttpManager : IDisposable
+ public class HttpManager : IHttpClient
{
/// <summary>
/// The _logger
@@ -27,20 +28,20 @@ namespace MediaBrowser.Common.Net
private readonly ILogger _logger;
/// <summary>
- /// The _kernel
+ /// The _app paths
/// </summary>
- private readonly IKernel _kernel;
+ private readonly IApplicationPaths _appPaths;
/// <summary>
/// Initializes a new instance of the <see cref="HttpManager" /> class.
/// </summary>
- /// <param name="kernel">The kernel.</param>
+ /// <param name="appPaths">The kernel.</param>
/// <param name="logger">The logger.</param>
- public HttpManager(IKernel kernel, ILogger logger)
+ public HttpManager(IApplicationPaths appPaths, ILogger logger)
{
- if (kernel == null)
+ if (appPaths == null)
{
- throw new ArgumentNullException("kernel");
+ throw new ArgumentNullException("appPaths");
}
if (logger == null)
{
@@ -48,7 +49,7 @@ namespace MediaBrowser.Common.Net
}
_logger = logger;
- _kernel = kernel;
+ _appPaths = appPaths;
}
/// <summary>
@@ -199,7 +200,7 @@ namespace MediaBrowser.Common.Net
/// <returns>Task{System.String}.</returns>
/// <exception cref="System.ArgumentNullException">progress</exception>
/// <exception cref="MediaBrowser.Model.Net.HttpException"></exception>
- public async Task<string> FetchToTempFile(string url, SemaphoreSlim resourcePool, CancellationToken cancellationToken, IProgress<double> progress, string userAgent = null)
+ public async Task<string> GetTempFile(string url, SemaphoreSlim resourcePool, CancellationToken cancellationToken, IProgress<double> progress, string userAgent = null)
{
ValidateParams(url, resourcePool, cancellationToken);
@@ -210,7 +211,7 @@ namespace MediaBrowser.Common.Net
cancellationToken.ThrowIfCancellationRequested();
- var tempFile = Path.Combine(_kernel.ApplicationPaths.TempDirectory, Guid.NewGuid() + ".tmp");
+ var tempFile = Path.Combine(_appPaths.TempDirectory, Guid.NewGuid() + ".tmp");
var message = new HttpRequestMessage(HttpMethod.Get, url);
@@ -221,7 +222,7 @@ namespace MediaBrowser.Common.Net
await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
- _logger.Info("HttpManager.FetchToTempFile url: {0}, temp file: {1}", url, tempFile);
+ _logger.Info("HttpManager.GetTempFile url: {0}, temp file: {1}", url, tempFile);
try
{
@@ -315,7 +316,7 @@ namespace MediaBrowser.Common.Net
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{MemoryStream}.</returns>
/// <exception cref="MediaBrowser.Model.Net.HttpException"></exception>
- public async Task<MemoryStream> FetchToMemoryStream(string url, SemaphoreSlim resourcePool, CancellationToken cancellationToken)
+ public async Task<MemoryStream> GetMemoryStream(string url, SemaphoreSlim resourcePool, CancellationToken cancellationToken)
{
ValidateParams(url, resourcePool, cancellationToken);
@@ -327,7 +328,7 @@ namespace MediaBrowser.Common.Net
var ms = new MemoryStream();
- _logger.Info("HttpManager.FetchToMemoryStream url: {0}", url);
+ _logger.Info("HttpManager.GetMemoryStream url: {0}", url);
try
{
diff --git a/MediaBrowser.Networking/Web/HttpServer.cs b/MediaBrowser.Networking/HttpServer/HttpServer.cs
index ab4b8558f..b6250527d 100644
--- a/MediaBrowser.Networking/Web/HttpServer.cs
+++ b/MediaBrowser.Networking/HttpServer/HttpServer.cs
@@ -25,7 +25,7 @@ using System.Reflection;
using System.Text;
using System.Threading.Tasks;
-namespace MediaBrowser.Networking.Web
+namespace MediaBrowser.Networking.HttpServer
{
/// <summary>
/// Class HttpServer
diff --git a/MediaBrowser.Networking/Web/NativeWebSocket.cs b/MediaBrowser.Networking/HttpServer/NativeWebSocket.cs
index ad28d1a7f..84d163be8 100644
--- a/MediaBrowser.Networking/Web/NativeWebSocket.cs
+++ b/MediaBrowser.Networking/HttpServer/NativeWebSocket.cs
@@ -1,10 +1,13 @@
-using MediaBrowser.Model.Logging;
+using MediaBrowser.Common.Net;
+using MediaBrowser.Model.Logging;
using System;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
+using WebSocketMessageType = MediaBrowser.Common.Net.WebSocketMessageType;
+using WebSocketState = MediaBrowser.Common.Net.WebSocketState;
-namespace MediaBrowser.Common.Net
+namespace MediaBrowser.Networking.HttpServer
{
/// <summary>
/// Class NativeWebSocket
@@ -20,7 +23,7 @@ namespace MediaBrowser.Common.Net
/// Gets or sets the web socket.
/// </summary>
/// <value>The web socket.</value>
- private WebSocket WebSocket { get; set; }
+ private System.Net.WebSockets.WebSocket WebSocket { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="NativeWebSocket" /> class.
@@ -28,7 +31,7 @@ namespace MediaBrowser.Common.Net
/// <param name="socket">The socket.</param>
/// <param name="logger">The logger.</param>
/// <exception cref="System.ArgumentNullException">socket</exception>
- public NativeWebSocket(WebSocket socket, ILogger logger)
+ public NativeWebSocket(System.Net.WebSockets.WebSocket socket, ILogger logger)
{
if (socket == null)
{
@@ -52,7 +55,17 @@ namespace MediaBrowser.Common.Net
/// <value>The state.</value>
public WebSocketState State
{
- get { return WebSocket.State; }
+ get
+ {
+ WebSocketState commonState;
+
+ if (!Enum.TryParse(WebSocket.State.ToString(), true, out commonState))
+ {
+ _logger.Warn("Unrecognized WebSocketState: {0}", WebSocket.State.ToString());
+ }
+
+ return commonState;
+ }
}
/// <summary>
@@ -113,7 +126,14 @@ namespace MediaBrowser.Common.Net
/// <returns>Task.</returns>
public Task SendAsync(byte[] bytes, WebSocketMessageType type, bool endOfMessage, CancellationToken cancellationToken)
{
- return WebSocket.SendAsync(new ArraySegment<byte>(bytes), type, true, cancellationToken);
+ System.Net.WebSockets.WebSocketMessageType nativeType;
+
+ if (!Enum.TryParse(type.ToString(), true, out nativeType))
+ {
+ _logger.Warn("Unrecognized WebSocketMessageType: {0}", type.ToString());
+ }
+
+ return WebSocket.SendAsync(new ArraySegment<byte>(bytes), nativeType, true, cancellationToken);
}
/// <summary>
diff --git a/MediaBrowser.Networking/Web/ServerFactory.cs b/MediaBrowser.Networking/HttpServer/ServerFactory.cs
index b93f2ca1c..e853a6ec2 100644
--- a/MediaBrowser.Networking/Web/ServerFactory.cs
+++ b/MediaBrowser.Networking/HttpServer/ServerFactory.cs
@@ -3,7 +3,7 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Serialization;
-namespace MediaBrowser.Networking.Web
+namespace MediaBrowser.Networking.HttpServer
{
/// <summary>
/// Class ServerFactory
diff --git a/MediaBrowser.Networking/MediaBrowser.Networking.csproj b/MediaBrowser.Networking/MediaBrowser.Networking.csproj
index 41fd6ceab..cf5da4659 100644
--- a/MediaBrowser.Networking/MediaBrowser.Networking.csproj
+++ b/MediaBrowser.Networking/MediaBrowser.Networking.csproj
@@ -81,6 +81,9 @@
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
+ <Reference Include="System.Net" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reactive.Core, Version=2.0.20823.0, Culture=neutral, PublicKeyToken=f300afd708cefcd3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Rx-Core.2.0.21114\lib\Net45\System.Reactive.Core.dll</HintPath>
@@ -104,16 +107,17 @@
<Compile Include="..\SharedVersion.cs">
<Link>Properties\SharedVersion.cs</Link>
</Compile>
+ <Compile Include="HttpManager\HttpManager.cs" />
<Compile Include="Udp\UdpServer.cs" />
<Compile Include="WebSocket\AlchemyServer.cs" />
<Compile Include="WebSocket\AlchemyWebSocket.cs" />
- <Compile Include="Web\HttpServer.cs" />
+ <Compile Include="HttpServer\HttpServer.cs" />
<Compile Include="Management\NativeMethods.cs" />
<Compile Include="Management\NetworkManager.cs" />
<Compile Include="Management\NetworkShares.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Web\ServerFactory.cs" />
- <Compile Include="Web\NativeWebSocket.cs" />
+ <Compile Include="HttpServer\ServerFactory.cs" />
+ <Compile Include="HttpServer\NativeWebSocket.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
@@ -145,6 +149,7 @@
<Content Include="swagger-ui\swagger-ui.js" />
<Content Include="swagger-ui\swagger-ui.min.js" />
</ItemGroup>
+ <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>xcopy "$(TargetPath)" "$(SolutionDir)\Nuget\dlls\" /y /d /r /i</PostBuildEvent>
diff --git a/MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs b/MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs
index 5eca1a78c..c8ab58ca4 100644
--- a/MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs
+++ b/MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Common.Net;
using MediaBrowser.Model.Logging;
using System;
-using System.Net.WebSockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
diff --git a/MediaBrowser.Server.Implementations/WorldWeatherOnline/WeatherProvider.cs b/MediaBrowser.Server.Implementations/WorldWeatherOnline/WeatherProvider.cs
index 1b75a58b8..39ac203fc 100644
--- a/MediaBrowser.Server.Implementations/WorldWeatherOnline/WeatherProvider.cs
+++ b/MediaBrowser.Server.Implementations/WorldWeatherOnline/WeatherProvider.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller;
+using MediaBrowser.Common.Net;
+using MediaBrowser.Controller;
using MediaBrowser.Controller.Weather;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Serialization;
@@ -29,24 +30,33 @@ namespace MediaBrowser.Server.Implementations.WorldWeatherOnline
protected IJsonSerializer JsonSerializer { get; private set; }
/// <summary>
+ /// The _HTTP client
+ /// </summary>
+ private IHttpClient HttpClient { get; set; }
+
+ /// <summary>
/// Initializes a new instance of the <see cref="WeatherProvider" /> class.
/// </summary>
/// <param name="jsonSerializer">The json serializer.</param>
/// <param name="logger">The logger.</param>
/// <exception cref="System.ArgumentNullException">logger</exception>
- public WeatherProvider(IJsonSerializer jsonSerializer, ILogger logger)
+ public WeatherProvider(IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogger logger)
{
if (logger == null)
{
throw new ArgumentNullException("logger");
}
-
+ if (httpClient == null)
+ {
+ throw new ArgumentNullException("httpClient");
+ }
if (jsonSerializer == null)
{
throw new ArgumentNullException("jsonSerializer");
}
JsonSerializer = jsonSerializer;
+ HttpClient = httpClient;
Logger = logger;
}
@@ -81,7 +91,7 @@ namespace MediaBrowser.Server.Implementations.WorldWeatherOnline
Logger.Info("Accessing weather from " + url);
- using (var stream = await Kernel.Instance.HttpManager.Get(url, _weatherSemaphore, cancellationToken).ConfigureAwait(false))
+ using (var stream = await HttpClient.Get(url, _weatherSemaphore, cancellationToken).ConfigureAwait(false))
{
var data = JsonSerializer.DeserializeFromStream<WeatherResult>(stream).data;
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index 40e190756..88eb1c7e1 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -15,9 +15,10 @@ using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.System;
using MediaBrowser.Model.Updates;
+using MediaBrowser.Networking.HttpManager;
+using MediaBrowser.Networking.HttpServer;
using MediaBrowser.Networking.Management;
using MediaBrowser.Networking.Udp;
-using MediaBrowser.Networking.Web;
using MediaBrowser.Networking.WebSocket;
using MediaBrowser.Server.Implementations;
using MediaBrowser.ServerApplication.Implementations;
@@ -45,12 +46,6 @@ namespace MediaBrowser.ServerApplication
private ILogger Logger { get; set; }
/// <summary>
- /// Gets or sets the iso manager.
- /// </summary>
- /// <value>The iso manager.</value>
- private IIsoManager IsoManager { get; set; }
-
- /// <summary>
/// Gets or sets the log file path.
/// </summary>
/// <value>The log file path.</value>
@@ -143,14 +138,12 @@ namespace MediaBrowser.ServerApplication
RegisterSingleInstance<IApplicationHost>(this);
RegisterSingleInstance(Logger);
- IsoManager = new PismoIsoManager(Logger);
-
RegisterSingleInstance(_applicationPaths);
RegisterSingleInstance<IApplicationPaths>(_applicationPaths);
-
- RegisterSingleInstance(IsoManager);
RegisterSingleInstance(_taskManager);
+ RegisterSingleInstance<IIsoManager>(() => new PismoIsoManager(Logger));
RegisterSingleInstance<IBlurayExaminer>(() => new BdInfoExaminer());
+ RegisterSingleInstance<IHttpClient>(() => new HttpManager(_applicationPaths, Logger));
RegisterSingleInstance<INetworkManager>(() => new NetworkManager());
RegisterSingleInstance<IZipClient>(() => new DotNetZipClient());
RegisterSingleInstance<IWebSocketServer>(() => new AlchemyServer(Logger));
@@ -477,8 +470,6 @@ namespace MediaBrowser.ServerApplication
/// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
protected virtual void Dispose(bool dispose)
{
- IsoManager.Dispose();
-
foreach (var part in _disposableParts)
{
part.Dispose();
@@ -487,12 +478,4 @@ namespace MediaBrowser.ServerApplication
_disposableParts.Clear();
}
}
-
- public class MyClass
- {
- public MyClass()
- {
-
- }
- }
}
diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
index 8a3a0b7af..c843242c3 100644
--- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
+++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
@@ -367,15 +367,6 @@
<Content Include="CorePlugins\MediaBrowser.Api.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
- <Content Include="CorePlugins\MediaBrowser.ApiInteraction.Javascript.dll">
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </Content>
- <Content Include="CorePlugins\MediaBrowser.Server.Sqlite.dll">
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </Content>
- <Content Include="CorePlugins\MediaBrowser.Server.WorldWeatherOnline.dll">
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </Content>
<Content Include="CorePlugins\MediaBrowser.WebDashboard.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
diff --git a/Nuget/MediaBrowser.ApiClient.nuspec b/Nuget/MediaBrowser.ApiClient.nuspec
index bcb9a7d07..f889230a5 100644
--- a/Nuget/MediaBrowser.ApiClient.nuspec
+++ b/Nuget/MediaBrowser.ApiClient.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>MediaBrowser.ApiClient</id>
- <version>3.0.0.2-beta</version>
+ <version>3.0.0.4-beta</version>
<title>MediaBrowser.ApiClient</title>
<authors>Media Browser Team</authors>
<owners>scottisafool,Luke</owners>
@@ -12,13 +12,13 @@
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="ServiceStack.Text" version="3.9.37" />
- <dependency id="protobuf-net" version="2.0.0.621" />
+ <dependency id="protobuf-net" version="2.0.0.621" />
</group>
<group targetFramework=".NETPortable0.0-net45+sl4+wp71+win8">
<dependency id="Newtonsoft.Json" version="4.5.11" />
<dependency id="Microsoft.Bcl.Async" version="1.0.14-rc" />
<dependency id="Microsoft.Net.Http" version="2.1.3-beta" />
- <dependency id="protobuf-net" version="2.0.0.621" />
+ <dependency id="protobuf-net" version="2.0.0.621" />
</group>
</dependencies>
</metadata>
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index 9e431b767..8f1d5f259 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common.Internal</id>
- <version>3.0.1</version>
+ <version>3.0.4</version>
<title />
<authors>Luke</authors>
<owners>Media Browser Team</owners>
@@ -15,10 +15,11 @@
</dependencies>
</metadata>
<files>
- <file src="lib\net45\MediaBrowser.ClickOnce.dll" target="lib\net45\MediaBrowser.ClickOnce.dll" />
- <file src="lib\net45\MediaBrowser.IsoMounter.dll" target="lib\net45\MediaBrowser.IsoMounter.dll" />
- <file src="lib\net45\MediaBrowser.Logging.NLog.dll" target="lib\net45\MediaBrowser.Logging.NLog.dll" />
- <file src="lib\net45\MediaBrowser.Networking.dll" target="lib\net45\MediaBrowser.Networking.dll" />
- <file src="lib\net45\pfmclrapi.dll" target="lib\net45\pfmclrapi.dll" />
+ <file src="dlls\MediaBrowser.ClickOnce.dll" target="lib\net45\MediaBrowser.ClickOnce.dll" />
+ <file src="dlls\MediaBrowser.Common.Implementations.dll" target="lib\net45\MediaBrowser.Common.Implementations.dll" />
+ <file src="dlls\MediaBrowser.IsoMounter.dll" target="lib\net45\MediaBrowser.IsoMounter.dll" />
+ <file src="dlls\MediaBrowser.Logging.NLog.dll" target="lib\net45\MediaBrowser.Logging.NLog.dll" />
+ <file src="dlls\MediaBrowser.Networking.dll" target="lib\net45\MediaBrowser.Networking.dll" />
+ <file src="dlls\pfmclrapi.dll" target="lib\net45\pfmclrapi.dll" />
</files>
</package> \ No newline at end of file
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index b6ca6ae02..dc8a10b9d 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common</id>
- <version>1.0.1</version>
+ <version>3.0.4</version>
<title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors>
<owners />
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index 82fb2c531..80d0b82a0 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Server.Core</id>
- <version>1.0.0</version>
+ <version>3.0.4</version>
<title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors>
<owners />
@@ -10,7 +10,7 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains core components required to build plugins for Media Browser Server.</description>
<dependencies>
- <dependency id="MediaBrowser.Common" version="1.0.1" />
+ <dependency id="MediaBrowser.Common" version="3.0.2" />
</dependencies>
</metadata>
<files>