فهرست منبع

Simplification

cvium 4 سال پیش
والد
کامیت
457229c56d
2فایلهای تغییر یافته به همراه14 افزوده شده و 18 حذف شده
  1. 5 0
      Emby.Naming/TV/EpisodeResolver.cs
  2. 9 18
      Emby.Server.Implementations/Library/LibraryManager.cs

+ 5 - 0
Emby.Naming/TV/EpisodeResolver.cs

@@ -68,6 +68,11 @@ namespace Emby.Naming.TV
             var parsingResult = new EpisodePathParser(_options)
                 .Parse(path, isDirectory, isNamed, isOptimistic, supportsAbsoluteNumbers, fillExtendedInfo);
 
+            if (!parsingResult.Success)
+            {
+                return null;
+            }
+
             return new EpisodeInfo(path)
             {
                 Container = container,

+ 9 - 18
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -2529,25 +2529,16 @@ namespace Emby.Server.Implementations.Library
             EpisodeInfo episodeInfo = null;
             if (episode.IsFileProtocol)
             {
-                episodeInfo = resolver.Resolve(episode.Path, isFolder, null, null, isAbsoluteNaming) ?? new EpisodeInfo(episode.Path);
+                episodeInfo = resolver.Resolve(episode.Path, isFolder, null, null, isAbsoluteNaming);
                 // Resolve from parent folder if it's not the Season folder
-                if (!episodeInfo.EpisodeNumber.HasValue && episode.Parent.GetType() == typeof(Folder))
-                {
-                    var episodeInfoFromFolder = resolver.Resolve(Path.GetDirectoryName(episode.Path)!, true, null, null, isAbsoluteNaming);
-                    // merge the missing information
-                    episodeInfo.SeriesName = episodeInfoFromFolder?.SeriesName;
-                    episodeInfo.EpisodeNumber ??= episodeInfoFromFolder?.EpisodeNumber;
-                    episodeInfo.EndingEpisodeNumber ??= episodeInfoFromFolder?.EndingEpisodeNumber;
-                    episodeInfo.SeasonNumber ??= episodeInfoFromFolder?.SeasonNumber;
-                    episodeInfo.Container ??= episodeInfoFromFolder?.Container;
-                    episodeInfo.Format3D ??= episodeInfoFromFolder?.Format3D;
-                    episodeInfo.Is3D = episodeInfoFromFolder?.Is3D ?? episodeInfo.Is3D;
-                    episodeInfo.IsStub = episodeInfoFromFolder?.IsStub ?? episodeInfo.IsStub;
-                    episodeInfo.StubType = episodeInfoFromFolder?.StubType;
-                    episodeInfo.IsByDate = episodeInfoFromFolder?.IsByDate ?? episodeInfo.IsByDate;
-                    episodeInfo.Day ??= episodeInfoFromFolder?.Day;
-                    episodeInfo.Month ??= episodeInfoFromFolder?.Month;
-                    episodeInfo.Year ??= episodeInfoFromFolder?.Year;
+                if (episodeInfo == null && episode.Parent.GetType() == typeof(Folder))
+                {
+                    episodeInfo = resolver.Resolve(Path.GetDirectoryName(episode.Path)!, true, null, null, isAbsoluteNaming);
+                    if (episodeInfo != null)
+                    {
+                        // add the container
+                        episodeInfo.Container = Path.GetExtension(episode.Path)?.TrimStart('.');
+                    }
                 }
             }