aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers
diff options
context:
space:
mode:
authorLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-09-08 14:37:55 -0400
committerLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-09-08 14:37:55 -0400
commit2884df296c35d615065e6c6ce4685197a424c707 (patch)
tree480614707c18c98a2f6c22127f63d4d016d6f7aa /MediaBrowser.Controller/Providers
parent1fc7f8bd2dab529141a62dc75795ce68a00d7fe5 (diff)
Moved Movies into the main project
Diffstat (limited to 'MediaBrowser.Controller/Providers')
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs37
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieSpecialFeaturesProvider.cs45
2 files changed, 82 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs
new file mode 100644
index 0000000000..6432ebee8a
--- /dev/null
+++ b/MediaBrowser.Controller/Providers/Movies/MovieProviderFromXml.cs
@@ -0,0 +1,37 @@
+using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Xml;
+using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Entities.Movies;
+using System.ComponentModel.Composition;
+using System.IO;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Controller.Providers.Movies
+{
+ [Export(typeof(BaseMetadataProvider))]
+ public class MovieProviderFromXml : BaseMetadataProvider
+ {
+ public override bool Supports(BaseEntity item)
+ {
+ return item is Movie;
+ }
+
+ public override MetadataProviderPriority Priority
+ {
+ get { return MetadataProviderPriority.First; }
+ }
+
+ public override async Task FetchAsync(BaseEntity item, ItemResolveEventArgs args)
+ {
+ await Task.Run(() => { Fetch(item, args); }).ConfigureAwait(false);
+ }
+
+ private void Fetch(BaseEntity item, ItemResolveEventArgs args)
+ {
+ if (args.ContainsFile("movie.xml"))
+ {
+ new BaseItemXmlParser<Movie>().Fetch(item as Movie, Path.Combine(args.Path, "movie.xml"));
+ }
+ }
+ }
+}
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieSpecialFeaturesProvider.cs b/MediaBrowser.Controller/Providers/Movies/MovieSpecialFeaturesProvider.cs
new file mode 100644
index 0000000000..cb028602e4
--- /dev/null
+++ b/MediaBrowser.Controller/Providers/Movies/MovieSpecialFeaturesProvider.cs
@@ -0,0 +1,45 @@
+using MediaBrowser.Controller.IO;
+using MediaBrowser.Controller.Library;
+using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Entities.Movies;
+using System.Collections.Generic;
+using System.ComponentModel.Composition;
+using System.IO;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Controller.Providers.Movies
+{
+ [Export(typeof(BaseMetadataProvider))]
+ public class MovieSpecialFeaturesProvider : BaseMetadataProvider
+ {
+ public override bool Supports(BaseEntity item)
+ {
+ return item is Movie;
+ }
+
+ public override MetadataProviderPriority Priority
+ {
+ get { return MetadataProviderPriority.First; }
+ }
+
+ public async override Task FetchAsync(BaseEntity item, ItemResolveEventArgs args)
+ {
+ if (args.ContainsFolder("specials"))
+ {
+ List<Video> items = new List<Video>();
+
+ foreach (WIN32_FIND_DATA file in FileData.GetFileSystemEntries(Path.Combine(args.Path, "specials"), "*"))
+ {
+ Video video = await Kernel.Instance.ItemController.GetItem(file.Path, fileInfo: file).ConfigureAwait(false) as Video;
+
+ if (video != null)
+ {
+ items.Add(video);
+ }
+ }
+
+ (item as Movie).SpecialFeatures = items;
+ }
+ }
+ }
+}