Commit graph

937 commits

Author SHA1 Message Date
Tim Eisele
cad8de9701
Add Genre cleanup and fix cleanup filter queries (#13891) 2025-04-09 18:40:16 -06:00
gnattu
32fe92d8f5
Only reselect audio streams when user preference is respected (#13832) 2025-04-08 19:22:30 -06:00
Tim Eisele
2264d58ae7
Use subdirectories to organize extracted data (#13838)
* Use subdirectories to organize extracted data

* Apply suggestions from code review
2025-04-05 07:53:17 -06:00
Tim Eisele
596b635511
Cleanup extracted files (#13760)
* Cleanup extracted files

* Pagination and fixes

* Add migration for attachments to MigrateLibraryDb

* Unify attachment handling

* Don't extract again if files were already extracted

* Fix MKS attachment extraction

* Always run full extraction on mks

* Don't try to extract mjpeg streams as attachments

* Fallback to check if attachments were extracted to cache folder

* Fixup
2025-04-03 09:17:14 -06:00
JPVenson
a18d60d2de
Trim library names (#13828) 2025-04-02 18:19:31 -06:00
Tim Eisele
3fc3b04daf
Rework parental ratings (#12615) 2025-03-30 21:51:54 -06:00
Michael McElroy
f02190c394
Fix for Issue #12142: Fix ExtraRuleResolver filtering out top level folders (#12170)
* Fix ExtraRuleResolver to stop filtering out libraries where the name of the base folder matches an 'videos extras' rule with an ExtraRuleType of DirectoryName

Currently the ExtraRuleResolver code doesn't know anything about the root folder of the current library. As a result, when we're attempting to add items in a library where the root folder has a name with a match in Emby.Naming.Common.NamingOptions.VideoExtraRules, the entire library is being ignored as a Video Extras folder.

Need to pass in the root folder of the current library to compare to the path of the current item being evaluated, and if we match the current item's folder to the root folder, then we ignore the ExtraRules with a type of DirectoryName and we continue to scan deeper in the library. Filters still apply to subfolders within the library itself.

* Update CONTRIBUTORS.md

* Update Emby.Naming/Video/ExtraRuleResolver.cs

* Update ExtraTests.cs

Add tests for this fix.

Also add missing tests in TestKodiExtras, TestExpandedExtras, and TestSample, and expanded TestDirectories into TestDirectoriesAudioExtras and TestDirectoriesVideoExtras. There were no checks for the theme-music folder name previously.

* Update ExtraTests.cs

Removed unnecessary "using System"

* In MediaBrowser.Model, upgrade System.Text.Json from 8.0.3 (vulnerable - high risk) to 8.0.4

* Update ExtraTests.cs

Remove empty lines in usings

* Revert "In MediaBrowser.Model, upgrade System.Text.Json from 8.0.3 (vulnerable - high risk) to 8.0.4"
2025-03-27 18:18:19 -06:00
Cody Robibero
88ceaa39b0
Implement limiting caches (#13605)
* Implement basic expiring cache for LibraryManager

* Add expiring cache to more places

* Rider why

* Make DirectoryService caches static

* Use FastConcurrentLru

* Reduce default cache size

* Simplify DirectoryService caches

* Make directory service cache size at least 128
2025-03-27 18:16:54 -06:00
Tobias Kloy
7717d2e261 Avoid multiple enumerations 2025-03-27 17:51:31 +01:00
Tobias Kloy
b108a8cfc5 Fix IsInMixedFolder not being set for Extras in mixed subfolders 2025-03-27 17:51:31 +01: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
JPVenson
160020c551 WIP fixed namespaces 2025-03-25 15:30:22 +00:00
JPVenson
850f1c79f1 Merge branch 'master' into feature/DatabaseRefactor 2025-03-25 15:12:48 +00:00
Tim Eisele
dfb485d1f2
Rework season folder parsing (#11748) 2025-03-23 10:05:40 -06:00
Tim Eisele
8db6a39e92
Remove all DB data on item removal, delete internal trickplay files (#13753) 2025-03-23 10:05:13 -06:00
timminator
350983e03c
Fix OnPlaybackStopped task erroring out (#13226) 2025-03-20 07:10:48 -06:00
timminator
c24d0c1240
Respect preferred language when selecting forced subtitles (#13098)
Rework subtitle selection logic
2025-03-18 17:40:06 -06:00
Cody Robibero
85b5bebda4
Add fast-path to getting just the SeriesPresentationUniqueKey for NextUp (#13687)
* Add more optimized query to calculate series that should be processed for next up

* Filter series based on last watched date
2025-03-18 17:37:04 -06:00
JPVenson
feea5af2f3 Merge remote-tracking branch 'jellyfinorigin/master' into feature/DatabaseRefactor 2025-03-01 14:16:49 +00:00
Bond-009
1131b051d8 Backport pull request #13601 from jellyfin/release-10.10.z
Delete children from cache on parent delete

Original-merge: 767a5e6193

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-25 15:32:03 -05:00
Shadowghost
06be4998e1 Backport pull request #13611 from jellyfin/release-10.10.z
Remove empty ParentIndexNumber workaround

Original-merge: 1daf761aec

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-25 15:26:47 -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
gnattu
7a5a4ad7da
Handle empty image lists gracefully in SplashscreenPostScanTask (#13498)
The current linq will just throw when there is no image candidates. Just pass empty lists to `CreateSplashscreen` as this case is already handled there.
2025-02-09 09:45:16 -07:00
JPVenson
17003f4d76 Merge remote-tracking branch 'jellyfinorigin/master' into feature/pgsql_provider 2025-02-02 02:09:14 +00:00
sinterdev
ce64dbc034
Removing CollectionFolders from cache when they are deleted on disk. (#13315) 2025-01-30 18:43:37 -07: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
Josh Soref
044cf9fb85 chore: fix spelling
* a
* acceleration
* addition
* altogether
* api clients
* artist
* associated
* bandwidth
* cannot
* capabilities
* case-insensitive
* case-sensitive
* configuration
* delimiter
* dependent
* diacritics
* directors
* enable
* explicitly
* filters
* finish
* have
* hierarchy
* implicit
* include
* information
* into
* its
* keepalive
* localization
* macos
* manual
* matching
* metadata
* nonexistent
* options
* overridden
* parsed
* parser
* playback
* preferring
* processes
* processing
* provider
* ratings
* retrieval
* running
* segments
* separate
* should
* station
* subdirectories
* superseded
* supported
* system
* than
* the
* throws
* transpose
* valid
* was

link: forum or chat rooms

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-01-25 20:05:15 -05:00
Joshua M. Boniface
93b8eade61
Merge pull request #12798 from JPVenson/feature/EFUserData
Refactor library.db into jellyfin.db and EFCore
2025-01-25 02:08:44 -05:00
Bond_009
47f798827b Remove useless checks and dead code 2025-01-22 17:31:52 +01:00
JPVenson
2f306358c0 applied review comments 2025-01-18 16:17:26 +00:00
JPVenson
96e4d8ca78 worsen comment 2025-01-17 19:19:24 +00:00
JPVenson
b33810534b Applied review comments 2025-01-15 20:12:41 +00:00
Daniyar Alpyspayev
2614fecf8d move to new System.Threading.Lock type for better performance 2024-12-12 18:10:06 +05:00
JPVenson
0dd6dacc4f Merge remote-tracking branch 'origin/master' into feature/EFUserData 2024-11-19 20:53:38 +00:00
Shadowghost
06c603428b Backport pull request #13059 from jellyfin/release-10.10.z
Exclude file system based library playlists from migration

Original-merge: 23de7e517e

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-19 15:43:33 -05:00
JPVenson
68252ffa1b Merge branch 'feature/EFUserData' of https://github.com/JPVenson/jellyfin into feature/EFUserData 2024-11-17 11:05:14 +00:00
JPVenson
b39553611d Applied coding style 2024-11-17 11:03:43 +00:00
JPVenson
427359deee
Merge branch 'master' into feature/EFUserData 2024-11-17 01:23:26 +01:00
Bond-009
ceb850c770
Update projects to .NET 9 (#13023) 2024-11-16 10:11:01 -07:00
JPVenson
37129f7952 Fixed Transaction for Userdata 2024-11-14 21:48:21 +00:00
JPVenson
b60cd378d9 Updated order of saving for Items 2024-11-14 20:03:23 +00:00
JPVenson
b830c42fca There can be also NULL people? 2024-11-14 16:10:43 +00:00
JPVenson
f81d124019 Fixed items can be null saving 2024-11-14 15:23:59 +00:00
JPVenson
7c51b37ca0 Fixed Person creation 2024-11-13 22:05:23 +00:00
JPVenson
6b371ba04f Fixed storage of Person images 2024-11-13 22:04:03 +00:00
JPVenson
d3174b5171 Fixed userdata lookup 2024-11-12 16:14:17 +00:00
JPVenson
508b27f156 Fixed Duplicate returns on grouping
Fixed UserDataKey not stored
2024-11-11 17:39:50 +00:00
JPVenson
2d4f7f725f Fixed TopParent not beeing migrated 2024-11-11 00:27:30 +00:00
JPVenson
0639758abd Updated all instances of ImmutableList to ImmutableArray 2024-10-28 14:34:29 +00:00
JPVenson
c2a0dfb1e5 Reodered Context creation 2024-10-22 10:53:39 +00:00
JPVenson
e331dc35ac Fixed tests 2024-10-20 11:04:54 +00:00
JPVenson
10a2a316a4 i have too much time.
Refactored BaseItem and UserData relation
2024-10-20 10:11:24 +00:00
JPVenson
e20ecfc670 applied review comments 2024-10-11 14:16:42 +00:00
JPVenson
05ffa7b413 Applied Review Comments 2024-10-11 11:42:49 +00:00
JPVenson
2014fa56b8 Ported new Item Repository architecture 2024-10-09 10:41:54 +00:00
JPVenson
b09a41ad1f WIP porting new Repository structure 2024-10-09 10:36:08 +00:00
JPVenson
d3a3d9fce3 Merge remote-tracking branch 'jellyfinorigin/master' into feature/EFUserData 2024-10-08 09:34:34 +00:00
gnattu
b92fc7ea9d
Don't resolve trickplay folder during media scanning (#12652) 2024-09-16 10:47:12 -06:00
JPVenson
d0b4b2ddb3
Migrated UserData from library sqlite db to jellyfin.db 2024-09-07 19:07:34 +00:00
Niels van Velzen
675a8a9ec9
Remove left-over network path references (#12446) 2024-09-07 11:22:31 -06:00
Niels van Velzen
cc2f91b331
Merge pull request #12547 from Bond-009/userdatamanager
Clean up UserDataManager
2024-09-06 21:56:42 +02:00
Stepan Goremykin
a3cc39ddd8
Use frozen collections in MimeTypes.cs (#10826)
Co-authored-by: Stepan Goremykin <goremukin@gmail.com>
2024-09-04 17:47:01 -06:00
Bond_009
277830855d Clean up UserDataManager
* enable nullable
* remove unused methods
* fix warnings and docs
2024-08-30 15:08:56 +02:00
Bond_009
09f4477510 Replace UserId with User in UserViewQuery 2024-08-05 17:17:57 +02:00
Bond_009
c831af2fe2 Pass User instead of UserId inside LatestItemsQuery 2024-08-05 17:17:57 +02:00
Bond_009
d3f0346f04 Enable nullable for UserItemData
MetadataResult.GetOrAddUserData doesn't ever get used and is probably broken since the migration to .NET Core as it still expects a Guid for userId
2024-07-29 21:05:23 +02:00
Bond_009
ecd2dab0a2 Add TrySetProviderId extension 2024-07-17 15:48:21 +02:00
David Schulte
fc1bee30a6
Allow streaming of raw PGS subtitles without transcoding (#12056) 2024-07-15 08:48:09 -04:00
ItsAllAboutTheCode
5e840c1db6
Improve LibraryManager.Sort when using "Random" order (#12165)
Co-authored-by: Cody Robibero <cody@robibe.ro>
2024-07-15 08:44:06 -04:00
Bond-009
79e9fe112c
Merge pull request #11204 from revam/fix-resolver-helper-init-values
Don't expect `BaseItem` to be a movie/video file.
2024-06-27 09:45:56 +02:00
Shadowghost
6734450d40 Backport pull request #12025 from jellyfin/release-10.9.z
Fix empty image folder removal for legacy locations

Original-merge: 476dc01f4d

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-24 20:28:58 -04:00
Mikal Stordal
0cf8b376ac Don't expect BaseItem to be a movie/video file.
This fix is mainly so I can mass-add series _and_ movie entries using a
`IMultiItemResolver` without having to resort to complicated logic
using _both_ a `IItemResolver` and a `IMultiItemResolver` by splitting
up what gets added where.

I've also added three new interface methods to the `IDirectoryService`,
one of which is used in the modified
`ResolverHelper.SetInitialItemValues(…)` to get the file system entry
info for the item regardless of which type the file system entry is.

In my local testing so far I haven't found any issues introduced
by this change.
2024-06-11 02:01:15 +02:00
gnattu
cd5fb84136 Backport pull request #11963 from jellyfin/release-10.9.z
Fix Library renaming

Original-merge: b78efd6b1e

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-06 14:30:34 -04:00
Shadowghost
4a06b6d13b Backport pull request #11920 from jellyfin/release-10.9.z
Only set season path if season folder parsing was successful

Original-merge: d1c00ba4ed

Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:02:54 -04:00
gnattu
0d0a2b4d58 Backport pull request #11886 from jellyfin/release-10.9.z
Fix multi-part album folder being detected as artist folder

Original-merge: d602b6dbc5

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:12 -04:00
Shadowghost
5d4880c497 Backport pull request #11743 from jellyfin/release-10.9.z
Fix replace logic

Original-merge: 2ddb15c784

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:40:56 -04:00
Shadowghost
c0364fc766 Backport pull request #11719 from jellyfin/release-10.9.z
Move NFO series season name parsing to own local provider

Original-merge: a53ea029fa

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:40:55 -04:00
Shadowghost
29a293f9e7 Backport pull request #11647 from jellyfin/release-10.9.z
Fix season names

Original-merge: 2da06bc0b1

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:51:40 -04:00
gnattu
3ae0fb90cb
Validate Collection Folders on adding and removal (#11444) 2024-05-05 08:21:40 -06:00
Bond-009
3feb3f81bf
More efficient array creation (#11468) 2024-04-30 13:32:59 -06:00
Bond_009
88a38a61b5 Improve audio normalization
* Move calculation of LUFS to a scheduled task as it's pretty slow
* Correctly calculate album LUFS
* Don't try to convert replaygain tags to LUFS values
2024-04-28 15:18:53 +02:00
Bond-009
d29b85a134
Fix multiple intro providers and remove unneeded ToLists (#11431) 2024-04-25 07:02:01 -06:00
Bond-009
37d301ebd4
Merge pull request #11352 from jellyfin/fix-library-removal
fix: explicitly allow remove root when performing library removal
2024-04-18 12:16:04 +02:00
Bond-009
bb018c4adc
Enable nullable for LibraryManager (#11191) 2024-04-17 10:44:50 -06: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
6fb6b5f176
Validate item access (#11171) 2024-04-14 08:18:36 -06:00
Bond-009
b4bd3f6151
Merge pull request #11351 from revam/fix-off-by-one-error-in-get-attribute-value
fix: fix off-by-one error in `GetAttributeValue`
2024-04-14 15:54:39 +02:00
gnattu
7befbda1a6 fix: code style
Signed-off-by: gnattu <gnattuoc@me.com>
2024-04-13 15:02:13 +08:00
gnattu
4fa6b8874f fix: typo
Signed-off-by: gnattu <gnattuoc@me.com>
2024-04-13 14:58:29 +08:00
gnattu
204146a3a5 fix: mark UserRoot as non-root when performing removal
Fixes #11269

Signed-off-by: gnattu <gnattuoc@me.com>
2024-04-13 14:48:40 +08:00
Bond-009
7d28d08e08
Enable more warnings as errors (#11288) 2024-04-12 17:45:01 -06:00
Tim Eisele
134bf7a6a5
Don't throw if file was already removed (#11286) 2024-04-12 17:44:45 -06:00
Mikal Stordal
d3b9ebfa2e fix: fix off-by-one error in GetAttributeValue
Co-authored-by: fearnlj01 <fearnlj01@gmail.com>
2024-04-12 22:53:39 +00:00
Joshua M. Boniface
ee1d6332ee
Merge pull request #11220 from Shadowghost/add-playlist-acl-api
Add playlist ACL endpoints
2024-04-10 12:52:01 -04:00
Shadowghost
4a9565ab52 Fix some spelling mistakes 2024-04-03 14:56:56 +02:00
Niels van Velzen
d9fe900952
Fix FindExtras overwriting current extra type (#11260) 2024-03-31 14:48:56 -06:00
Shadowghost
56c432a843 Apply review suggestions 2024-03-26 23:45:14 +01:00