aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library/Resolvers/TV
diff options
context:
space:
mode:
authorstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
committerstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
commit48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch)
tree8dae77a31670a888d733484cb17dd4077d5444e8 /Emby.Server.Implementations/Library/Resolvers/TV
parentc32d8656382a0eacb301692e0084377fc433ae9b (diff)
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'Emby.Server.Implementations/Library/Resolvers/TV')
-rw-r--r--Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs16
-rw-r--r--Emby.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs22
2 files changed, 27 insertions, 11 deletions
diff --git a/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs b/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs
index 3bad69b562..d8343f7c65 100644
--- a/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs
+++ b/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs
@@ -50,24 +50,29 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
var path = args.Path;
+ var seasonParserResult = new SeasonPathParser(namingOptions).Parse(path, true, true);
+
var season = new Season
{
- IndexNumber = new SeasonPathParser(namingOptions, new RegexProvider()).Parse(path, true, true).SeasonNumber,
+ IndexNumber = seasonParserResult.SeasonNumber,
SeriesId = series.Id,
SeriesName = series.Name
};
- if (season.IndexNumber.HasValue)
+ if (!season.IndexNumber.HasValue || !seasonParserResult.IsSeasonFolder)
{
var resolver = new Emby.Naming.TV.EpisodeResolver(namingOptions);
- var episodeInfo = resolver.Resolve(path, true);
+ var folderName = System.IO.Path.GetFileName(path);
+ var testPath = "\\\\test\\" + folderName;
+
+ var episodeInfo = resolver.Resolve(testPath, true);
if (episodeInfo != null)
{
if (episodeInfo.EpisodeNumber.HasValue && episodeInfo.SeasonNumber.HasValue)
{
- _logger.Info("Found folder underneath series with episode number: {0}. Season {1}. Episode {2}",
+ _logger.Debug("Found folder underneath series with episode number: {0}. Season {1}. Episode {2}",
path,
episodeInfo.SeasonNumber.Value,
episodeInfo.EpisodeNumber.Value);
@@ -75,7 +80,10 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
return null;
}
}
+ }
+ if (season.IndexNumber.HasValue)
+ {
var seasonNumber = season.IndexNumber.Value;
season.Name = seasonNumber == 0 ?
diff --git a/Emby.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs b/Emby.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs
index a693e3b264..951f439c24 100644
--- a/Emby.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs
+++ b/Emby.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs
@@ -82,11 +82,11 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
};
}
}
- else if (string.IsNullOrWhiteSpace(collectionType))
+ else if (string.IsNullOrEmpty(collectionType))
{
if (args.ContainsFileSystemEntryByName("tvshow.nfo"))
{
- if (args.Parent.IsRoot)
+ if (args.Parent != null && args.Parent.IsRoot)
{
// For now, return null, but if we want to allow this in the future then add some additional checks to guard against a misplaced tvshow.nfo
return null;
@@ -99,7 +99,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
};
}
- if (args.Parent.IsRoot)
+ if (args.Parent != null && args.Parent.IsRoot)
{
return null;
}
@@ -160,11 +160,19 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
return true;
}
- var allowOptimisticEpisodeDetection = isTvContentType;
- var namingOptions = ((LibraryManager)libraryManager).GetNamingOptions(allowOptimisticEpisodeDetection);
+ var namingOptions = ((LibraryManager)libraryManager).GetNamingOptions();
var episodeResolver = new Emby.Naming.TV.EpisodeResolver(namingOptions);
- var episodeInfo = episodeResolver.Resolve(fullName, false, false);
+ bool? isNamed = null;
+ bool? isOptimistic = null;
+
+ if (!isTvContentType)
+ {
+ isNamed = true;
+ isOptimistic = false;
+ }
+
+ var episodeInfo = episodeResolver.Resolve(fullName, false, isNamed, isOptimistic, null, false);
if (episodeInfo != null && episodeInfo.EpisodeNumber.HasValue)
{
return true;
@@ -206,7 +214,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
{
var namingOptions = ((LibraryManager)libraryManager).GetNamingOptions();
- var seasonNumber = new SeasonPathParser(namingOptions, new RegexProvider()).Parse(path, isTvContentType, isTvContentType).SeasonNumber;
+ var seasonNumber = new SeasonPathParser(namingOptions).Parse(path, isTvContentType, isTvContentType).SeasonNumber;
return seasonNumber.HasValue;
}