diff options
Diffstat (limited to 'MediaBrowser.Controller/Providers')
5 files changed, 38 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs index 6d2287b2d..8894f87ed 100644 --- a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs +++ b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs @@ -18,6 +18,11 @@ namespace MediaBrowser.Controller.Providers return item is Audio;
}
+ public override MetadataProviderPriority Priority
+ {
+ get { return MetadataProviderPriority.First; }
+ }
+
public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
Audio audio = item as Audio;
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs index e40d30372..03684e8ee 100644 --- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs @@ -32,5 +32,22 @@ namespace MediaBrowser.Controller.Providers }
public abstract Task Fetch(BaseEntity item, ItemResolveEventArgs args);
+
+ public abstract MetadataProviderPriority Priority { get; }
+ }
+
+ /// <summary>
+ /// Determines when a provider should execute, relative to others
+ /// </summary>
+ public enum MetadataProviderPriority
+ {
+ // Run this provider at the beginning
+ First,
+
+ // Run this provider after all first priority providers
+ Second,
+
+ // Run this provider last
+ Last
}
}
diff --git a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs index 2ef214237..9b1b424b1 100644 --- a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs +++ b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs @@ -14,6 +14,11 @@ namespace MediaBrowser.Controller.Providers return item is Folder;
}
+ public override MetadataProviderPriority Priority
+ {
+ get { return MetadataProviderPriority.First; }
+ }
+
public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
var metadataFile = args.GetFileByName("folder.xml");
diff --git a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs index 06b573ed0..0abdba29d 100644 --- a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs +++ b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs @@ -16,7 +16,12 @@ namespace MediaBrowser.Controller.Providers {
return true;
}
-
+
+ public override MetadataProviderPriority Priority
+ {
+ get { return MetadataProviderPriority.First; }
+ }
+
public override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
return Task.Run(() =>
diff --git a/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs b/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs index 9d909934d..d546f6043 100644 --- a/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs +++ b/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs @@ -15,6 +15,11 @@ namespace MediaBrowser.Controller.Providers return item is BaseItem;
}
+ public override MetadataProviderPriority Priority
+ {
+ get { return MetadataProviderPriority.First; }
+ }
+
public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
BaseItem baseItem = item as BaseItem;
|
