فهرست منبع

added a providers assembly

Luke Pulverenti 12 سال پیش
والد
کامیت
7aa969e2b9
55فایلهای تغییر یافته به همراه283 افزوده شده و 104 حذف شده
  1. 1 1
      MediaBrowser.Api/Playback/BaseStreamingService.cs
  2. 1 48
      MediaBrowser.Controller/MediaBrowser.Controller.csproj
  3. 0 1
      MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
  4. 1 1
      MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs
  5. 1 1
      MediaBrowser.Providers/Extensions/XmlExtensions.cs
  6. 2 1
      MediaBrowser.Providers/FanartBaseProvider.cs
  7. 2 1
      MediaBrowser.Providers/FolderProviderFromXml.cs
  8. 2 1
      MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
  9. 2 1
      MediaBrowser.Providers/ImagesByNameProvider.cs
  10. 119 0
      MediaBrowser.Providers/MediaBrowser.Providers.csproj
  11. 3 1
      MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs
  12. 2 1
      MediaBrowser.Providers/MediaInfo/BaseFFMpegProvider.cs
  13. 4 1
      MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs
  14. 1 1
      MediaBrowser.Providers/MediaInfo/FFProbeAudioInfoProvider.cs
  15. 1 1
      MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
  16. 2 1
      MediaBrowser.Providers/Movies/FanArtMovieProvider.cs
  17. 3 1
      MediaBrowser.Providers/Movies/FanArtMovieUpdatesPrescanTask.cs
  18. 2 2
      MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs
  19. 2 1
      MediaBrowser.Providers/Movies/MovieDbProvider.cs
  20. 2 1
      MediaBrowser.Providers/Movies/MovieProviderFromJson.cs
  21. 2 1
      MediaBrowser.Providers/Movies/MovieProviderFromXml.cs
  22. 2 1
      MediaBrowser.Providers/Movies/OpenMovieDatabaseProvider.cs
  23. 2 1
      MediaBrowser.Providers/Movies/PersonProviderFromJson.cs
  24. 2 1
      MediaBrowser.Providers/Movies/TmdbPersonProvider.cs
  25. 1 1
      MediaBrowser.Providers/Music/ArtistsPostScanTask.cs
  26. 2 1
      MediaBrowser.Providers/Music/FanArtAlbumProvider.cs
  27. 2 1
      MediaBrowser.Providers/Music/FanArtArtistByNameProvider.cs
  28. 2 1
      MediaBrowser.Providers/Music/FanArtArtistProvider.cs
  29. 3 1
      MediaBrowser.Providers/Music/FanArtUpdatesPrescanTask.cs
  30. 3 2
      MediaBrowser.Providers/Music/LastfmAlbumProvider.cs
  31. 2 1
      MediaBrowser.Providers/Music/LastfmArtistByNameProvider.cs
  32. 3 1
      MediaBrowser.Providers/Music/LastfmArtistProvider.cs
  33. 2 1
      MediaBrowser.Providers/Music/LastfmBaseProvider.cs
  34. 2 1
      MediaBrowser.Providers/Music/LastfmHelper.cs
  35. 1 0
      MediaBrowser.Providers/Music/MusicArtistProviderFromJson.cs
  36. 36 0
      MediaBrowser.Providers/Properties/AssemblyInfo.cs
  37. 2 1
      MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs
  38. 2 1
      MediaBrowser.Providers/TV/EpisodeProviderFromXml.cs
  39. 2 1
      MediaBrowser.Providers/TV/EpisodeXmlParser.cs
  40. 2 1
      MediaBrowser.Providers/TV/FanArtSeasonProvider.cs
  41. 2 1
      MediaBrowser.Providers/TV/FanArtTVProvider.cs
  42. 3 1
      MediaBrowser.Providers/TV/FanArtTvUpdatesPrescanTask.cs
  43. 3 2
      MediaBrowser.Providers/TV/RemoteEpisodeProvider.cs
  44. 2 1
      MediaBrowser.Providers/TV/RemoteSeasonProvider.cs
  45. 3 3
      MediaBrowser.Providers/TV/RemoteSeriesProvider.cs
  46. 2 1
      MediaBrowser.Providers/TV/SeriesProviderFromXml.cs
  47. 2 1
      MediaBrowser.Providers/TV/SeriesXmlParser.cs
  48. 3 4
      MediaBrowser.Providers/TV/TvdbPrescanTask.cs
  49. 2 1
      MediaBrowser.Providers/TV/TvdbSeriesImageProvider.cs
  50. 4 0
      MediaBrowser.Providers/packages.config
  51. 1 2
      MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
  52. 1 1
      MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs
  53. 4 0
      MediaBrowser.ServerApplication/ApplicationHost.cs
  54. 4 0
      MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
  55. 19 0
      MediaBrowser.sln

