mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-18 06:53:07 +03:00
add custom intros path
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user