aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Library
AgeCommit message (Collapse)Author
21 hoursMerge pull request #17579 from Shadowghost/fix-removal-notificationCody Robibero
Fix missing ItemRemoved events and search fallback after access filtering
3 daysAddress review on MediaSourceCount batchingbrandon
Rename GetItemsWithAlternateVersions to GetItemIdsWithAlternateVersions across the interfaces and implementations since it returns ids. Return the hashset straight from the query instead of materializing an array first. Rename the DtoService guard to mayHaveAlternateVersions and invert it so the computed path is the explicit case. Assert the media source count value in the batch skip test and add a test covering an item that is in the returned set still resolving to the correct count.
3 daysFix missing ItemRemoved events and search fallback after access filteringShadowghost
4 daysBatch alternate version detection in DtoService to remove MediaSourceCount N+1brandon
Browsing a page of videos with the MediaSourceCount field ran one alternate version query per item, each opening a fresh DbContext. On a large library that turned a single page into hundreds of sequential round trips and made the Items endpoint take tens of seconds while holding a request thread the whole time. Detect which videos own alternate versions once per page with a single query, mirroring the existing people batch. Videos absent from that set have a single media source, so the per item lookups are skipped for the common case. Behavior is unchanged: a video with no alternates already resolved to a count of one. Adds a regression test asserting the count resolves from the batch and the per item lookups are never called.
4 daysBatch people lookups when building item DTOsbrandon
GetBaseItemDtos already batch fetches user data, child counts, played counts and artists before its per item loop, but AttachPeople still ran one GetPeople query per item. Rendering a page of items (for example a large playlist) fired one extra query per row. Add GetPeopleByItems to IPeopleRepository, which reads every requested item in a single query over the people mapping table and returns full PersonInfo (role, type and sort order) grouped by item id. GetBaseItemDtos prefetches this once when the People field is requested and passes it into AttachPeople, which reads from the batch instead of querying per item. The single item GetBaseItemDto path keeps its existing per item behaviour when no batch is supplied. Adds a DtoService test asserting people resolve from the batch and the per item GetPeople is never called.
2026-07-21Merge 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)
2026-07-02Fix review commentsShadowghost
2026-06-19Surface the played version for resumeShadowghost
2026-06-09Coalesce alternate-version progress onto primary in resume filterShadowghost
2026-06-07Add version-aware playback trackingShadowghost
2026-05-31Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
2026-05-31Fix similarity (#16942)Tim Eisele
Fix similarity
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
2026-05-24Add batch method for people namesShadowghost
2026-05-24Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
2026-05-21Run tree-wide dotnet formatjakobkukla
2026-05-16Apply review and sonar suggestionsShadowghost
2026-05-16Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
2026-05-16Address review commentsShadowghost
2026-05-15Merge pull request #9787 from TheMelmacian/feature/language_filtersBond-009
New filters for audio and subtitle languages
2026-05-15Fix movie recommendationsShadowghost
2026-05-15Merge pull request #15970 from Shadowghost/similarityBond-009
Implement similarity providers
2026-05-13Apply review suggestionsShadowghost
2026-05-12Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
2026-05-12move language filters from QueryFiltersLegacy to QueryFiltersTheMelmacian
2026-05-05Backport changes from #15368JPVenson
2026-05-04Merge pull request #16166 from Shadowghost/ignore-cachingNiels van Velzen
Implement ignore rule caching
2026-05-04Merge pull request #16616 from dkanada/fix-person-limitNiels van Velzen
fix person TotalRecordCount when limit is applied
2026-05-04fix person TotalRecordCount when limit is applieddkanada
2026-05-04Implement search providersShadowghost
2026-05-03Implement Similarity providersShadowghost
2026-05-03Implement ignore rule cachingShadowghost
2026-03-11Fix DeleteItemsUnsafeFast usageShadowghost
2026-02-25Update saved metadata on primary changeShadowghost
2026-02-18Optimize item count calculation for named itemsShadowghost
2026-02-08Fix multiple version resolutionShadowghost
2026-02-07Fix version resolution and scan handlingShadowghost
2026-02-07Optimize Collection Grouping, NextUp and Latest queriesShadowghost
2026-02-05Fix multiple version handlingShadowghost
2026-01-31Optimize Validator and Filter PerformanceShadowghost
2026-01-31Reroute on version removalShadowghost
2026-01-18Complete LinkedChildren integration and batch DTO optimizationsShadowghost
This commit integrates remaining performance changes: - Add batch user data fetching in DtoService to reduce N+1 queries - Add GetNextUpEpisodesBatch in TVSeriesManager for efficient batch retrieval - Update Video/Movie/BoxSet to use LibraryManager for alternate versions - Transition LinkedChild to use ItemId instead of Path (obsolete Path/LibraryItemId) - Update providers and controllers for LinkedChildren-based references - Add NextUpEpisodeBatchResult for batched episode queries - Integrate IDescendantQueryProvider in SqliteDatabaseProvider
2026-01-18Simplify UserDataManager and remove unused private methodsShadowghost
Removes unused private GetUserData and GetUserDataInternal methods. Moves GetUserDataBatch to be an abstract interface method rather than having a default implementation for clarity.
2026-01-18Backport pull request #15965 from jellyfin/release-10.11.zCollin-Swish
Add mblink creation logic to library update endpoint. Original-merge: 22d593b8e986ecdb42fb1e618bfcf833b0a6f118 Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
2026-01-18Backport pull request #15899 from jellyfin/release-10.11.zMarcoCoreDuo
Fix watched state not kept on Media replace/rename Original-merge: 8433b6d8a41f66f6eef36bb950927c6a6afa1a36 Merged-by: joshuaboniface <joshua@boniface.me> Backported-by: Bond_009 <bond.009@outlook.com>
2025-09-24Add People Dedup and multiple progress fixes (#14848)JPVenson
2025-08-11Refactor to pull item counts in a single queryCody Robibero
2025-08-06Revert "Merge pull request #13604 from Jxiced/master"Bond_009
This reverts commit ce78af2ed4f203690a0f9ef87b08b27a6bd43f63, reversing changes made to db7465e83d9cc07134a0bffad7ed17b1c7b873da.