aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-22 20:04:50 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-22 20:04:50 -0400
commit99dba814f405f08111b36ace4ba8a7fc7a273245 (patch)
treed20cda1d4f8579ae438d2660afce69f5caf24003 /MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs
parent1afb28b48797ee53442823cfd395e07d219e8ec3 (diff)
add custom intros path
Diffstat (limited to 'MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs40
1 files changed, 31 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs b/MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs
index b5e449eae..97129368e 100644
--- a/MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs
+++ b/MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs
@@ -6,11 +6,13 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Localization;
+using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -55,11 +57,6 @@ namespace MediaBrowser.Server.Implementations.Intros
return new List<IntroInfo>();
}
- if (!IsSupporter)
- {
- return new List<IntroInfo>();
- }
-
var ratingLevel = string.IsNullOrWhiteSpace(item.OfficialRating)
? (int?)null
: _localization.GetRatingLevel(item.OfficialRating);
@@ -98,7 +95,7 @@ namespace MediaBrowser.Server.Implementations.Intros
}));
}
- if (config.EnableIntrosFromUpcomingTrailers)
+ if (config.EnableIntrosFromUpcomingTrailers && IsSupporter)
{
var channelTrailers = await _channelManager.GetAllMediaInternal(new AllChannelMediaQuery
{
@@ -137,7 +134,6 @@ namespace MediaBrowser.Server.Implementations.Intros
}
// Avoid implicitly captured closure
- var currentUser = user;
return candidates.Where(i =>
{
if (config.EnableIntrosParentalControl && !FilterByParentalRating(ratingLevel, i.Item))
@@ -166,7 +162,33 @@ namespace MediaBrowser.Server.Implementations.Intros
private List<IntroInfo> GetCustomIntros(BaseItem item)
{
- return new List<IntroInfo>();
+ try
+ {
+ return GetCustomIntroFiles()
+ .OrderBy(i => Guid.NewGuid())
+ .Select(i => new IntroInfo
+ {
+ Path = i
+
+ }).ToList();
+ }
+ catch (IOException)
+ {
+ return new List<IntroInfo>();
+ }
+ }
+
+ private IEnumerable<string> GetCustomIntroFiles(CinemaModeConfiguration options = null)
+ {
+ options = options ?? GetOptions();
+
+ if (string.IsNullOrWhiteSpace(options.CustomIntroPath))
+ {
+ return new List<string>();
+ }
+
+ return Directory.EnumerateFiles(options.CustomIntroPath, "*", SearchOption.AllDirectories)
+ .Where(EntityResolutionHelper.IsVideoFile);
}
private bool FilterByParentalRating(int? ratingLevel, BaseItem item)
@@ -265,7 +287,7 @@ namespace MediaBrowser.Server.Implementations.Intros
public IEnumerable<string> GetAllIntroFiles()
{
- return new List<string>();
+ return GetCustomIntroFiles();
}
private bool IsSupporter