make chapter images a per-library setting

This commit is contained in:
Luke Pulverenti 2016-08-29 17:06:24 -04:00
parent 4cafe5c493
commit 2bdaba633c
4 changed files with 37 additions and 15 deletions

View File

@ -106,7 +106,7 @@ namespace MediaBrowser.Controller.Entities
{
LibraryOptions[path] = options;
options.SchemaVersion = 1;
options.SchemaVersion = 2;
XmlSerializer.SerializeToFile(options, GetLibraryOptionsPath(path));
}
}

View File

@ -6,6 +6,8 @@
public bool EnablePhotos { get; set; }
public bool EnableRealtimeMonitor { get; set; }
public int SchemaVersion { get; set; }
public bool EnableChapterImageExtraction { get; set; }
public bool ExtractChapterImagesDuringLibraryScan { get; set; }
public LibraryOptions()
{

View File

@ -261,11 +261,18 @@ namespace MediaBrowser.Providers.MediaInfo
NormalizeChapterNames(chapters);
var libraryOptions = _libraryManager.GetLibraryOptions(video);
var extractDuringScan = chapterOptions.ExtractDuringLibraryScan;
if (libraryOptions != null && libraryOptions.SchemaVersion >= 2)
{
extractDuringScan = libraryOptions.ExtractChapterImagesDuringLibraryScan;
}
await _encodingManager.RefreshChapterImages(new ChapterImageRefreshOptions
{
Chapters = chapters,
Video = video,
ExtractImages = chapterOptions.ExtractDuringLibraryScan,
ExtractImages = extractDuringScan,
SaveChapters = false
}, cancellationToken).ConfigureAwait(false);

View File

@ -14,6 +14,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
using MediaBrowser.Controller.Library;
namespace MediaBrowser.Server.Implementations.MediaEncoder
{
@ -24,6 +25,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
private readonly ILogger _logger;
private readonly IMediaEncoder _encoder;
private readonly IChapterManager _chapterManager;
private readonly ILibraryManager _libraryManager;
public EncodingManager(IFileSystem fileSystem,
ILogger logger,
@ -57,27 +59,38 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
return false;
}
var options = _chapterManager.GetConfiguration();
if (video is Movie)
var libraryOptions = _libraryManager.GetLibraryOptions(video);
if (libraryOptions != null && libraryOptions.SchemaVersion >= 2)
{
if (!options.EnableMovieChapterImageExtraction)
{
return false;
}
}
else if (video is Episode)
{
if (!options.EnableEpisodeChapterImageExtraction)
if (!libraryOptions.EnableChapterImageExtraction)
{
return false;
}
}
else
{
if (!options.EnableOtherVideoChapterImageExtraction)
var options = _chapterManager.GetConfiguration();
if (video is Movie)
{
return false;
if (!options.EnableMovieChapterImageExtraction)
{
return false;
}
}
else if (video is Episode)
{
if (!options.EnableEpisodeChapterImageExtraction)
{
return false;
}
}
else
{
if (!options.EnableOtherVideoChapterImageExtraction)
{
return false;
}
}
}