aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Providers')
-rw-r--r--MediaBrowser.Controller/Providers/BaseImageEnhancer.cs99
-rw-r--r--MediaBrowser.Controller/Providers/FolderProviderFromXml.cs2
-rw-r--r--MediaBrowser.Controller/Providers/IImageEnhancer.cs55
-rw-r--r--MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/ImagesByNameProvider.cs8
-rw-r--r--MediaBrowser.Controller/Providers/MediaInfo/FFMpegAudioImageProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/MediaInfo/FFMpegVideoImageProvider.cs20
-rw-r--r--MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/MediaInfo/FFProbeVideoInfoProvider.cs18
-rw-r--r--MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs2
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs2
-rw-r--r--MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs2
-rw-r--r--MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/SortNameProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/TV/EpisodeImageFromMediaLocationProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/TV/EpisodeProviderFromXml.cs2
-rw-r--r--MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/TV/SeriesProviderFromXml.cs2
23 files changed, 85 insertions, 151 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseImageEnhancer.cs b/MediaBrowser.Controller/Providers/BaseImageEnhancer.cs
deleted file mode 100644
index aeceeaf5fc..0000000000
--- a/MediaBrowser.Controller/Providers/BaseImageEnhancer.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Model.Drawing;
-using MediaBrowser.Model.Entities;
-using System;
-using System.Drawing;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Controller.Providers
-{
- /// <summary>
- /// Class BaseImageEnhancer
- /// </summary>
- public abstract class BaseImageEnhancer : IDisposable
- {
- /// <summary>
- /// Return true only if the given image for the given item will be enhanced by this enhancer.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="imageType">Type of the image.</param>
- /// <returns><c>true</c> if this enhancer will enhance the supplied image for the supplied item, <c>false</c> otherwise</returns>
- public abstract bool Supports(BaseItem item, ImageType imageType);
-
- /// <summary>
- /// Gets the priority or order in which this enhancer should be run.
- /// </summary>
- /// <value>The priority.</value>
- public abstract MetadataProviderPriority Priority { get; }
-
- /// <summary>
- /// Return the date of the last configuration change affecting the provided baseitem and image type
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="imageType">Type of the image.</param>
- /// <returns>Date of last config change</returns>
- public virtual DateTime LastConfigurationChange(BaseItem item, ImageType imageType)
- {
- return DateTime.MinValue;
- }
-
- /// <summary>
- /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
- /// </summary>
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- /// <summary>
- /// Releases unmanaged and - optionally - managed resources.
- /// </summary>
- /// <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)
- {
- }
-
- /// <summary>
- /// Gets the size of the enhanced image.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="imageType">Type of the image.</param>
- /// <param name="imageIndex">Index of the image.</param>
- /// <param name="originalImageSize">Size of the original image.</param>
- /// <returns>ImageSize.</returns>
- public virtual ImageSize GetEnhancedImageSize(BaseItem item, ImageType imageType, int imageIndex, ImageSize originalImageSize)
- {
- return originalImageSize;
- }
-
- /// <summary>
- /// Enhances the supplied image and returns it
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="originalImage">The original image.</param>
- /// <param name="imageType">Type of the image.</param>
- /// <param name="imageIndex">Index of the image.</param>
- /// <returns>Task{System.Drawing.Image}.</returns>
- protected abstract Task<Image> EnhanceImageAsyncInternal(BaseItem item, Image originalImage, ImageType imageType, int imageIndex);
-
- /// <summary>
- /// Enhances the image async.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="originalImage">The original image.</param>
- /// <param name="imageType">Type of the image.</param>
- /// <param name="imageIndex">Index of the image.</param>
- /// <returns>Task{Image}.</returns>
- /// <exception cref="System.ArgumentNullException"></exception>
- public Task<Image> EnhanceImageAsync(BaseItem item, Image originalImage, ImageType imageType, int imageIndex)
- {
- if (item == null || originalImage == null)
- {
- throw new ArgumentNullException();
- }
-
- return EnhanceImageAsyncInternal(item, originalImage, imageType, imageIndex);
- }
- }
-}
diff --git a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs
index ab0f37b96e..16b120ebdc 100644
--- a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs
+++ b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -11,7 +10,6 @@ namespace MediaBrowser.Controller.Providers
/// <summary>
/// Provides metadata for Folders and all subclasses by parsing folder.xml
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class FolderProviderFromXml : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/IImageEnhancer.cs b/MediaBrowser.Controller/Providers/IImageEnhancer.cs
new file mode 100644
index 0000000000..24296b6641
--- /dev/null
+++ b/MediaBrowser.Controller/Providers/IImageEnhancer.cs
@@ -0,0 +1,55 @@
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Drawing;
+using MediaBrowser.Model.Entities;
+using System;
+using System.Drawing;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Controller.Providers
+{
+ public interface IImageEnhancer
+ {
+ /// <summary>
+ /// Return true only if the given image for the given item will be enhanced by this enhancer.
+ /// </summary>
+ /// <param name="item">The item.</param>
+ /// <param name="imageType">Type of the image.</param>
+ /// <returns><c>true</c> if this enhancer will enhance the supplied image for the supplied item, <c>false</c> otherwise</returns>
+ bool Supports(BaseItem item, ImageType imageType);
+
+ /// <summary>
+ /// Gets the priority or order in which this enhancer should be run.
+ /// </summary>
+ /// <value>The priority.</value>
+ MetadataProviderPriority Priority { get; }
+
+ /// <summary>
+ /// Return the date of the last configuration change affecting the provided baseitem and image type
+ /// </summary>
+ /// <param name="item">The item.</param>
+ /// <param name="imageType">Type of the image.</param>
+ /// <returns>Date of last config change</returns>
+ DateTime LastConfigurationChange(BaseItem item, ImageType imageType);
+
+ /// <summary>
+ /// Gets the size of the enhanced image.
+ /// </summary>
+ /// <param name="item">The item.</param>
+ /// <param name="imageType">Type of the image.</param>
+ /// <param name="imageIndex">Index of the image.</param>
+ /// <param name="originalImageSize">Size of the original image.</param>
+ /// <returns>ImageSize.</returns>
+ ImageSize GetEnhancedImageSize(BaseItem item, ImageType imageType, int imageIndex, ImageSize originalImageSize);
+
+ /// <summary>
+ /// Enhances the image async.
+ /// </summary>
+ /// <param name="item">The item.</param>
+ /// <param name="originalImage">The original image.</param>
+ /// <param name="imageType">Type of the image.</param>
+ /// <param name="imageIndex">Index of the image.</param>
+ /// <returns>Task{Image}.</returns>
+ /// <exception cref="System.ArgumentNullException"></exception>
+ Task<Image> EnhanceImageAsync(BaseItem item, Image originalImage, ImageType imageType, int imageIndex);
+ }
+} \ No newline at end of file
diff --git a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs
index 9858764069..4c3250ff40 100644
--- a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs
+++ b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs
@@ -3,7 +3,6 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
-using System.ComponentModel.Composition;
using System.IO;
using System.Linq;
using System.Threading;
@@ -14,7 +13,6 @@ namespace MediaBrowser.Controller.Providers
/// <summary>
/// Provides images for all types by looking for standard images - folder, backdrop, logo, etc.
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class ImageFromMediaLocationProvider : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs b/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs
index 114176e2c9..fcc31a75e8 100644
--- a/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs
+++ b/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs
@@ -1,9 +1,8 @@
-using System.Globalization;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Common.Win32;
+using MediaBrowser.Common.Win32;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.IO;
using System;
-using System.ComponentModel.Composition;
+using System.Globalization;
using System.IO;
using System.Linq;
@@ -12,7 +11,6 @@ namespace MediaBrowser.Controller.Providers
/// <summary>
/// Provides images for generic types by looking for standard images in the IBN
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class ImagesByNameProvider : ImageFromMediaLocationProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/MediaInfo/FFMpegAudioImageProvider.cs b/MediaBrowser.Controller/Providers/MediaInfo/FFMpegAudioImageProvider.cs
index 523192d4e3..907c692b80 100644
--- a/MediaBrowser.Controller/Providers/MediaInfo/FFMpegAudioImageProvider.cs
+++ b/MediaBrowser.Controller/Providers/MediaInfo/FFMpegAudioImageProvider.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Model.Entities;
using System;
-using System.ComponentModel.Composition;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -12,7 +11,6 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
/// <summary>
/// Uses ffmpeg to create video images
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class FFMpegAudioImageProvider : BaseFFMpegImageProvider<Audio>
{
diff --git a/MediaBrowser.Controller/Providers/MediaInfo/FFMpegVideoImageProvider.cs b/MediaBrowser.Controller/Providers/MediaInfo/FFMpegVideoImageProvider.cs
index 2f617b5b18..636454cd0b 100644
--- a/MediaBrowser.Controller/Providers/MediaInfo/FFMpegVideoImageProvider.cs
+++ b/MediaBrowser.Controller/Providers/MediaInfo/FFMpegVideoImageProvider.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;
using System;
-using System.ComponentModel.Composition;
using System.Threading;
using System.Threading.Tasks;
@@ -11,10 +10,23 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
/// <summary>
/// Uses ffmpeg to create video images
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class FFMpegVideoImageProvider : BaseFFMpegImageProvider<Video>
{
/// <summary>
+ /// The _iso manager
+ /// </summary>
+ private readonly IIsoManager _isoManager;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="FFMpegVideoImageProvider" /> class.
+ /// </summary>
+ /// <param name="isoManager">The iso manager.</param>
+ public FFMpegVideoImageProvider(IIsoManager isoManager)
+ {
+ _isoManager = isoManager;
+ }
+
+ /// <summary>
/// Supportses the specified item.
/// </summary>
/// <param name="item">The item.</param>
@@ -30,7 +42,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
if (video != null)
{
- if (video.VideoType == VideoType.Iso && video.IsoType.HasValue && Kernel.Instance.IsoManager.CanMount(item.Path))
+ if (video.VideoType == VideoType.Iso && video.IsoType.HasValue && _isoManager.CanMount(item.Path))
{
return true;
}
@@ -82,7 +94,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
{
if (item.VideoType == VideoType.Iso)
{
- return Kernel.Instance.IsoManager.Mount(item.Path, cancellationToken);
+ return _isoManager.Mount(item.Path, cancellationToken);
}
return NullMountTaskResult;
diff --git a/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs b/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs
index 49c829fffe..01711d7713 100644
--- a/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs
+++ b/MediaBrowser.Controller/Providers/MediaInfo/FFProbeAudioInfoProvider.cs
@@ -5,7 +5,6 @@ using MediaBrowser.Controller.MediaInfo;
using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
-using System.ComponentModel.Composition;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -15,7 +14,6 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
/// <summary>
/// Extracts audio information using ffprobe
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class FFProbeAudioInfoProvider : BaseFFProbeProvider<Audio>
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/MediaInfo/FFProbeVideoInfoProvider.cs b/MediaBrowser.Controller/Providers/MediaInfo/FFProbeVideoInfoProvider.cs
index 2df495b23c..443d28b670 100644
--- a/MediaBrowser.Controller/Providers/MediaInfo/FFProbeVideoInfoProvider.cs
+++ b/MediaBrowser.Controller/Providers/MediaInfo/FFProbeVideoInfoProvider.cs
@@ -6,7 +6,6 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.MediaInfo;
using System;
using System.Collections.Generic;
-using System.ComponentModel.Composition;
using System.IO;
using System.Linq;
using System.Threading;
@@ -17,7 +16,6 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
/// <summary>
/// Extracts video information using ffprobe
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class FFProbeVideoInfoProvider : BaseFFProbeProvider<Video>
{
/// <summary>
@@ -32,13 +30,18 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
/// <value>The bluray examiner.</value>
private IBlurayExaminer BlurayExaminer { get; set; }
+ /// <summary>
+ /// The _iso manager
+ /// </summary>
+ private readonly IIsoManager _isoManager;
+
/// <summary>
/// Initializes a new instance of the <see cref="FFProbeVideoInfoProvider" /> class.
/// </summary>
+ /// <param name="isoManager">The iso manager.</param>
/// <param name="blurayExaminer">The bluray examiner.</param>
/// <exception cref="System.ArgumentNullException">blurayExaminer</exception>
- [ImportingConstructor]
- public FFProbeVideoInfoProvider([Import("blurayExaminer")] IBlurayExaminer blurayExaminer)
+ public FFProbeVideoInfoProvider(IIsoManager isoManager, IBlurayExaminer blurayExaminer)
: base()
{
if (blurayExaminer == null)
@@ -47,6 +50,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
}
BlurayExaminer = blurayExaminer;
+ _isoManager = isoManager;
BdInfoCache = new FileSystemRepository(Path.Combine(Kernel.Instance.ApplicationPaths.CachePath, "bdinfo"));
}
@@ -76,7 +80,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
{
if (video.VideoType == VideoType.Iso)
{
- return Kernel.Instance.IsoManager.CanMount(item.Path);
+ return _isoManager.CanMount(item.Path);
}
return video.VideoType == VideoType.VideoFile || video.VideoType == VideoType.Dvd || video.VideoType == VideoType.BluRay;
@@ -101,7 +105,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
{
PopulateDvdStreamFiles(item, mount);
}
-
+
base.OnPreFetch(item, mount);
}
@@ -115,7 +119,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
{
if (item.VideoType == VideoType.Iso)
{
- return Kernel.Instance.IsoManager.Mount(item.Path, cancellationToken);
+ return _isoManager.Mount(item.Path, cancellationToken);
}
return base.MountIsoIfNeeded(item, cancellationToken);
diff --git a/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs b/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs
index 38e5475230..e833e49318 100644
--- a/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs
+++ b/MediaBrowser.Controller/Providers/Movies/FanArtMovieProvider.cs
@@ -4,7 +4,6 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Net;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -15,7 +14,6 @@ namespace MediaBrowser.Controller.Providers.Movies
/// <summary>
/// Class FanArtMovieProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
class FanArtMovieProvider : FanartBaseProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
index 2319e5cfa4..72f8a3fc74 100644
--- a/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
+++ b/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
@@ -7,7 +7,6 @@ using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Net;
using System;
using System.Collections.Generic;
-using System.ComponentModel.Composition;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -29,7 +28,6 @@ namespace MediaBrowser.Controller.Providers.Movies
/// <summary>
/// Class MovieDbProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class MovieDbProvider : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs
index ad5f6626be..45079dddaa 100644
--- a/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs
+++ b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromJson.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Common.Serialization;
using MediaBrowser.Controller.Entities;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -11,7 +10,6 @@ namespace MediaBrowser.Controller.Providers.Movies
/// <summary>
/// Class MovieProviderFromJson
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class MovieProviderFromJson : MovieDbProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs
index b180fa580f..274930bc8c 100644
--- a/MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs
+++ b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -11,7 +10,6 @@ namespace MediaBrowser.Controller.Providers.Movies
/// <summary>
/// Class MovieProviderFromXml
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class MovieProviderFromXml : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs b/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs
index 19a707be30..b4b4933e28 100644
--- a/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs
+++ b/MediaBrowser.Controller/Providers/Movies/PersonProviderFromJson.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Common.Serialization;
using MediaBrowser.Controller.Entities;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -11,7 +10,6 @@ namespace MediaBrowser.Controller.Providers.Movies
/// <summary>
/// Class PersonProviderFromJson
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
class PersonProviderFromJson : TmdbPersonProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs b/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs
index 4cdfc58940..7b5d62fb0e 100644
--- a/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs
+++ b/MediaBrowser.Controller/Providers/Movies/TmdbPersonProvider.cs
@@ -4,7 +4,6 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Net;
using System;
using System.Collections.Generic;
-using System.ComponentModel.Composition;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -17,7 +16,6 @@ namespace MediaBrowser.Controller.Providers.Movies
/// <summary>
/// Class TmdbPersonProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class TmdbPersonProvider : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/SortNameProvider.cs b/MediaBrowser.Controller/Providers/SortNameProvider.cs
index 071732f3e3..933b0c78c3 100644
--- a/MediaBrowser.Controller/Providers/SortNameProvider.cs
+++ b/MediaBrowser.Controller/Providers/SortNameProvider.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.TV;
-using System.ComponentModel.Composition;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -11,7 +10,6 @@ namespace MediaBrowser.Controller.Providers
/// <summary>
/// Class SortNameProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class SortNameProvider : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/TV/EpisodeImageFromMediaLocationProvider.cs b/MediaBrowser.Controller/Providers/TV/EpisodeImageFromMediaLocationProvider.cs
index a493ce746f..c6210f74c2 100644
--- a/MediaBrowser.Controller/Providers/TV/EpisodeImageFromMediaLocationProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/EpisodeImageFromMediaLocationProvider.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -12,7 +11,6 @@ namespace MediaBrowser.Controller.Providers.TV
/// <summary>
/// Class EpisodeImageFromMediaLocationProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class EpisodeImageFromMediaLocationProvider : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/TV/EpisodeProviderFromXml.cs b/MediaBrowser.Controller/Providers/TV/EpisodeProviderFromXml.cs
index 08d0988eb9..7a96e368c9 100644
--- a/MediaBrowser.Controller/Providers/TV/EpisodeProviderFromXml.cs
+++ b/MediaBrowser.Controller/Providers/TV/EpisodeProviderFromXml.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -12,7 +11,6 @@ namespace MediaBrowser.Controller.Providers.TV
/// <summary>
/// Class EpisodeProviderFromXml
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class EpisodeProviderFromXml : BaseMetadataProvider
{
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs b/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs
index 2640e04825..05ab172a8e 100644
--- a/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/FanArtTVProvider.cs
@@ -4,7 +4,6 @@ using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Net;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -12,7 +11,6 @@ using System.Xml;
namespace MediaBrowser.Controller.Providers.TV
{
- [Export(typeof(BaseMetadataProvider))]
class FanArtTVProvider : FanartBaseProvider
{
protected string FanArtBaseUrl = "http://api.fanart.tv/webservice/series/{0}/{1}/xml/all/1/1";
diff --git a/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs b/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs
index d1d931a62f..b065981148 100644
--- a/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/RemoteEpisodeProvider.cs
@@ -5,7 +5,6 @@ using MediaBrowser.Controller.Resolvers.TV;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Net;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Linq;
using System.Threading;
@@ -18,7 +17,6 @@ namespace MediaBrowser.Controller.Providers.TV
/// <summary>
/// Class RemoteEpisodeProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
class RemoteEpisodeProvider : BaseMetadataProvider
{
diff --git a/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs b/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs
index 277b6d891f..3e7f6b1a2b 100644
--- a/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/RemoteSeasonProvider.cs
@@ -5,7 +5,6 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Net;
using System;
using System.Collections.Generic;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -16,7 +15,6 @@ namespace MediaBrowser.Controller.Providers.TV
/// <summary>
/// Class RemoteSeasonProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
class RemoteSeasonProvider : BaseMetadataProvider
{
diff --git a/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs b/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
index 985aa0262a..b8941dbba3 100644
--- a/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
@@ -7,7 +7,6 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Net;
using System;
using System.Collections.Generic;
-using System.ComponentModel.Composition;
using System.IO;
using System.Net;
using System.Text;
@@ -20,7 +19,6 @@ namespace MediaBrowser.Controller.Providers.TV
/// <summary>
/// Class RemoteSeriesProvider
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
class RemoteSeriesProvider : BaseMetadataProvider
{
diff --git a/MediaBrowser.Controller/Providers/TV/SeriesProviderFromXml.cs b/MediaBrowser.Controller/Providers/TV/SeriesProviderFromXml.cs
index c92841fb65..aa2cde28da 100644
--- a/MediaBrowser.Controller/Providers/TV/SeriesProviderFromXml.cs
+++ b/MediaBrowser.Controller/Providers/TV/SeriesProviderFromXml.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
using System;
-using System.ComponentModel.Composition;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -12,7 +11,6 @@ namespace MediaBrowser.Controller.Providers.TV
/// <summary>
/// Class SeriesProviderFromXml
/// </summary>
- [Export(typeof(BaseMetadataProvider))]
public class SeriesProviderFromXml : BaseMetadataProvider
{
/// <summary>