503 Commits

Author SHA1 Message Date
David Federman 7bf08daeec Reattach user data after removing items during library scan
When items are removed during a library scan, their user data is
detached to a placeholder. If a replacement item already exists
(e.g., a new version of the same episode was added before the old
file was deleted), the user data would be stranded in the placeholder
because the replacement item's initial ReattachUserDataAsync call
happened before the old item was deleted.

This fix checks for remaining valid children that share user data
keys with removed items and reattaches any detached user data to them.

Fixes #16149
2026-02-12 20:38:28 -08:00
theguymadmax 22da5187c8 Fix collection display order (#15767) 2025-12-13 08:27:01 -07:00
theguymadmax 94f3725208 Fix isMovie filter logic (#15594) 2025-11-21 21:14:03 -07:00
theguymadmax 13c4517a66 Fix collection grouping in mixed libraries (#15373) 2025-11-09 09:35:50 -07:00
theguymadmax 8f71922734 Fix item count display for collapsed items (#15380) 2025-11-07 18:20:10 -07:00
Tim Eisele 7d1824ea27 Fix pagination and sorting for folders (#15187) 2025-10-26 11:34:11 -06:00
theguymadmax 49c3443b0c Prevent PlaylistsFolder deletion during library removal 2025-10-10 18:34:37 -04:00
theguymadmax 0f42aa892e Fix BoxSet sorting (#14919)
Co-authored-by: Cody Robibero <cody@robibe.ro>
2025-10-01 21:10:31 -06:00
JPVenson cce6bf27e0 Add check for processing recursive data structures (#14897) 2025-10-01 17:26:56 -06:00
JPVenson 2aa39226c6 Apply filter server side (#14856) 2025-09-24 18:15:10 -06:00
theguymadmax 897975fc57 Fix collections one-off (#14814) 2025-09-24 15:19:15 -06:00
JPVenson 59f77c24c9 Revert limit hack (#14820) 2025-09-20 07:19:26 -06:00
JPVenson a0b3e2b071 Optimize internal querying of UserData, other fixes (#14795) 2025-09-16 13:08:04 -06:00
Cody Robibero 4d36bd635d Revert IsPlayed optimization, pass UserItemData to IsPlayed when available (#14786) 2025-09-14 11:18:21 -06:00
JPVenson c02a24e32a Fix several Stackoverflows (#14783) 2025-09-12 13:58:16 -06:00
Maxime e83b992eef Fix seasons random (#13224)
Sorting was always enabled so removed the `enableSorting` parameter
in QueryResult method.
2025-06-18 00:41:09 +02:00
JPVenson 0e1be6ce30 Use proper scheduler that honors the parallel task limit (#14281) 2025-06-15 15:21:11 -06:00
theguymadmax c3762186da Fix collection behavior when sorting by rating or runtime (#14148)
Co-authored-by: Max <no@example.com>
2025-05-22 07:05:14 -06:00
Johannes Heuel 2c499d1e86 feat: allow grouping shows into collections (#13236)
* feat: allow grouping shows into collections

* add pre-startup routine to rename EnableGroupingIntoCollections

* Update Jellyfin.Server/Migrations/PreStartupRoutines/RenameEnableGroupingIntoCollections.cs
2025-03-28 06:54:12 -06:00
JPVenson 42bdb22bfb Fixed namespaces 2025-03-25 16:45:00 +01:00
JPVenson 160020c551 WIP fixed namespaces 2025-03-25 15:30:22 +00:00
JPVenson feea5af2f3 Merge remote-tracking branch 'jellyfinorigin/master' into feature/DatabaseRefactor 2025-03-01 14:16:49 +00:00
theguymadmax 7ca09c4081 Backport pull request #13594 from jellyfin/release-10.10.z
Fix 4K filtering when grouping movies into collections

Original-merge: 317d7a9f4f76dbd964e2649ed4b7d03d3e68ca9d

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-21 05:39:38 -05:00
JPVenson d8030147ff Merge remote-tracking branch 'jellyfinorigin/master' into feature/DatabaseRefactor 2025-02-19 18:25:00 +00:00
Bond_009 ce76817020 Rename CreateOrUpdateItems back to CreateItems
Reverts the name change of this function made in the EFCore PR. This hopefully
reduces the amount of merge conflicts while backporting and makes it consistent
with the CreateItem function.
2025-02-09 18:30:53 +01:00
elfalem ba46608ffe Backport pull request #12721 from jellyfin/release-10.10.z
Skip allowed tags check for parents of an item

Original-merge: d1fbdcee3459c9b8b9f47362761ad8da2021bd93

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-09 12:19:51 -05:00
JPVenson 17003f4d76 Merge remote-tracking branch 'jellyfinorigin/master' into feature/pgsql_provider 2025-02-02 02:09:14 +00:00
Bond-009 9734892322 Merge pull request #12925 from Bond-009/await
Always await instead of directly returning Task
2025-01-28 11:29:46 +01:00
Bond-009 bcdffa74a8 Remove useless checks and dead code (#13405)
* Remove useless checks and dead code

* Enable adaptive bitrate streaming again

* Disable adaptive bitrate streaming by default
2025-01-28 11:29:22 +01:00
JPVenson aa811eb1e3 Prepared Seperation of Database components for future multi provider support 2025-01-26 20:45:28 +00:00
Bond_009 47f798827b Remove useless checks and dead code 2025-01-22 17:31:52 +01:00
JPVenson b39553611d Applied coding style 2024-11-17 11:03:43 +00:00
Bond_009 d2db700402 Always await instead of directly returning Task
https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md#prefer-asyncawait-over-directly-returning-task

The performance impact is negligible (and it's me saying that!)
2024-10-31 17:02:06 +01:00
JPVenson 0639758abd Updated all instances of ImmutableList to ImmutableArray 2024-10-28 14:34:29 +00:00
JPVenson b09a41ad1f WIP porting new Repository structure 2024-10-09 10:36:08 +00:00
Bond_009 277830855d Clean up UserDataManager
* enable nullable
* remove unused methods
* fix warnings and docs
2024-08-30 15:08:56 +02:00
Shadowghost 81e38e772b Backport pull request #12134 from jellyfin/release-10.9.z
Only cleanup children on specific exceptions

Original-merge: 6cf98d49300459b7795b994733ba05837e22cf1e

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:40:58 -04:00
Shadowghost bb0c234984 Backport pull request #11959 from jellyfin/release-10.9.z
Do not stop validation if folder was removed

Original-merge: cf591402761a7dda3fd251cb865eeba9b6533bfa

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-06 14:30:32 -04:00
crobibero 3564b00fc0 Backport pull request #11569 from jellyfin/release-10.9.z
Default to processor count concurrent scan instead of 2 * processor count

Original-merge: f77a5d0c5c11741e16e7c2411e8f9df04d5f0b26

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-13 12:47:34 -04:00
Joshua M. Boniface 47b79df136 Update MediaBrowser.Controller/Entities/Folder.cs 2024-05-11 10:56:14 -04:00
gnattu 588fb9e82b Don't assume library change only on item count
The library will also be updated when the number of children remains the same before and after scanning. For example, if one video file is removed and replaced with another version, we still need to remove the old one in this case.

Signed-off-by: gnattu <gnattuoc@me.com>
2024-05-11 03:57:22 +08:00
gnattu 3ae0fb90cb Validate Collection Folders on adding and removal (#11444) 2024-05-05 08:21:40 -06:00
gnattu 1b567efeb5 fix: correctly pass parameters in overrides
Signed-off-by: gnattu <gnattuoc@me.com>
2024-04-17 21:32:21 +08:00
gnattu e4d66f35fd chore: use proper way to override remove root
This is an alternate approach which is more proper, but changes all parts that uses/overrides the original ValidateChildren method

Signed-off-by: gnattu <gnattuoc@me.com>
2024-04-17 14:41:19 +08:00
Cody Robibero 31e0756c0c Only update if actively refreshing (#11341) 2024-04-12 17:45:15 -06:00
Claus Vium 239727e896 fix: skip library folders that are inaccessible or empty (#9291) 2024-03-18 09:09:00 -06:00
Patrick Barron 505c09c85b Fix tests 2024-02-06 12:21:52 -05:00
Patrick Barron 0960438065 Remove ActionableProgress 2024-02-06 09:58:25 -05:00
Patrick Barron 8698b90594 Remove SimpleProgress 2024-02-06 09:50:46 -05:00
Cody Robibero e7b8d45bbb Use helper function to compare guid (#10825) 2024-01-17 08:51:39 -07:00