brandon
d6da6906a4
Batch people lookups when building item DTOs
...
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-08-07 11:59:17 -04:00
Cody Robibero
526f4051e9
Merge pull request #16980 from 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-21 20:43:31 -04:00
Shadowghost
38f1d9749e
Fix review comments
2026-07-02 08:49:11 +02:00
Shadowghost
0fb042b740
Surface the played version for resume
2026-06-19 21:51:57 +02:00
Shadowghost
0874a26131
Coalesce alternate-version progress onto primary in resume filter
2026-06-09 23:23:03 +02:00
Shadowghost
c242533f4e
Add version-aware playback tracking
2026-06-07 23:06:14 +02:00
Shadowghost
a2bab98c23
Merge remote-tracking branch 'upstream/master' into search-rebased
2026-05-31 18:24:26 +02:00
Tim Eisele
63d1af5fe7
Fix similarity ( #16942 )
...
Fix similarity
2026-05-31 17:21:15 +02:00
Shadowghost
a479e145dc
Merge remote-tracking branch 'upstream/master' into search-rebased
...
# 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-30 19:09:11 +02:00
TheMelmacian
7939f3b009
only fetch language codes for the requested library when generating filter values
2026-05-30 16:33:59 +02:00
Bond-009
2f17516d4b
Merge pull request #16856 from Shadowghost/movie-recommendations
...
Fix movie recommendations
2026-05-27 20:59:18 +02:00
Shadowghost
cb9d6e9884
Add batch method for people names
2026-05-24 18:26:21 +02:00
Shadowghost
1175846120
Merge remote-tracking branch 'upstream/master' into search-rebased
2026-05-24 18:25:12 +02:00
jakobkukla
37350282cc
Run tree-wide dotnet format
2026-05-21 20:48:41 +02:00
Shadowghost
3655b4b094
Apply review and sonar suggestions
2026-05-16 16:14:18 +02:00
Shadowghost
ea8f6c51fd
Merge remote-tracking branch 'upstream/master' into search-rebased
2026-05-16 09:57:06 +02:00
Shadowghost
1fdf58e40f
Address review comments
2026-05-16 09:44:36 +02:00
Bond-009
9d420271ad
Merge pull request #9787 from TheMelmacian/feature/language_filters
...
New filters for audio and subtitle languages
2026-05-15 15:44:22 +02:00
Shadowghost
97c20e6ac5
Fix movie recommendations
2026-05-15 14:37:01 +02:00
Bond-009
8e602f982f
Merge pull request #15970 from Shadowghost/similarity
...
Implement similarity providers
2026-05-15 10:00:53 +02:00
Shadowghost
b1b4519944
Apply review suggestions
2026-05-13 00:58:33 +02:00
Shadowghost
8f7c54ee5e
Merge remote-tracking branch 'upstream/master' into search-rebased
2026-05-12 22:50:16 +02:00
TheMelmacian
39049a726e
move language filters from QueryFiltersLegacy to QueryFilters
2026-05-12 02:12:14 +02:00
JPVenson
ec054f6a34
Backport changes from #15368
2026-05-05 17:57:27 +00:00
Niels van Velzen
d359d2f7a8
Merge pull request #16166 from Shadowghost/ignore-caching
...
Implement ignore rule caching
2026-05-04 17:59:48 +02:00
Niels van Velzen
dcba6c3659
Merge pull request #16616 from dkanada/fix-person-limit
...
fix person TotalRecordCount when limit is applied
2026-05-04 17:58:27 +02:00
dkanada
ec990be12a
fix person TotalRecordCount when limit is applied
2026-05-04 12:06:11 +09:00
Shadowghost
07a802d8fa
Implement search providers
2026-05-04 01:55:07 +02:00
Shadowghost
4ebce39070
Implement Similarity providers
2026-05-03 23:43:01 +02:00
Shadowghost
d20c775daf
Implement ignore rule caching
2026-05-03 23:35:33 +02:00
Shadowghost
a8a029de73
Fix DeleteItemsUnsafeFast usage
2026-03-11 09:16:35 +01:00
Shadowghost
2d0d497961
Update saved metadata on primary change
2026-02-25 21:03:46 +01:00
Shadowghost
3a090a5716
Optimize item count calculation for named items
2026-02-18 20:28:42 +01:00
Shadowghost
71594b4a9a
Fix multiple version resolution
2026-02-08 17:22:52 +01:00
Shadowghost
2420ece5fe
Fix version resolution and scan handling
2026-02-07 19:01:37 +01:00
Shadowghost
268d88a5fb
Optimize Collection Grouping, NextUp and Latest queries
2026-02-07 01:38:06 +01:00
Shadowghost
a0346fe5b7
Fix multiple version handling
2026-02-05 01:41:07 +01:00
Shadowghost
2789532aa8
Optimize Validator and Filter Performance
2026-01-31 19:22:04 +01:00
Shadowghost
694db80d4c
Reroute on version removal
2026-01-31 19:21:36 +01:00
Shadowghost
5996c4afce
Complete LinkedChildren integration and batch DTO optimizations
...
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-18 19:48:46 +01:00
Shadowghost
d3d4d37e82
Simplify UserDataManager and remove unused private methods
...
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-18 19:45:39 +01:00
Collin-Swish
afcaec0a89
Backport pull request #15965 from jellyfin/release-10.11.z
...
Add mblink creation logic to library update endpoint.
Original-merge: 22d593b8e9
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:39 -05:00
MarcoCoreDuo
09edca8b7a
Backport pull request #15899 from jellyfin/release-10.11.z
...
Fix watched state not kept on Media replace/rename
Original-merge: 8433b6d8a4
Merged-by: joshuaboniface <joshua@boniface.me >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:38 -05:00
JPVenson
5a6d9180fe
Add People Dedup and multiple progress fixes ( #14848 )
2025-09-24 15:20:30 -06:00
Cody Robibero
beca405ad4
Refactor to pull item counts in a single query
2025-08-11 21:06:04 -06:00
Bond_009
c7c7b30d28
Revert "Merge pull request #13604 from Jxiced/master"
...
This reverts commit ce78af2ed4 , reversing
changes made to db7465e83d .
2025-08-06 15:49:40 +02:00
Joshua M. Boniface
4b6fb6c4bb
Merge branch 'master' into master
2025-08-03 17:27:17 -04:00
Tim Eisele
d976f13970
Recognize file changes and remove data on change ( #13839 )
2025-05-04 21:21:44 -06:00
JQ
d06ce1f1e0
Fix only returning one item from /Item/Latest api. ( #12492 )
...
* Updated to EFcore
* Remove unused using
* Dont use DateCreated not from episode type or music type
* use TranslateQuery to filter out instead and then do the grouping and retrival of min and max datecreated instead
* Album also
2025-03-26 20:26:47 -06:00
JPVenson
42bdb22bfb
Fixed namespaces
2025-03-25 16:45:00 +01:00