+ 1 - 1
MediaBrowser.Api/Playback/BaseStreamingService.cs

@@ -5,7 +5,7 @@ using MediaBrowser.Controller;
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers.MediaInfo;
+using MediaBrowser.Controller.MediaInfo;
 using MediaBrowser.Model.Drawing;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Entities;

+ 1 - 48
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -78,14 +78,6 @@
     <Compile Include="Library\ILibraryPrescanTask.cs" />
     <Compile Include="Library\IMetadataSaver.cs" />
     <Compile Include="Localization\ILocalizationManager.cs" />
-    <Compile Include="Providers\Movies\FanArtMovieUpdatesPrescanTask.cs" />
-    <Compile Include="Providers\Movies\MovieDbImagesProvider.cs" />
-    <Compile Include="Providers\Music\ArtistsPostScanTask.cs" />
-    <Compile Include="Providers\Music\FanArtUpdatesPrescanTask.cs" />
-    <Compile Include="Providers\TV\FanArtSeasonProvider.cs" />
-    <Compile Include="Providers\TV\FanArtTvUpdatesPrescanTask.cs" />
-    <Compile Include="Providers\TV\TvdbPrescanTask.cs" />
-    <Compile Include="Providers\TV\TvdbSeriesImageProvider.cs" />
     <Compile Include="Session\ISessionManager.cs" />
     <Compile Include="Drawing\ImageExtensions.cs" />
     <Compile Include="Drawing\ImageHeader.cs" />
@@ -122,7 +114,6 @@
     <Compile Include="Entities\Video.cs" />
     <Compile Include="Entities\CollectionFolder.cs" />
     <Compile Include="Entities\Year.cs" />
-    <Compile Include="Extensions\XmlExtensions.cs" />
     <Compile Include="IO\FileSystem.cs" />
     <Compile Include="IO\IDirectoryWatchers.cs" />
     <Compile Include="IO\NativeMethods.cs" />
@@ -131,17 +122,8 @@
     <Compile Include="Dto\DtoBuilder.cs" />
     <Compile Include="Library\SearchHintInfo.cs" />
     <Compile Include="Providers\IProviderManager.cs" />
-    <Compile Include="Providers\MediaInfo\MediaEncoderHelpers.cs" />
+    <Compile Include="MediaInfo\MediaEncoderHelpers.cs" />
     <Compile Include="Providers\MetadataProviderPriority.cs" />
-    <Compile Include="Providers\Movies\OpenMovieDatabaseProvider.cs" />
-    <Compile Include="Providers\Music\FanArtArtistByNameProvider.cs" />
-    <Compile Include="Providers\Music\LastfmAlbumProvider.cs" />
-    <Compile Include="Providers\Music\FanArtAlbumProvider.cs" />
-    <Compile Include="Providers\Music\FanArtArtistProvider.cs" />
-    <Compile Include="Providers\Music\LastfmArtistByNameProvider.cs" />
-    <Compile Include="Providers\Music\LastfmArtistProvider.cs" />
-    <Compile Include="Providers\Music\LastfmHelper.cs" />
-    <Compile Include="Providers\Music\MusicArtistProviderFromJson.cs" />
     <Compile Include="Resolvers\BaseItemResolver.cs" />
     <Compile Include="Resolvers\BaseVideoResolver.cs" />
     <Compile Include="Resolvers\IItemResolver.cs" />
@@ -166,33 +148,8 @@
     <Compile Include="Library\IIntroProvider.cs" />
     <Compile Include="Plugins\IPluginConfigurationPage.cs" />
     <Compile Include="Plugins\IServerEntryPoint.cs" />
-    <Compile Include="Providers\Music\LastfmBaseProvider.cs" />
-    <Compile Include="Providers\FanartBaseProvider.cs" />
     <Compile Include="Providers\IImageEnhancer.cs" />
