aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Providers')
-rw-r--r--MediaBrowser.Controller/Providers/AudioInfoProvider.cs5
-rw-r--r--MediaBrowser.Controller/Providers/BaseMetadataProvider.cs17
-rw-r--r--MediaBrowser.Controller/Providers/FolderProviderFromXml.cs5
-rw-r--r--MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs7
-rw-r--r--MediaBrowser.Controller/Providers/LocalTrailerProvider.cs5
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;