150 Commits

Author SHA1 Message Date
Shadowghost
803e87ca5f Don't fail image saving on missing BaseItem 2025-08-02 22:10:39 +02:00
theguymadmax
536437bbe3
Fix allow and block queries (#14482) 2025-07-27 19:28:04 -06:00
Stephan Sundermann
2ad37fe021
Ensure UserData stays unique on delete (#14475) 2025-07-17 17:19:26 -06:00
Nyanmisaka
25a362345d
Fix refreshing the library cannot delete old attachments (#14461) 2025-07-14 18:40:37 -06:00
JPVenson
4d5ba8d7a5
Only save images when changed (#14425) 2025-07-07 09:14:01 -06:00
Tim Eisele
c6e568692e
Fix modification checks and make sure to use UTC (#14347) 2025-06-26 17:50:37 -06:00
theguymadmax
b528c1100f
Fix missing music genre metadata (#14332) 2025-06-23 08:30:59 -06:00
Tim Eisele
b2312466e1
Update Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
Co-authored-by: Bond-009 <bond.009@outlook.com>
2025-06-19 11:40:40 +02:00
Tim Eisele
989aef18af
Update Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2025-06-18 23:08:05 +02:00
Shadowghost
ccb917b8df Cleanup logging and user data import skip on missing user 2025-06-18 21:33:32 +02:00
JPVenson
4cd0a2ed8d
Always set update action when item does not exist (#14304) 2025-06-15 15:19:57 -06:00
JPVenson
2d9257b203
Add explicit check for placeholder ID (#14298) 2025-06-15 12:07:19 -06:00
JPVenson
1c4c9cf733
Fix UserData cleanup task and queries (#14280) 2025-06-11 17:30:57 -06:00
JPVenson
d3ad2aec60
Feature/persistent watch data (#14262) 2025-06-09 17:14:27 -06:00
JPVenson
7aee5b1e70
Fix ExcludeItemId, ExcludeProviderIds and HasAnyProviderId filter (#14249) 2025-06-08 19:53:18 -06:00
theguymadmax
4f3b49472a
Fix broken chapter image placeholders when no image is present (#14230) 2025-06-06 13:52:00 -06:00
JPVenson
a1d72deba2
Add multiple options for internal locking (#14047) 2025-06-03 15:15:22 -06:00
Max
8cb077402f Use CleanName for sorting case insensitive 2025-05-22 10:32:40 -04:00
Max
709d0bb231 Make name sorting case insensitive 2025-05-21 11:18:34 -04:00
theguymadmax
43659f011c
Fix ArgumentNullException in TmdbExternalUrlProvider (#14130) 2025-05-18 18:35:12 -06:00
Alexander Miller
29fc7711a1
Merge pull request #14094 from allesmi/fix/ancestor-ids-parent-child-relation
Translate query by AncestorIds correctly
2025-05-15 11:48:20 +02:00
Tim Eisele
d976f13970
Recognize file changes and remove data on change (#13839) 2025-05-04 21:21:44 -06:00
JPVenson
1c4b5199b8
Fix ItemValue query (#13939) 2025-04-26 19:10:54 -06:00
JPVenson
5d65cfcd99
improved performance of save operations (#13889) 2025-04-26 09:32:12 -06:00
Tim Eisele
df5671263f
Merge pull request #13847 from Shadowghost/rework-chapter-management
Rework chapter management
2025-04-26 14:01:12 +02:00
theguymadmax
1c190f7952
Improve video resolution filtering and classification logic (#13332) 2025-04-19 10:45:19 -06:00
Tim Eisele
cad8de9701
Add Genre cleanup and fix cleanup filter queries (#13891) 2025-04-09 18:40:16 -06:00
JPVenson
070abcd8ff
Fix InheritedParentalRatingSubValue not set (#13880) 2025-04-08 19:19:01 -06:00
baka0815
5fc1b1c862
Translate the ISO-639-2/B codes to ISO-639-2/T. (#13068)
* Translate the ISO-639-2/B codes to ISO-639-2/T.

This enables 19 additional languages to be displayed correctly.

* Convert the 2-dimensional array to a dictionary

* Added the French language to the list of ISO-639-2/B codes

* Don't change the property, use a local variable instead.

* When creating the MediaStream in the MediaStreamRepository ensure that the ISO 639-2/T (f.e. deu) code is used for the language as that is the one the .NET culture info knows.
The other code is most likely the ISO 639-2/B code (f.e. ger) which is unknown to the .NET culture info and will result in just displaying the code instead of the display name.

* Move the substitution of ISO 639-2/B to /T to the localization manager.
Some language (like Chinese) have multiple entries in the iso6392.txt file (f.e. zho|chi|zh|..., zho|chi|zh-tw|...) but the conversation between /T and /B is the same so use .TryAdd.

* Change the method definition from GetISO6392TFromB to TryGetISO6392TFromB and return true if a case was found.

* Add unit tests for TryGetISO6392TFromB.
2025-04-07 21:29:12 -06:00
Tim Eisele
b65e03da9a
Fix Genre type (#13862) 2025-04-07 06:11:05 -06:00
Tim Eisele
de3d1445c0
Fix ancestors (#13827) 2025-04-05 10:49:29 -06:00
Tim Eisele
0e7ae0e9a4
Fix indices and update of ItemValues (#13843) 2025-04-05 09:57:58 -06:00
Tim Eisele
0573999d5e
Import Keyframes into database (#13771)
* Migrate keyframe data into database

* Clear database table before import to handle failed migrations
2025-04-02 18:06:40 -06:00
gnattu
49ac705867
Improve dynamic HDR metadata handling (#13277)
* Add support for bitstream filter to remove dynamic hdr metadata

* Add support for ffprobe's only_first_vframe for HDR10+ detection

* Add BitStreamFilterOptionType for metadata removal check

* Map HDR10+ metadata to VideoRangeType.cs

Current implementation uses a hack that abuses the EL flag to avoid database schema changes. Should add proper field once EFCore migration is merged.

* Add more Dolby Vision Range types

Out of spec ones are problematic and should be marked as a dedicated invalid type and handled by the server to not crash the player.

Profile 7 videos should not be treated as normal HDR10 videos at all and should remove the metadata before serving.

* Remove dynamic hdr metadata when necessary

* Allow direct playback of HDR10+ videos on HDR10 clients

* Only use dovi codec tag when dovi metadata is not removed

* Handle DV Profile 7 Videos better

* Fix HDR10+ with new bitmask

* Indicate the presence of HDR10+ in HLS SUPPLEMENTAL-CODECS

* Fix Dovi 8.4 not labeled as HLG in HLS

* Fallback to dovi_rpu bsf for av1 when possible

* Fix dovi_rpu cli for av1

* Use correct EFCore db column for HDR10+

* Undo outdated migration

* Add proper hdr10+ migration

* Remove outdated migration

* Rebase to new db code

* Add migrations for Hdr10PlusPresentFlag

* Directly use bsf enum

* Add xmldocs for SupportsBitStreamFilterWithOption

* Make `VideoRangeType.Unknown` explicitly default on api models.

* Unset default for non-api model class

* Use tuples for bsf dictionary for now
2025-04-02 18:06:02 -06:00
Tim Eisele
3fc3b04daf
Rework parental ratings (#12615) 2025-03-30 21:51:54 -06:00
Cody Robibero
6c46b06c75 Fix merged namespace error 2025-03-27 19:46:45 -06:00
Jacob Warren
07f07ba6bc
Fix Sort by Year Bug (#12101) (#13733) 2025-03-27 18:05:03 -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
Cody Robibero
d848faeb75
Merge pull request #13589 from JPVenson/feature/DatabaseRefactor
[Feature] Database code refactor
2025-03-25 21:34:26 -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
Niels van Velzen
8680170706
Merge pull request #13616 from Lampan-git/fix_people_role
Include PeopleBaseItemMap in GetPeople to inlcude Role and SortOrder
2025-03-24 15:29:28 +01:00
JPVenson
671d801d9f
#13540 Fixed (#13757)
#13508 Partially fixed

Co-authored-by: JPVenson <github@jpb.software>
2025-03-23 19:52:34 -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
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
Lampan-git
7abb94d8a2 Move mapping assignment to Map 2025-03-05 22:37:18 +01:00
Lampan-git
e137a06362 Change PeopleBaseItemMap query from GroupJoin to Include 2025-03-05 16:59:49 +01:00
Lampan-git
4e3d7383f5 Change GetPeople PeopleBaseItemMap code to query 2025-03-05 16:59:31 +01:00
Lampan-git
d28ee96f06 Include PeopleBaseItemMap in GetPeople 2025-02-25 18:10:50 +01:00
Cody Robibero
712908d53c
Revert nullability of MediaStream.IsHearingImpaired (#13573) 2025-02-17 19:20:18 -07:00