Commit Graph

250 Commits

Author SHA1 Message Date
Evan
0a4ff3f3c0 Fix GetBaseItemDto to return related item counts via SQL count
For API call /Items/{item id} GetBaseItemDto will return the counts of related items e.g. artists, albums, songs.  GetBaseItemDto currently does this by calling GetTaggedItems which retrieves the objects into memory to count them.  Replace with SQL count.

Fixes:
This should be an improvement for any large libraries, but especially large music libraries.  Example:

Request Library -> Genres -> any very popular genre in your large library, e.g. Classical
Number of albums = 1552, songs = 23515, ...

- Before change: Try to retrieve 1552 albums, 23515 songs, ... in memory, API never returns, database on fire
- After change: API returns in 367ms and Genre view opens with 200 albums in 2 seconds

I verified the numbers returned are correct but note that there is a bug somewhere else in Jellyfin that is setting TopParentId to NULL for a large portion of my MusicArtists, which causes them to not be counted by the existing GetCount().  This is not related to this change, also happens with the existing code, and does not seem to affect the Web UI.

Includes Cory's changes in:
- https://github.com/jellyfin/jellyfin/pull/14610#issuecomment-3172211468
- https://github.com/jellyfin/jellyfin/pull/14610#issuecomment-3172239154
2025-08-10 18:02:17 +08: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
Shadowghost
5ff2767012 Use TryGetProviderId where possible 2025-02-21 11:58:46 +01:00
JPVenson
17003f4d76 Merge remote-tracking branch 'jellyfinorigin/master' into feature/pgsql_provider 2025-02-02 02:09:14 +00:00
luzpaz
6fda268892 Merge pull request #13453 from luzpaz/extentions-typo
Fix source typo
2025-01-29 16:56:25 +01: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
JPVenson
aa811eb1e3 Prepared Seperation of Database components for future multi provider support 2025-01-26 20:45:28 +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
439a997fca Readded custom serialisation 2024-10-10 18:01:14 +00:00
JPVenson
b09a41ad1f WIP porting new Repository structure 2024-10-09 10:36:08 +00:00
Shadowghost
8b938e2696 Backport pull request #11673 from jellyfin/release-10.9.z
Fix local playlist scanning

Original-merge: 26714e2c62

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:51:50 -04: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
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
0bc41c015f Store lyrics in the database as media streams (#9951) 2024-02-26 05:09:40 -07:00
Cody Robibero
e7b8d45bbb Use helper function to compare guid (#10825) 2024-01-17 08:51:39 -07:00
Cody Robibero
2920611ffc Convert string MediaType to enum MediaType 2023-10-10 15:57:15 -06:00
TelepathicWalrus
4c7fb8f452 Album gain (#10085)
* Add LUFSAlbum DTO

* Get loudest track for smallest gain

* Move gain search to musicalbum
use baseitem LUFS for album

* Use .Max for enumerable

* Update DTO to be consistent with other DTOs

* Remove albumlufs,
Move dto for all types
2023-08-18 10:25:56 +02:00
Bond-009
3982b0e057 Reduce bottlenecks scan code (#9863) 2023-06-21 21:01:47 -06:00
Bond_009
52194f56b5 Replace != null with is not null 2022-12-05 15:01:13 +01:00
Shadowghost
61fa325ef0 Extend music parsing 2022-09-13 17:20:22 +02:00
Joshua Boniface
0356a15056 Backport pull request #8163 from jellyfin/release-10.8.z
Don't refresh playlists on album refresh

Authored-by: David Ullmer <davidullmer@outlook.de>

Merged-by: Claus Vium <cvium@users.noreply.github.com>

Original-merge: 444b0ea310
2022-08-01 14:25:44 -04:00
Bond-009
2b1a915ead Merge pull request #7604 from Jellifi007/fixes-diactritics
Co-authored-by: Cody Robibero <cody@robibe.ro>
(cherry picked from commit 8d1d973438)
Signed-off-by: crobibero <cody@robibe.ro>
2022-05-20 18:30:56 -04:00
Bond_009
f50a250cd9 Optimize Guid comparisons
* Use Guid.Equals(Guid) instead of the == override
* Ban the usage of Guid.Equals(Object) to prevent accidental boxing
* Compare to default(Guid) instead of Guid.Empty
2022-02-21 14:15:09 +01:00
Cody Robibero
7bfc6b5679 Remove more warnings 2021-12-27 07:38:06 -07:00
cvium
b880dc8a4a Use our own Contains extension 2021-12-20 13:31:07 +01:00
Cody Robibero
32629cd7da Use BaseItemKind where possible 2021-12-12 06:11:27 -07:00
Cody Robibero
b2b4bd82d7 Merge pull request #6862 from 1337joe/query-instead-of-filtering 2021-11-20 08:50:39 -07:00
Joe Rogers
7cf5767949 Query media streams by type instead of filtering 2021-11-17 22:34:04 +01:00
Bond_009
257e1be95f Fix some warnings 2021-11-16 16:31:57 +01:00
MrTimscampi
3300d2d7d3 Enable people for audio files 2021-08-16 00:20:48 +02:00
Rich Lander
0ce7a15534 Fix more warnings 2021-07-23 16:36:27 -07:00
Bond_009
981cf4cfa0 Remove our own RemoveDiacritcs string extension in favor of Diacritics.Net 2021-06-22 09:48:40 +02:00
Cody Robibero
d461e3912a Remove warninigs from MediaBrowser.Controller (Part 3) (#6078)
Co-authored-by: Bond-009 <bond.009@outlook.com>
2021-06-06 17:16:41 +02:00
crobibero
6bcbc2b88a Reduce warnings in MediaBrowser.Controller 2021-05-13 07:33:11 -06:00
Cody Robibero
e3f55a0c54 Reduce warnings in MediaBrowser.Controller (#6006)
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2021-05-11 13:55:46 +02:00
Bond_009
fb090df0b5 Enable nullable reference types for MediaBrowser.Controller 2021-05-07 00:39:20 +02:00
cvium
c5a870051a Use distinct for artists to avoid double refreshing 2021-03-10 08:20:02 +01:00
crobibero
ee23d06154 Use a more descriptive function name 2020-12-13 08:15:26 -07:00
crobibero
b670937c3d Use typed UserManager GetPreference 2020-12-11 15:00:43 -07:00
Bond_009
49569ca0a0 Use nameof where possible 2020-10-17 16:19:57 +02:00
Matt Montgomery
53d5f64e03 Fix SA1513, SA1514, SA1507, and SA1508 2020-09-28 15:04:31 -05:00
Bond_009
404bb4f835 Enable TreatWarningsAsErrors for MediaBrowser.Controller in Release 2020-08-22 21:56:24 +02:00
Bond-009
9af6eda0b4 Merge pull request #3343 from telans/comment-stops
Add full stop at end of comments (SA1629)
2020-06-16 11:54:58 +02:00
telans
247f9c61e6 fix SA1513/SA1516 2020-06-16 16:11:30 +12:00
telans
9018f8d8be Add full stop at end of comments (SA1629) 2020-06-16 10:37:52 +12:00
Patrick Barron
fc02157b42 Fix build errors 2020-06-11 18:28:49 -04:00
Patrick Barron
7a115024aa Merge branch 'master' into userdb-efcore
# Conflicts:
#	MediaBrowser.Controller/Library/ILibraryManager.cs
#	MediaBrowser.Providers/Users/UserMetadataService.cs
2020-06-11 18:23:12 -04:00
aled
22a860a806 Fix a small number of compile warnings 2020-06-06 20:17:49 +01:00