-    <Compile Include="Providers\ImagesByNameProvider.cs" />
-    <Compile Include="Providers\MediaInfo\BaseFFMpegProvider.cs" />
-    <Compile Include="Providers\MediaInfo\AudioImageProvider.cs" />
-    <Compile Include="Providers\MediaInfo\BaseFFProbeProvider.cs" />
     <Compile Include="Providers\BaseProviderInfo.cs" />
-    <Compile Include="Providers\Movies\FanArtMovieProvider.cs" />
-    <Compile Include="Providers\Movies\MovieDbProvider.cs" />
-    <Compile Include="Providers\Movies\MovieProviderFromJson.cs" />
-    <Compile Include="Providers\Movies\MovieProviderFromXml.cs" />
-    <Compile Include="Providers\Movies\PersonProviderFromJson.cs" />
-    <Compile Include="Providers\Movies\TmdbPersonProvider.cs" />
-    <Compile Include="Providers\TV\EpisodeImageFromMediaLocationProvider.cs" />
-    <Compile Include="Providers\TV\EpisodeProviderFromXml.cs" />
-    <Compile Include="Providers\TV\EpisodeXmlParser.cs" />
-    <Compile Include="Providers\TV\FanArtTVProvider.cs" />
-    <Compile Include="Providers\TV\RemoteEpisodeProvider.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Providers\TV\RemoteSeasonProvider.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Providers\TV\RemoteSeriesProvider.cs" />
-    <Compile Include="Providers\TV\SeriesProviderFromXml.cs" />
-    <Compile Include="Providers\TV\SeriesXmlParser.cs" />
     <Compile Include="Resolvers\IResolverIgnoreRule.cs" />
     <Compile Include="Resolvers\EntityResolutionHelper.cs" />
     <Compile Include="Resolvers\ResolverPriority.cs" />
@@ -202,10 +159,6 @@
     <Compile Include="Kernel.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Providers\BaseMetadataProvider.cs" />
-    <Compile Include="Providers\MediaInfo\FFProbeAudioInfoProvider.cs" />
-    <Compile Include="Providers\FolderProviderFromXml.cs" />
-    <Compile Include="Providers\ImageFromMediaLocationProvider.cs" />
-    <Compile Include="Providers\MediaInfo\FFProbeVideoInfoProvider.cs" />
     <Compile Include="Session\SessionInfo.cs" />
     <Compile Include="Sorting\IBaseItemComparer.cs" />
     <Compile Include="Sorting\IUserBaseItemComparer.cs" />

+ 0 - 1
MediaBrowser.Controller/MediaInfo/FFMpegManager.cs

@@ -2,7 +2,6 @@
 using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers.MediaInfo;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;

+ 1 - 1
MediaBrowser.Controller/Providers/MediaInfo/MediaEncoderHelpers.cs → MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs

@@ -3,7 +3,7 @@ using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Model.Entities;
 
