[PR #4551] [MERGED] Only trim file name if folder name is shorter #10152

Closed
opened 2026-02-07 06:14:59 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/4551
Author: @crobibero
Created: 11/23/2020
Status: Merged
Merged: 11/23/2020
Merged by: @dkanada

Base: masterHead: fix-name-cleaning


📝 Commits (2)

  • 2aefe9e Only trim file name if folder name is shorter
  • 20251e6 Fix tests

📊 Changes

1 file changed (+5 additions, -1 deletions)

View changed files

📝 Emby.Naming/Video/VideoListResolver.cs (+5 -1)

📄 Description

Reported via #LinuxUnplugged Bug-a-Thon

Fixes

[14:07:07] [ERR] [5] Emby.Server.Implementations.Library.LibraryManager: Error in MovieResolver resolving D:\Media\Movies\Children.of.a.Lesser.God.1986.1080p.WEBRip.x264-RARBG
System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string. (Parameter 'startIndex')
   at System.String.Substring(Int32 startIndex, Int32 length)
   at System.String.Substring(Int32 startIndex)
   at Emby.Naming.Video.VideoListResolver.IsEligibleForMultiVersion(String folderName, String testFilename) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 230
   at Emby.Naming.Video.VideoListResolver.<>c__DisplayClass3_0.<GetVideosGroupedByVersion>b__0(VideoInfo i) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 187
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at Emby.Naming.Video.VideoListResolver.GetVideosGroupedByVersion(List`1 videos) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 185
   at Emby.Naming.Video.VideoListResolver.Resolve(List`1 files, Boolean supportMultiVersion) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 108
   at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveVideos[T](Folder parent, IEnumerable`1 fileSystemEntries, IDirectoryService directoryService, Boolean suppportMultiEditions, String collectionTyp
e, Boolean parseName) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 157
   at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.FindMovie[T](ItemResolveArgs args, String path, Folder parent, List`1 fileSystemEntries, IDirectoryService directoryService, String collectionType, Bool
ean parseName) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 433
   at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.Resolve(ItemResolveArgs args) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line
271
   at MediaBrowser.Controller.Resolvers.ItemResolver`1.MediaBrowser.Controller.Resolvers.IItemResolver.ResolvePath(ItemResolveArgs args) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\MediaBrowser.Controller\Resolvers\BaseIte
mResolver.cs:line 45
   at Emby.Server.Implementations.Library.LibraryManager.Resolve(ItemResolveArgs args, IItemResolver resolver) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\LibraryManager.cs:line 491
[14:07:07] [ERR] [5] MediaBrowser.Controller.Entities.BaseItem: Error retrieving children folder
System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string. (Parameter 'startIndex')
   at System.String.Substring(Int32 startIndex, Int32 length)
   at System.String.Substring(Int32 startIndex)
   at Emby.Naming.Video.VideoListResolver.IsEligibleForMultiVersion(String folderName, String testFilename) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 230
   at Emby.Naming.Video.VideoListResolver.<>c__DisplayClass3_0.<GetVideosGroupedByVersion>b__0(VideoInfo i) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 187
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at Emby.Naming.Video.VideoListResolver.GetVideosGroupedByVersion(List`1 videos) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 185
   at Emby.Naming.Video.VideoListResolver.Resolve(List`1 files, Boolean supportMultiVersion) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 108
   at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveVideos[T](Folder parent, IEnumerable`1 fileSystemEntries, IDirectoryService directoryService, Boolean suppportMultiEditions, String collectionTyp
e, Boolean parseName) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 157
   at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveMultipleInternal(Folder parent, List`1 files, String collectionType, IDirectoryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin-
master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 112
   at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveMultiple(Folder parent, List`1 files, String collectionType, IDirectoryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\E
mby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 59
   at Emby.Server.Implementations.Library.LibraryManager.ResolvePaths(IEnumerable`1 files, IDirectoryService directoryService, Folder parent, LibraryOptions libraryOptions, String collectionType, IItemResolver[] resolvers) in
 C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\LibraryManager.cs:line 679
   at Emby.Server.Implementations.Library.LibraryManager.ResolvePaths(IEnumerable`1 files, IDirectoryService directoryService, Folder parent, LibraryOptions libraryOptions, String collectionType) in C:\Users\Cody\Code\Jellyfi
n\jellyfin-master\Emby.Server.Implementations\Library\LibraryManager.cs:line 660
   at MediaBrowser.Controller.Entities.Folder.GetNonCachedChildren(IDirectoryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\MediaBrowser.Controller\Entities\Folder.cs:line 581
   at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirec
toryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\MediaBrowser.Controller\Entities\Folder.cs:line 323


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/4551 **Author:** [@crobibero](https://github.com/crobibero) **Created:** 11/23/2020 **Status:** ✅ Merged **Merged:** 11/23/2020 **Merged by:** [@dkanada](https://github.com/dkanada) **Base:** `master` ← **Head:** `fix-name-cleaning` --- ### 📝 Commits (2) - [`2aefe9e`](https://github.com/jellyfin/jellyfin/commit/2aefe9ed5a32a91c6e089456a082471f2c51b94b) Only trim file name if folder name is shorter - [`20251e6`](https://github.com/jellyfin/jellyfin/commit/20251e670f485dde010de5ff63454cacb2f6ba5f) Fix tests ### 📊 Changes **1 file changed** (+5 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Naming/Video/VideoListResolver.cs` (+5 -1) </details> ### 📄 Description Reported via #LinuxUnplugged Bug-a-Thon Fixes ``` [14:07:07] [ERR] [5] Emby.Server.Implementations.Library.LibraryManager: Error in MovieResolver resolving D:\Media\Movies\Children.of.a.Lesser.God.1986.1080p.WEBRip.x264-RARBG System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string. (Parameter 'startIndex') at System.String.Substring(Int32 startIndex, Int32 length) at System.String.Substring(Int32 startIndex) at Emby.Naming.Video.VideoListResolver.IsEligibleForMultiVersion(String folderName, String testFilename) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 230 at Emby.Naming.Video.VideoListResolver.<>c__DisplayClass3_0.<GetVideosGroupedByVersion>b__0(VideoInfo i) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 187 at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate) at Emby.Naming.Video.VideoListResolver.GetVideosGroupedByVersion(List`1 videos) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 185 at Emby.Naming.Video.VideoListResolver.Resolve(List`1 files, Boolean supportMultiVersion) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 108 at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveVideos[T](Folder parent, IEnumerable`1 fileSystemEntries, IDirectoryService directoryService, Boolean suppportMultiEditions, String collectionTyp e, Boolean parseName) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 157 at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.FindMovie[T](ItemResolveArgs args, String path, Folder parent, List`1 fileSystemEntries, IDirectoryService directoryService, String collectionType, Bool ean parseName) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 433 at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.Resolve(ItemResolveArgs args) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 271 at MediaBrowser.Controller.Resolvers.ItemResolver`1.MediaBrowser.Controller.Resolvers.IItemResolver.ResolvePath(ItemResolveArgs args) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\MediaBrowser.Controller\Resolvers\BaseIte mResolver.cs:line 45 at Emby.Server.Implementations.Library.LibraryManager.Resolve(ItemResolveArgs args, IItemResolver resolver) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\LibraryManager.cs:line 491 [14:07:07] [ERR] [5] MediaBrowser.Controller.Entities.BaseItem: Error retrieving children folder System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string. (Parameter 'startIndex') at System.String.Substring(Int32 startIndex, Int32 length) at System.String.Substring(Int32 startIndex) at Emby.Naming.Video.VideoListResolver.IsEligibleForMultiVersion(String folderName, String testFilename) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 230 at Emby.Naming.Video.VideoListResolver.<>c__DisplayClass3_0.<GetVideosGroupedByVersion>b__0(VideoInfo i) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 187 at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate) at Emby.Naming.Video.VideoListResolver.GetVideosGroupedByVersion(List`1 videos) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 185 at Emby.Naming.Video.VideoListResolver.Resolve(List`1 files, Boolean supportMultiVersion) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Naming\Video\VideoListResolver.cs:line 108 at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveVideos[T](Folder parent, IEnumerable`1 fileSystemEntries, IDirectoryService directoryService, Boolean suppportMultiEditions, String collectionTyp e, Boolean parseName) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 157 at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveMultipleInternal(Folder parent, List`1 files, String collectionType, IDirectoryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin- master\Emby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 112 at Emby.Server.Implementations.Library.Resolvers.Movies.MovieResolver.ResolveMultiple(Folder parent, List`1 files, String collectionType, IDirectoryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\E mby.Server.Implementations\Library\Resolvers\Movies\MovieResolver.cs:line 59 at Emby.Server.Implementations.Library.LibraryManager.ResolvePaths(IEnumerable`1 files, IDirectoryService directoryService, Folder parent, LibraryOptions libraryOptions, String collectionType, IItemResolver[] resolvers) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\Emby.Server.Implementations\Library\LibraryManager.cs:line 679 at Emby.Server.Implementations.Library.LibraryManager.ResolvePaths(IEnumerable`1 files, IDirectoryService directoryService, Folder parent, LibraryOptions libraryOptions, String collectionType) in C:\Users\Cody\Code\Jellyfi n\jellyfin-master\Emby.Server.Implementations\Library\LibraryManager.cs:line 660 at MediaBrowser.Controller.Entities.Folder.GetNonCachedChildren(IDirectoryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\MediaBrowser.Controller\Entities\Folder.cs:line 581 at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirec toryService directoryService) in C:\Users\Cody\Code\Jellyfin\jellyfin-master\MediaBrowser.Controller\Entities\Folder.cs:line 323 ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 06:14:59 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#10152