aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library
AgeCommit message (Collapse)Author
28 hoursMerge pull request #17399 from Shadowghost/fix-extra-yearCody Robibero
Fix incorrect year on local trailers
32 hoursMerge pull request #17395 from paoloantinori/fix/userdata-null-user-nre-masterCody Robibero
Avoid NRE when sorting by user-dependent keys without a user
34 hoursRemove added comments (#17395 review)Paolo Antinori
5 daysPrefer null checks over HasValue everywhereShadowghost
5 daysfix: avoid NRE when sorting by user-dependent keys without a userPaolo Antinori
A query sorted by a user-dependent key (PlayCount, IsFavoriteOrLiked, DatePlayed, IsPlayed, IsUnplayed) but carrying no User caused a NullReferenceException inside UserDataManager.GetUserData, surfacing as "Failed to compare two elements in the array" (InvalidOperationException wrapping the NRE from the LINQ sort) and 500-ing the /Items request. Root cause: LibraryManager.GetComparer assigned comparer.User = user without a null guard, so PlayCountComparer.GetValue called UserDataManager.GetUserData(null, item), dereferencing user.Id. Two-part fix: - LibraryManager.GetComparer: when user is null and the sort key requires a user (IUserBaseItemComparer), substitute the SortName comparer so the result stays deterministic instead of 500-ing. SortName is the project's canonical tiebreaker (ItemsController injects it for album-by-artist). - UserDataManager.GetUserData: ArgumentNullException.ThrowIfNull(user) as defense in depth (matches the existing guards on the SaveUserData overloads in the same file). On master this overload was rewritten to use ResolveUserDataRow, so the NRE dereferences user.Id rather than user.InternalId as on the release branch — same bug, different line. Also fixes DateLastMediaAddedComparer being statically mis-tagged as IUserBaseItemComparer: its GetDate is static and never reads User, so it does not need one. Without this, the SortName fallback above would wrongly engage for DateLastContentAdded on anonymous queries (returning SortName order instead of date order). Re-tagged to IBaseItemComparer and dropped the unused User/UserManager/UserDataManager properties. Tests: - UserDataManagerTests.GetUserData_NullUser_ThrowsArgumentNullException: reproduces the crash (NRE -> now ArgumentNullException). Added to master's existing UserDataManagerTests. - LibraryManagerSortTests.Sort_UserDependentKey_NullUser_FallsBackToSortNameWithoutThrowing: Sort with a user-dependent key + null user no longer throws and returns items ordered by the SortName fallback (direction preserved). - LibraryManagerSortTests.Sort_DateLastContentAdded_NullUser_OrdersByDateNotSortName: guards that DateLastContentAdded still sorts by date with no user (fixture chosen so date-desc and SortName-desc disagree, so a revert is caught). Full Jellyfin.Server.Implementations.Tests suite: 642 passed, 0 failed. Fixes #17393
5 daysMerge pull request #16980 from ↵Cody Robibero
TheMelmacian/feature/library_specific_language_filter_values Improve language filters to only fetch language codes that match the requested items/libraries (follow up to #9787)
5 daysFix incorrect year on local trailersShadowghost
6 daysMerge remote-tracking branch 'upstream/master' into ↵Shadowghost
security-path-traversal-fixes # Conflicts: # Jellyfin.Api/Controllers/HlsSegmentController.cs # Jellyfin.Api/Controllers/PluginsController.cs
6 daysMerge pull request #17320 from TaterTechStudios/fix/item-correct-selectorCody Robibero
Fix: Fetch the correct row matching the most up to date file
6 daysMerge pull request #17254 from sjakub/attribute_aliasesCody Robibero
Add additional attribute aliases and improve attribute detection
6 daysAdd TVDB provider ID support for movies (#17255)theguymadmax
Add TVDB provider ID support for movies
7 daysMerge pull request #17365 from Shadowghost/fix-resume-perfBond-009
Fix Resume query performance
9 daysMerge pull request #17327 from ↵Bond-009
Shadowghost/remove-playbackpositionticks-mediasourceinfo Remove PlaybackPositionTicks from MediaSourceInfo
9 daysSanitize media attachment and lyric paths against traversalShadowghost
10 daysFix user data batch query perfShadowghost
11 daysMove GetUserDataBatch to use ResolveUserDataRow when item.UserData isn't ↵Jordan Rushing
preloaded
11 daysLimit similar items to user accessible librariesShadowghost
13 daysremove PlaybackPositionTicks from MediaSourceInfoShadowghost
13 daysFix: Fetch the correct row matching the most up to date fileJordan Rushing
2026-07-08Replaced string.Empty with ReadOnlySpan<char>.EmptyJakub Schmidtke
2026-07-07Added more aliases for attributesJakub Schmidtke
Adds tvdb alias for tvdbid and imdb alias for imdbid. It also fixes an issue where tmdb alias was being ignored if it was followed by something like "tmdbidfoo". The same issue prevented imdb pattern matching from working, if it was followed by something like "imdbidfoo". It also allows for detecting the first matching occurence, whether it was an alias or not. Finally, it ignores attributes with values consisting of only whitespaces.
2026-07-05Merge pull request #17044 from Shadowghost/version-model-and-handlingCody Robibero
Fixes for multi version handling
2026-07-03Fix ghost entries when deleting library pathstheguymadmax
2026-07-02Fix review commentsShadowghost
2026-06-21Merge pull request #17116 from theguymadmax/fix-root-folder-parsingBond-009
2026-06-19Surface the played version for resumeShadowghost
2026-06-18Merge pull request #17112 from theguymadmax/add-year-to-series-resolverBond-009
Fix series year lost during name parsing
2026-06-15Skip parsing root-level folders in SeriesResolvertheguymadmax
2026-06-15Fix series year lost during parsingtheguymadmax
2026-06-15improve book resolution from filenamedkanada
2026-06-12Fix performanceShadowghost
2026-06-10Merge remote-tracking branch 'upstream/master' into version-model-and-handlingShadowghost
2026-06-09Coalesce alternate-version progress onto primary in resume filterShadowghost
2026-06-08Merge pull request #17041 from Shadowghost/media-source-handling-fixesBond-009
Media source handling fixes
2026-06-08Merge pull request #10841 from Bond-009/LiveTvImageFixBond-009
Refresh live TV channel image when remapped (alt #7843) (fixes #7834)
2026-06-07Keep the queried item's media source as the playback default in ↵Shadowghost
MediaSourceManager
2026-06-07Filter inaccessible alternative versionsShadowghost
2026-06-07Add version-aware playback trackingShadowghost
2026-06-07Merge pull request #16121 from Shadowghost/search-rebasedBond-009
Implement search providers
2026-06-07Apply suggestions from code reviewTim Eisele
Co-authored-by: Bond-009 <bond.009@outlook.com>
2026-06-07Merge pull request #16941 from Shadowghost/fix-external-data-pruningBond-009
Fix external data pruning on item deletion
2026-06-07Omit external trickplay directory if itme has no pathShadowghost
2026-06-03Do not set topParentId if OwnerIds are emptyShadowghost
2026-06-01Only resolve symlinks on playback (#16965)Tim Eisele
Only resolve symlinks on playback
2026-05-31Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
2026-05-31Fix similarity (#16942)Tim Eisele
Fix similarity
2026-05-31Add support for VobSub subtitle streams (#16552)Neptune
* Add support for VobSub subtitle streams * update logic to determine separate extraction for VobSub subtitles * simplify VobSub extraction logic and fix ffmpeg command * Match `ExtractAllExtractableSubtitlesMKS` with `ExtractAllExtractableSubtitlesInternal` Matroska's VobSub option * Add a comments clarify why MKS was used, and remove the redundant VobSub extension branch * remove redundant VobSub format check * fix type errors
2026-05-30Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
# Conflicts: # Emby.Server.Implementations/Library/LibraryManager.cs # Jellyfin.Server.Implementations/Item/PeopleRepository.cs # MediaBrowser.Controller/Library/ILibraryManager.cs # MediaBrowser.Controller/Persistence/IPeopleRepository.cs
2026-05-30only fetch language codes for the requested library when generating filter ↵TheMelmacian
values
2026-05-27Merge pull request #16856 from Shadowghost/movie-recommendationsBond-009
Fix movie recommendations