update series resolver

This commit is contained in:
Luke Pulverenti
2017-06-15 13:22:05 -04:00
parent b615a2aeb1
commit ccb5b14d77
22 changed files with 906 additions and 643 deletions

View File

@@ -2505,9 +2505,32 @@ namespace Emby.Server.Implementations.Library
public NamingOptions GetNamingOptions()
{
return GetNamingOptions(true);
}
public NamingOptions GetNamingOptions(bool allowOptimisticEpisodeDetection)
{
if (!allowOptimisticEpisodeDetection)
{
if (_namingOptionsWithoutOptimisticEpisodeDetection == null)
{
var namingOptions = new ExtendedNamingOptions();
InitNamingOptions(namingOptions);
namingOptions.EpisodeExpressions = namingOptions.EpisodeExpressions
.Where(i => i.IsNamed && !i.IsOptimistic)
.ToList();
_namingOptionsWithoutOptimisticEpisodeDetection = namingOptions;
}
return _namingOptionsWithoutOptimisticEpisodeDetection;
}
return GetNamingOptions(new LibraryOptions());
}
private NamingOptions _namingOptionsWithoutOptimisticEpisodeDetection;
private NamingOptions _namingOptions;
private string[] _videoFileExtensions;
public NamingOptions GetNamingOptions(LibraryOptions libraryOptions)
@@ -2516,23 +2539,8 @@ namespace Emby.Server.Implementations.Library
{
var options = new ExtendedNamingOptions();
// These cause apps to have problems
options.AudioFileExtensions.Remove(".m3u");
options.AudioFileExtensions.Remove(".wpl");
InitNamingOptions(options);
//if (!libraryOptions.EnableArchiveMediaFiles)
{
options.AudioFileExtensions.Remove(".rar");
options.AudioFileExtensions.Remove(".zip");
}
//if (!libraryOptions.EnableArchiveMediaFiles)
{
options.VideoFileExtensions.Remove(".rar");
options.VideoFileExtensions.Remove(".zip");
}
options.VideoFileExtensions.Add(".tp");
_namingOptions = options;
_videoFileExtensions = _namingOptions.VideoFileExtensions.ToArray();
}
@@ -2540,6 +2548,27 @@ namespace Emby.Server.Implementations.Library
return _namingOptions;
}
private void InitNamingOptions(NamingOptions options)
{
// These cause apps to have problems
options.AudioFileExtensions.Remove(".m3u");
options.AudioFileExtensions.Remove(".wpl");
//if (!libraryOptions.EnableArchiveMediaFiles)
{
options.AudioFileExtensions.Remove(".rar");
options.AudioFileExtensions.Remove(".zip");
}
//if (!libraryOptions.EnableArchiveMediaFiles)
{
options.VideoFileExtensions.Remove(".rar");
options.VideoFileExtensions.Remove(".zip");
}
options.VideoFileExtensions.Add(".tp");
}
public ItemLookupInfo ParseName(string name)
{
var resolver = new VideoResolver(GetNamingOptions(), new NullLogger());

View File

@@ -3,6 +3,7 @@ using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Entities;
using System;
using MediaBrowser.Controller.Entities;
using System.IO;
namespace Emby.Server.Implementations.Library.Resolvers.Audio
{
@@ -42,6 +43,13 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
if (_libraryManager.IsAudioFile(args.Path, libraryOptions))
{
if (string.Equals(Path.GetExtension(args.Path), ".cue", StringComparison.OrdinalIgnoreCase))
{
// if audio file exists of same name, return null
return null;
}
var collectionType = args.GetCollectionType();
var isMixed = string.IsNullOrWhiteSpace(collectionType);

View File

@@ -160,15 +160,8 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
return true;
}
var namingOptions = ((LibraryManager)libraryManager).GetNamingOptions();
// In mixed folders we need to be conservative and avoid expressions that may result in false positives (e.g. movies with numbers in the title)
if (!isTvContentType)
{
namingOptions.EpisodeExpressions = namingOptions.EpisodeExpressions
.Where(i => i.IsNamed && !i.IsOptimistic)
.ToList();
}
var allowOptimisticEpisodeDetection = isTvContentType;
var namingOptions = ((LibraryManager)libraryManager).GetNamingOptions(allowOptimisticEpisodeDetection);
var episodeResolver = new MediaBrowser.Naming.TV.EpisodeResolver(namingOptions, new NullLogger());
var episodeInfo = episodeResolver.Resolve(fullName, false, false);