diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-19 16:38:47 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-19 16:38:47 -0400 |
| commit | 5b7063e7c612f9447372f52ea337f37c0f0fb11d (patch) | |
| tree | 0d5a0d04cc4572d1ad63611b76ff81860573d61b /MediaBrowser.Controller/Providers | |
| parent | a129c93c42ee02aa7ecdb9227552d18eac034b98 (diff) | |
| parent | 937d27ae9d6aa571ab9327f138bfba1b84c158db (diff) | |
Merge
Diffstat (limited to 'MediaBrowser.Controller/Providers')
5 files changed, 39 insertions, 13 deletions
diff --git a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs index 934f082d54..70adb688f1 100644 --- a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs +++ b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs @@ -12,12 +12,12 @@ namespace MediaBrowser.Controller.Providers [Export(typeof(BaseMetadataProvider))]
public class AudioInfoProvider : BaseMetadataProvider
{
- public override bool Supports(BaseItem item)
+ public override bool Supports(BaseEntity item)
{
return item is Audio;
}
- public async override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
Audio audio = item as Audio;
@@ -62,6 +62,7 @@ namespace MediaBrowser.Controller.Providers {
base.Init();
+ // Do this now so that we don't have to do this on every operation, which would require us to create a lock in order to maintain thread-safety
for (int i = 0; i <= 9; i++)
{
EnsureDirectory(Path.Combine(Kernel.Instance.ApplicationPaths.FFProbeAudioCacheDirectory, i.ToString()));
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs index 93d9ef10e4..e40d30372d 100644 --- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs @@ -1,10 +1,11 @@ -using System.Threading.Tasks;
+using System;
+using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Providers
{
- public abstract class BaseMetadataProvider
+ public abstract class BaseMetadataProvider : IDisposable
{
/// <summary>
/// If the provider needs any startup routines, add them here
@@ -13,11 +14,23 @@ namespace MediaBrowser.Controller.Providers {
}
- public virtual bool Supports(BaseItem item)
+ /// <summary>
+ /// Disposes anything created during Init
+ /// </summary>
+ public virtual void Dispose()
+ {
+ }
+
+ public abstract bool Supports(BaseEntity item);
+
+ public virtual bool RequiresInternet
{
- return true;
+ get
+ {
+ return false;
+ }
}
- public abstract Task Fetch(BaseItem item, ItemResolveEventArgs args);
+ public abstract Task Fetch(BaseEntity item, ItemResolveEventArgs args);
}
}
diff --git a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs index 14067dd202..2ef2142375 100644 --- a/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs +++ b/MediaBrowser.Controller/Providers/FolderProviderFromXml.cs @@ -9,12 +9,12 @@ namespace MediaBrowser.Controller.Providers [Export(typeof(BaseMetadataProvider))]
public class FolderProviderFromXml : BaseMetadataProvider
{
- public override bool Supports(BaseItem item)
+ public override bool Supports(BaseEntity item)
{
return item is Folder;
}
- public async override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ 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 2df07251af..5b086f795a 100644 --- a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs +++ b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs @@ -12,13 +12,18 @@ namespace MediaBrowser.Controller.Providers [Export(typeof(BaseMetadataProvider))]
public class ImageFromMediaLocationProvider : BaseMetadataProvider
{
- public override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ public override bool Supports(BaseEntity item)
+ {
+ return item is BaseItem;
+ }
+
+ public override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
{
return Task.Run(() =>
{
if (args.IsFolder)
{
- PopulateImages(item, args);
+ PopulateImages(item as BaseItem, args);
}
});
}
diff --git a/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs b/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs index 027c2f75d2..9d909934d4 100644 --- a/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs +++ b/MediaBrowser.Controller/Providers/LocalTrailerProvider.cs @@ -10,8 +10,15 @@ namespace MediaBrowser.Controller.Providers [Export(typeof(BaseMetadataProvider))]
public class LocalTrailerProvider : BaseMetadataProvider
{
- public async override Task Fetch(BaseItem item, ItemResolveEventArgs args)
+ public override bool Supports(BaseEntity item)
{
+ return item is BaseItem;
+ }
+
+ public async override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
+ {
+ BaseItem baseItem = item as BaseItem;
+
var trailerPath = args.GetFolderByName("trailers");
if (trailerPath.HasValue)
@@ -32,7 +39,7 @@ namespace MediaBrowser.Controller.Providers }
}
- item.LocalTrailers = localTrailers;
+ baseItem.LocalTrailers = localTrailers;
}
}
}
|
