소스 검색

Clean Extra Names

- Adds regular expression to CleanStrings to remove suffix style extra naming from the name presented in JF.
- Override Resolve for Extras to enable parsename
- remove exclusion on parsename of extratypes
SenorSmartyPants 2 년 전
부모
커밋
b96420b786
3개의 변경된 파일12개의 추가작업 그리고 5개의 파일을 삭제
  1. 2 1
      Emby.Naming/Common/NamingOptions.cs
  2. 1 2
      Emby.Naming/Video/VideoResolver.cs
  3. 9 2
      Emby.Server.Implementations/Library/Resolvers/ExtraResolver.cs

+ 2 - 1
Emby.Naming/Common/NamingOptions.cs

@@ -157,7 +157,8 @@ namespace Emby.Naming.Common
                 @"^(?<cleaned>.+?)(\[.*\])",
                 @"^\s*(?<cleaned>.+?)\WE[0-9]+(-|~)E?[0-9]+(\W|$)",
                 @"^\s*\[[^\]]+\](?!\.\w+$)\s*(?<cleaned>.+)",
-                @"^\s*(?<cleaned>.+?)\s+-\s+[0-9]+\s*$"
+                @"^\s*(?<cleaned>.+?)\s+-\s+[0-9]+\s*$",
+                @"^\s*(?<cleaned>.+?)(([-._ ](trailer|sample))|-(scene|clip|behindthescenes|deleted|deletedscene|featurette|short|interview|other|extra))$"
             };
 
             SubtitleFileExtensions = new[]

+ 1 - 2
Emby.Naming/Video/VideoResolver.cs

@@ -87,8 +87,7 @@ namespace Emby.Naming.Video
                 name = cleanDateTimeResult.Name;
                 year = cleanDateTimeResult.Year;
 
-                if (extraResult.ExtraType is null
-                    && TryCleanString(name, namingOptions, out var newName))
+                if (TryCleanString(name, namingOptions, out var newName))
                 {
                     name = newName;
                 }

+ 9 - 2
Emby.Server.Implementations/Library/Resolvers/ExtraResolver.cs

@@ -4,6 +4,7 @@ using System.IO;
 using Emby.Naming.Common;
 using Emby.Naming.Video;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Controller.Resolvers;
 using MediaBrowser.Model.Entities;
@@ -15,7 +16,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
     /// <summary>
     /// Resolves a Path into a Video or Video subclass.
     /// </summary>
-    internal class ExtraResolver
+    internal class ExtraResolver : BaseVideoResolver<Video>
     {
         private readonly NamingOptions _namingOptions;
         private readonly IItemResolver[] _trailerResolvers;
@@ -28,10 +29,16 @@ namespace Emby.Server.Implementations.Library.Resolvers
         /// <param name="namingOptions">An instance of <see cref="NamingOptions"/>.</param>
         /// <param name="directoryService">The directory service.</param>
         public ExtraResolver(ILogger<ExtraResolver> logger, NamingOptions namingOptions, IDirectoryService directoryService)
+            : base(logger, namingOptions, directoryService)
         {
             _namingOptions = namingOptions;
             _trailerResolvers = new IItemResolver[] { new GenericVideoResolver<Trailer>(logger, namingOptions, directoryService) };
-            _videoResolvers = new IItemResolver[] { new GenericVideoResolver<Video>(logger, namingOptions, directoryService) };
+            _videoResolvers = new IItemResolver[] { this };
+        }
+
+        protected override Video Resolve(ItemResolveArgs args)
+        {
+            return ResolveVideo<Video>(args, true);
         }
 
         /// <summary>