-namespace MediaBrowser.Controller.Providers.MediaInfo
+namespace MediaBrowser.Controller.MediaInfo
 {
     /// <summary>
     /// Class MediaEncoderHelpers

+ 1 - 1
MediaBrowser.Controller/Extensions/XmlExtensions.cs → MediaBrowser.Providers/Extensions/XmlExtensions.cs

@@ -2,7 +2,7 @@
 using System.Globalization;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Extensions
+namespace MediaBrowser.Providers.Extensions
 {
     /// <summary>
     /// Class XmlExtensions

+ 2 - 1
MediaBrowser.Controller/Providers/FanartBaseProvider.cs → MediaBrowser.Providers/FanartBaseProvider.cs

@@ -1,9 +1,10 @@
 using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Logging;
 using System.Collections.Generic;
 using System.Threading;
 
-namespace MediaBrowser.Controller.Providers
+namespace MediaBrowser.Providers
 {
     /// <summary>
     /// Class FanartBaseProvider

+ 2 - 1
MediaBrowser.Controller/Providers/FolderProviderFromXml.cs → MediaBrowser.Providers/FolderProviderFromXml.cs

@@ -1,5 +1,6 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using System;
 using System.IO;
@@ -7,7 +8,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.Logging;
 
-namespace MediaBrowser.Controller.Providers
+namespace MediaBrowser.Providers
 {
     /// <summary>
     /// Provides metadata for Folders and all subclasses by parsing folder.xml

+ 2 - 1
MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs → MediaBrowser.Providers/ImageFromMediaLocationProvider.cs

@@ -1,5 +1,6 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -9,7 +10,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers
+namespace MediaBrowser.Providers
 {
     /// <summary>
     /// Provides images for all types by looking for standard images - folder, backdrop, logo, etc.

+ 2 - 1
MediaBrowser.Controller/Providers/ImagesByNameProvider.cs → MediaBrowser.Providers/ImagesByNameProvider.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.IO;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Logging;
 using System;
 using System.IO;
@@ -9,7 +10,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers
+namespace MediaBrowser.Providers
 {
     /// <summary>
     /// Provides images for generic types by looking for standard images in the IBN

+ 119 - 0
MediaBrowser.Providers/MediaBrowser.Providers.csproj

@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{442B5058-DCAF-4263-BB6A-F21E31120A1B}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>MediaBrowser.Providers</RootNamespace>
+    <AssemblyName>MediaBrowser.Providers</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
+    <RestorePackages>true</RestorePackages>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="MoreLinq">
+      <HintPath>..\packages\morelinq.1.0.15631-beta\lib\net35\MoreLinq.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Net" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Extensions\XmlExtensions.cs" />
+    <Compile Include="FanartBaseProvider.cs" />
+    <Compile Include="FolderProviderFromXml.cs" />
+    <Compile Include="ImageFromMediaLocationProvider.cs" />
+    <Compile Include="ImagesByNameProvider.cs" />
+    <Compile Include="MediaInfo\AudioImageProvider.cs" />
+    <Compile Include="MediaInfo\BaseFFMpegProvider.cs" />
+    <Compile Include="MediaInfo\BaseFFProbeProvider.cs" />
+    <Compile Include="MediaInfo\FFProbeAudioInfoProvider.cs" />
+    <Compile Include="MediaInfo\FFProbeVideoInfoProvider.cs" />
+    <Compile Include="Movies\FanArtMovieProvider.cs" />
+    <Compile Include="Movies\FanArtMovieUpdatesPrescanTask.cs" />
+    <Compile Include="Movies\MovieDbImagesProvider.cs" />
+    <Compile Include="Movies\MovieDbProvider.cs" />
+    <Compile Include="Movies\MovieProviderFromJson.cs" />
+    <Compile Include="Movies\MovieProviderFromXml.cs" />
+    <Compile Include="Movies\OpenMovieDatabaseProvider.cs" />
+    <Compile Include="Movies\PersonProviderFromJson.cs" />
+    <Compile Include="Movies\TmdbPersonProvider.cs" />
+    <Compile Include="Music\ArtistsPostScanTask.cs" />
+    <Compile Include="Music\FanArtAlbumProvider.cs" />
+    <Compile Include="Music\FanArtArtistByNameProvider.cs" />
+    <Compile Include="Music\FanArtArtistProvider.cs" />
+    <Compile Include="Music\FanArtUpdatesPrescanTask.cs" />
+    <Compile Include="Music\LastfmAlbumProvider.cs" />
+    <Compile Include="Music\LastfmArtistByNameProvider.cs" />
+    <Compile Include="Music\LastfmArtistProvider.cs" />
+    <Compile Include="Music\LastfmBaseProvider.cs" />
+    <Compile Include="Music\LastfmHelper.cs" />
+    <Compile Include="Music\MusicArtistProviderFromJson.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="TV\EpisodeImageFromMediaLocationProvider.cs" />
+    <Compile Include="TV\EpisodeProviderFromXml.cs" />
+    <Compile Include="TV\EpisodeXmlParser.cs" />
+    <Compile Include="TV\FanArtSeasonProvider.cs" />
+    <Compile Include="TV\FanArtTVProvider.cs" />
+    <Compile Include="TV\FanArtTvUpdatesPrescanTask.cs" />
+    <Compile Include="TV\RemoteEpisodeProvider.cs" />
+    <Compile Include="TV\RemoteSeasonProvider.cs" />
+    <Compile Include="TV\RemoteSeriesProvider.cs" />
+    <Compile Include="TV\SeriesProviderFromXml.cs" />
+    <Compile Include="TV\SeriesXmlParser.cs" />
+    <Compile Include="TV\TvdbPrescanTask.cs" />
+    <Compile Include="TV\TvdbSeriesImageProvider.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
+      <Project>{9142eefa-7570-41e1-bfcc-468bb571af2f}</Project>
+      <Name>MediaBrowser.Common</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj">
+      <Project>{17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2}</Project>
+      <Name>MediaBrowser.Controller</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj">
+      <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
+      <Name>MediaBrowser.Model</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
+  <!-- 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">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 3 - 1
MediaBrowser.Controller/Providers/MediaInfo/AudioImageProvider.cs → MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs

@@ -1,10 +1,12 @@
 using System.IO;
 using MediaBrowser.Common.IO;
 using MediaBrowser.Common.MediaInfo;
+using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -13,7 +15,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.MediaInfo
+namespace MediaBrowser.Providers.MediaInfo
 {
     /// <summary>
     /// Uses ffmpeg to create video images

+ 2 - 1
MediaBrowser.Controller/Providers/MediaInfo/BaseFFMpegProvider.cs → MediaBrowser.Providers/MediaInfo/BaseFFMpegProvider.cs

@@ -2,12 +2,13 @@
 using MediaBrowser.Common.MediaInfo;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.MediaInfo
+namespace MediaBrowser.Providers.MediaInfo
 {
     /// <summary>
     /// Class BaseFFMpegProvider

+ 4 - 1
MediaBrowser.Controller/Providers/MediaInfo/BaseFFProbeProvider.cs → MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs

@@ -1,7 +1,10 @@
 using MediaBrowser.Common.IO;
 using MediaBrowser.Common.MediaInfo;
+using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.MediaInfo;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
@@ -11,7 +14,7 @@ using System.Globalization;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.MediaInfo
+namespace MediaBrowser.Providers.MediaInfo
 {
     /// <summary>
     /// Provides a base class for extracting media information through ffprobe

+ 1 - 1
MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs → MediaBrowser.Providers/MediaInfo/FFProbeAudioInfoProvider.cs

@@ -11,7 +11,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 
-namespace MediaBrowser.Controller.Providers.MediaInfo
+namespace MediaBrowser.Providers.MediaInfo
 {
     /// <summary>
     /// Extracts audio information using ffprobe

+ 1 - 1
MediaBrowser.Controller/Providers/MediaInfo/FFProbeVideoInfoProvider.cs → MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs

@@ -15,7 +15,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.MediaInfo
+namespace MediaBrowser.Providers.MediaInfo
 {
     /// <summary>
     /// Extracts video information using ffprobe

+ 2 - 1
MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs → MediaBrowser.Providers/Movies/FanArtMovieProvider.cs

@@ -5,6 +5,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -15,7 +16,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     /// <summary>
     /// Class FanArtMovieProvider

+ 3 - 1
MediaBrowser.Controller/Providers/Movies/FanArtMovieUpdatesPrescanTask.cs → MediaBrowser.Providers/Movies/FanArtMovieUpdatesPrescanTask.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Controller.Providers.Music;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Net;
@@ -13,8 +14,9 @@ using System.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
+using MediaBrowser.Providers.Music;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     class FanArtMovieUpdatesPrescanTask : ILibraryPrescanTask
     {

+ 2 - 2
MediaBrowser.Controller/Providers/Movies/MovieDbImagesProvider.cs → MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs

@@ -3,9 +3,9 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
-using MediaBrowser.Model.Net;
 using MediaBrowser.Model.Serialization;
 using System;
 using System.Collections.Generic;
@@ -15,7 +15,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     /// <summary>
     /// Class MovieDbImagesProvider

+ 2 - 1
MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs → MediaBrowser.Providers/Movies/MovieDbProvider.cs

@@ -3,6 +3,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
@@ -17,7 +18,7 @@ using System.Text.RegularExpressions;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     /// <summary>
     /// Class MovieDbProvider

+ 2 - 1
MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs → MediaBrowser.Providers/Movies/MovieProviderFromJson.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
@@ -10,7 +11,7 @@ using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     /// <summary>
     /// Class MovieProviderFromJson

+ 2 - 1
MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs → MediaBrowser.Providers/Movies/MovieProviderFromXml.cs

@@ -5,9 +5,10 @@ using System;
 using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Logging;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     /// <summary>
     /// Class MovieProviderFromXml

+ 2 - 1
MediaBrowser.Controller/Providers/Movies/OpenMovieDatabaseProvider.cs → MediaBrowser.Providers/Movies/OpenMovieDatabaseProvider.cs

@@ -3,6 +3,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
@@ -11,7 +12,7 @@ using System.Globalization;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     public class OpenMovieDatabaseProvider : BaseMetadataProvider
     {

+ 2 - 1
MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs → MediaBrowser.Providers/Movies/PersonProviderFromJson.cs

@@ -1,5 +1,6 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
 using System;
@@ -7,7 +8,7 @@ using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     /// <summary>
     /// Class PersonProviderFromJson

+ 2 - 1
MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs → MediaBrowser.Providers/Movies/TmdbPersonProvider.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
@@ -13,7 +14,7 @@ using System.Net;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Movies
+namespace MediaBrowser.Providers.Movies
 {
     /// <summary>
     /// Class TmdbPersonProvider

+ 1 - 1
MediaBrowser.Controller/Providers/Music/ArtistsPostScanTask.cs → MediaBrowser.Providers/Music/ArtistsPostScanTask.cs

@@ -10,7 +10,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     /// <summary>
     /// Class ArtistsPostScanTask

+ 2 - 1
MediaBrowser.Controller/Providers/Music/FanArtAlbumProvider.cs → MediaBrowser.Providers/Music/FanArtAlbumProvider.cs

@@ -3,6 +3,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -12,7 +13,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     /// <summary>
     /// Class FanArtAlbumProvider

+ 2 - 1
MediaBrowser.Controller/Providers/Music/FanArtArtistByNameProvider.cs → MediaBrowser.Providers/Music/FanArtArtistByNameProvider.cs

@@ -2,9 +2,10 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Logging;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     /// <summary>
     /// Class FanArtArtistByNameProvider

+ 2 - 1
MediaBrowser.Controller/Providers/Music/FanArtArtistProvider.cs → MediaBrowser.Providers/Music/FanArtArtistProvider.cs

@@ -5,6 +5,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -16,7 +17,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     /// <summary>
     /// Class FanArtArtistProvider

+ 3 - 1
MediaBrowser.Controller/Providers/Music/FanArtUpdatesPrescanTask.cs → MediaBrowser.Providers/Music/FanArtUpdatesPrescanTask.cs

@@ -1,6 +1,8 @@
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Controller.Providers.Music;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Net;
 using MediaBrowser.Model.Serialization;
@@ -13,7 +15,7 @@ using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     class FanArtUpdatesPrescanTask : ILibraryPrescanTask
     {

+ 3 - 2
MediaBrowser.Controller/Providers/Music/LastfmAlbumProvider.cs → MediaBrowser.Providers/Music/LastfmAlbumProvider.cs

@@ -3,17 +3,18 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
-using MoreLinq;
 using System;
 using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
+using MoreLinq;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     public class LastfmAlbumProvider : LastfmBaseProvider
     {

+ 2 - 1
MediaBrowser.Controller/Providers/Music/LastfmArtistByNameProvider.cs → MediaBrowser.Providers/Music/LastfmArtistByNameProvider.cs

@@ -3,6 +3,7 @@ using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
@@ -11,7 +12,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     /// <summary>
     /// Class LastfmArtistByNameProvider

+ 3 - 1
MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs → MediaBrowser.Providers/Music/LastfmArtistProvider.cs

@@ -3,6 +3,8 @@ using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Controller.Providers.Music;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Net;
@@ -17,7 +19,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     /// <summary>
     /// Class LastfmArtistProvider

+ 2 - 1
MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs → MediaBrowser.Providers/Music/LastfmBaseProvider.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
@@ -10,7 +11,7 @@ using System.Net;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     /// <summary>
     /// Class MovieDbProvider

+ 2 - 1
MediaBrowser.Controller/Providers/Music/LastfmHelper.cs → MediaBrowser.Providers/Music/LastfmHelper.cs

@@ -1,10 +1,11 @@
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Providers.Music;
 using MediaBrowser.Model.Entities;
 using System;
 using System.Linq;
 
-namespace MediaBrowser.Controller.Providers.Music
+namespace MediaBrowser.Providers.Music
 {
     public static class LastfmHelper
     {

+ 1 - 0
MediaBrowser.Controller/Providers/Music/MusicArtistProviderFromJson.cs → MediaBrowser.Providers/Music/MusicArtistProviderFromJson.cs

@@ -8,6 +8,7 @@ using System;
 using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
+using MediaBrowser.Providers.Music;
 
 namespace MediaBrowser.Controller.Providers.Music
 {

+ 36 - 0
MediaBrowser.Providers/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("MediaBrowser.Providers")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("MediaBrowser.Providers")]
+[assembly: AssemblyCopyright("Copyright ©  2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("1b12f094-879f-4e02-ac92-17b72069feb8")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 2 - 1
MediaBrowser.Controller/Providers/TV/EpisodeImageFromMediaLocationProvider.cs → MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using System;
 using System.IO;
@@ -8,7 +9,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.Logging;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class EpisodeImageFromMediaLocationProvider

+ 2 - 1
MediaBrowser.Controller/Providers/TV/EpisodeProviderFromXml.cs → MediaBrowser.Providers/TV/EpisodeProviderFromXml.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using System;
 using System.IO;
@@ -8,7 +9,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.Logging;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class EpisodeProviderFromXml

+ 2 - 1
MediaBrowser.Controller/Providers/TV/EpisodeXmlParser.cs → MediaBrowser.Providers/TV/EpisodeXmlParser.cs

@@ -1,9 +1,10 @@
 using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Logging;
 using System.IO;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class EpisodeXmlParser

+ 2 - 1
MediaBrowser.Controller/Providers/TV/FanArtSeasonProvider.cs → MediaBrowser.Providers/TV/FanArtSeasonProvider.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -10,7 +11,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class FanArtSeasonProvider

+ 2 - 1
MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs → MediaBrowser.Providers/TV/FanArtTVProvider.cs

@@ -5,6 +5,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -15,7 +16,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     class FanArtTvProvider : FanartBaseProvider
     {

+ 3 - 1
MediaBrowser.Controller/Providers/TV/FanArtTvUpdatesPrescanTask.cs → MediaBrowser.Providers/TV/FanArtTvUpdatesPrescanTask.cs

@@ -9,12 +9,14 @@ using System.Threading.Tasks;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Controller.Providers.Music;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Net;
 using MediaBrowser.Model.Serialization;
+using MediaBrowser.Providers.Music;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     class FanArtTvUpdatesPrescanTask : ILibraryPrescanTask
     {

+ 3 - 2
MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs → MediaBrowser.Providers/TV/RemoteEpisodeProvider.cs

@@ -3,8 +3,8 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
-using MediaBrowser.Controller.Extensions;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Net;
@@ -14,8 +14,9 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
+using MediaBrowser.Providers.Extensions;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
 
     /// <summary>

+ 2 - 1
MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs → MediaBrowser.Providers/TV/RemoteSeasonProvider.cs

@@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -13,7 +14,7 @@ using System.Threading.Tasks;
 using System.Xml;
 using MediaBrowser.Model.Net;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class RemoteSeasonProvider

+ 3 - 3
MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs → MediaBrowser.Providers/TV/RemoteSeriesProvider.cs

@@ -5,12 +5,11 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
-using MediaBrowser.Controller.Extensions;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;
-using MediaBrowser.Model.Net;
 using System;
 using System.Globalization;
 using System.IO;
@@ -20,8 +19,9 @@ using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
+using MediaBrowser.Providers.Extensions;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class RemoteSeriesProvider

+ 2 - 1
MediaBrowser.Controller/Providers/TV/SeriesProviderFromXml.cs → MediaBrowser.Providers/TV/SeriesProviderFromXml.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using System;
 using System.IO;
@@ -8,7 +9,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.Logging;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class SeriesProviderFromXml

+ 2 - 1
MediaBrowser.Controller/Providers/TV/SeriesXmlParser.cs → MediaBrowser.Providers/TV/SeriesXmlParser.cs

@@ -1,11 +1,12 @@
 using MediaBrowser.Controller.Entities.TV;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class SeriesXmlParser

+ 3 - 4
MediaBrowser.Controller/Providers/TV/TvdbPrescanTask.cs → MediaBrowser.Providers/TV/TvdbPrescanTask.cs

@@ -1,7 +1,5 @@
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Common.Net;
+using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Extensions;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Net;
@@ -13,8 +11,9 @@ using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
+using MediaBrowser.Providers.Extensions;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     /// <summary>
     /// Class TvdbPrescanTask

+ 2 - 1
MediaBrowser.Controller/Providers/TV/TvdbSeriesImageProvider.cs → MediaBrowser.Providers/TV/TvdbSeriesImageProvider.cs

@@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.TV;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using System;
@@ -13,7 +14,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Xml;
 
-namespace MediaBrowser.Controller.Providers.TV
+namespace MediaBrowser.Providers.TV
 {
     public class TvdbSeriesImageProvider : BaseMetadataProvider
     {

+ 4 - 0
MediaBrowser.Providers/packages.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="morelinq" version="1.0.15631-beta" targetFramework="net45" />
+</packages>

+ 1 - 2
MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs

@@ -3,7 +3,6 @@ using MediaBrowser.Controller;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Movies;
 using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers.Movies;
 using MediaBrowser.Controller.Resolvers;
 using MediaBrowser.Model.Entities;
 using System;
@@ -185,7 +184,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
                     // If we already know it's a movie, we can stop looping
                     if (!isKnownMovie.HasValue)
                     {
-                        isKnownMovie = args.ContainsMetaFileByName("movie.xml") || args.ContainsMetaFileByName(MovieDbProvider.LocalMetaFileName) || args.Path.IndexOf("[tmdbid", StringComparison.OrdinalIgnoreCase) != -1;
+                        isKnownMovie = args.ContainsMetaFileByName("movie.xml") || args.ContainsMetaFileByName("tmdb3.json") || args.Path.IndexOf("[tmdbid", StringComparison.OrdinalIgnoreCase) != -1;
                     }
 
                     if (isKnownMovie.Value)

+ 1 - 1
MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs

@@ -5,8 +5,8 @@ using MediaBrowser.Controller;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Movies;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.MediaInfo;
 using MediaBrowser.Controller.Persistence;
-using MediaBrowser.Controller.Providers.MediaInfo;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Logging;
 using MoreLinq;

+ 4 - 0
MediaBrowser.ServerApplication/ApplicationHost.cs

@@ -29,6 +29,7 @@ using MediaBrowser.Model.IO;
 using MediaBrowser.Model.MediaInfo;
 using MediaBrowser.Model.System;
 using MediaBrowser.Model.Updates;
+using MediaBrowser.Providers;
 using MediaBrowser.Server.Implementations;
 using MediaBrowser.Server.Implementations.BdInfo;
 using MediaBrowser.Server.Implementations.Configuration;
@@ -509,6 +510,9 @@ namespace MediaBrowser.ServerApplication
             // Include composable parts in the Controller assembly 
             yield return typeof(Kernel).Assembly;
 
+            // Include composable parts in the Providers assembly 
+            yield return typeof(ImagesByNameProvider).Assembly;
+            
             // Common implementations
             yield return typeof(TaskManager).Assembly;
 

+ 4 - 0
MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj

@@ -296,6 +296,10 @@
       <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
       <Name>MediaBrowser.Model</Name>
     </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.Providers\MediaBrowser.Providers.csproj">
+      <Project>{442b5058-dcaf-4263-bb6a-f21e31120a1b}</Project>
+      <Name>MediaBrowser.Providers</Name>
+    </ProjectReference>
     <ProjectReference Include="..\MediaBrowser.Server.Implementations\MediaBrowser.Server.Implementations.csproj">
       <Project>{2e781478-814d-4a48-9d80-bff206441a65}</Project>
       <Name>MediaBrowser.Server.Implementations</Name>

+ 19 - 0
MediaBrowser.sln

@@ -35,6 +35,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model.net35",
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Tests", "MediaBrowser.Tests\MediaBrowser.Tests.csproj", "{E22BFD35-0FCD-4A85-978A-C22DCD73A081}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Providers", "MediaBrowser.Providers\MediaBrowser.Providers.csproj", "{442B5058-DCAF-4263-BB6A-F21E31120A1B}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -201,8 +203,25 @@ Global
 		{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Win32.ActiveCfg = Release|Any CPU
 		{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|x64.ActiveCfg = Release|Any CPU
 		{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|x86.ActiveCfg = Release|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Win32.ActiveCfg = Release|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x64.ActiveCfg = Release|Any CPU
+		{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(Performance) = preSolution
+		HasPerformanceSessions = true
+	EndGlobalSection
 EndGlobal