Cody Robibero
afa2103d42
Use dto instead of db object when returning trickplay
2025-06-16 18:55:21 -06:00
gnattu
f60281d8fd
Use square root scaling for high framerate videos' bitrate requirements ( #14314 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-06-15 15:22:49 -06:00
ThunderClapLP
6b5ce934b3
Fix existing media segments not being handled on scan ( #14218 )
2025-06-10 07:45:09 -06:00
Sid K
1e8bf1ce8d
fix(Session): don't query DB if queue hasn't changed ( #14244 )
2025-06-09 17:33:28 -06:00
Bond-009
eea80e5735
Merge pull request #13145 from SenorSmartyPants/RemoteImageSorting
...
Merge Conflict Labeler / Labeling (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Round RemoteImage CommunityRating to nearest tenths when sorting
2025-06-01 20:14:39 +02:00
Bond-009
0c3ba30de2
Cleanup file related code ( #14023 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-05-04 08:40:34 -06:00
JPVenson
a0931baa8e
Add Api and startup check for sufficient storage capacity ( #13888 )
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
2025-04-20 20:06:50 -06:00
Niels van Velzen
269508be9f
Fix SyncPlay WebSocket OpenAPI schemas ( #13946 )
2025-04-19 13:08:15 -06:00
gnattu
32fe92d8f5
Only reselect audio streams when user preference is respected ( #13832 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-04-08 19:22:30 -06:00
Niels van Velzen
16dc1e2260
Use Guid for parentPrimaryImageItemId ( #13874 )
2025-04-08 14:59:21 -06:00
baka0815
5fc1b1c862
Translate the ISO-639-2/B codes to ISO-639-2/T. ( #13068 )
...
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
* 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
Alex
82a561b87d
Add API support for ELRC word-based lyrics ( #12941 )
...
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
* Add API support for ELRC word-based lyrics
Adds support for word-based timestamps from within ELRC files.
* Create TimeTags object
* redo TimeTag implementation
Change TimeTag to long, redo TimeTag implementation
Make timestamp not nullable
Update MediaBrowser.Model/Lyrics/LyricLine.cs
Make TimeTag list IReadOnlyList
Remove nullable Timestamp
Update TimeTag description
Co-Authored-By: Cody Robibero <cody@robibe.ro >
* Changes to LyricLineTimeTag
Moved TimeTag to LyricLineTimeTag
Change "timestamp" to "start" for consistency
Change plural "TimeTags" to "Cues"
Change comments
* Change LyricLineTimeTag to LyricLineCue, include info about end times
* Remove width
* Remove width tag
* Rewrite cue parser and add tests
---------
Co-authored-by: Cody Robibero <cody@robibe.ro >
2025-04-07 08:59:18 -06:00
JQ
fe79384cd5
Returns album artists apart from artist names when doing a lyrics search ( #13852 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-04-06 14:18:39 -06:00
timminator
d1ed6593ad
Make ReadInputAtNativeFramerate configurable for M3U tuner ( #13773 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-04-03 09:18:00 -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
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
086fbd49cf
Cleanup ItemFields ( #13818 )
...
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
* Cleanup ItemFields
* Update MediaBrowser.Model/Querying/ItemFields.cs
2025-03-31 17:46:21 -06:00
KGT1
14b785d188
Preserve SplashscreenLocation when updating branding config ( #13756 )
...
* add BrandingOptionsDto and add branding endpoints
* refactor new HttpGet Configuration Branding into existing API calls
* Add BrandingOptions to _ignoredConfigurations for openAPI
* rename BrandOptionsDto to BrandingOptionsDto
2025-03-31 17:46:01 -06:00
gnattu
4a4fef830e
Explicitly set default value for enums used in API models ( #13821 )
...
Enums in response model with no nullability or default value will make the API very fragile as each extension to the enum will break the API for some clients, but a lot of enums actually do have an unknown value which should be used as a default. This set all model properties that are non-nullable using an enum that has an Unknown member in 10.10, except MediaStream.VideoRangeType which is refactored in #13277
2025-03-31 17:43:31 -06:00
Bond-009
e9729a536f
Use pattern matching for null checks ( #13793 )
...
Fix the few that slipped through
2025-03-31 17:38:25 -06:00
Tim Eisele
3fc3b04daf
Rework parental ratings ( #12615 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-03-30 21:51:54 -06:00
Tim Eisele
824bafc32d
Fix StreamInfo.ToUrl ( #13808 )
2025-03-30 21:37:58 -06:00
Johannes Heuel
2c499d1e86
feat: allow grouping shows into collections ( #13236 )
...
OpenAPI / OpenAPI - BASE (push) Waiting to run
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
* 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
Tim Eisele
9657708b38
Reduce allocations, simplifed code, faster implementation, included tests - StreamInfo.ToUrl ( #9369 )
...
* Rework PR 6168
* Fix test
2025-03-28 06:51:44 -06:00
Dmitry Lyzo
cb931e0062
Add profile condition to limit the number of streams ( #13583 )
2025-03-28 06:51:22 -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
Dmitry Lyzo
777e0823ba
Extract container, video and audio compatibility checks ( #12678 )
...
* Extract container, video and audio compatibility checks
* Extract audio compatibility checks
* Extract CheckVideoConditions
* Simplify direct audio stream check
2025-03-26 20:24:16 -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
Bond-009
480244e111
Merge pull request #13691 from NooNameR/noonamer/add_pattern_search
...
Add ability to provide search pattern to GetFiles
2025-03-24 14:15:42 +01: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
Joshua M. Boniface
79437f85c5
Merge pull request #13175 from Shadowghost/external-url-providers
...
Migrate to IExternalUrlProvider
2025-03-13 21:08:18 -04:00
denys.kozhevnikov
4325c67e89
Add ability to provide search pattern
2025-03-11 21:04:12 +00:00
Bond-009
710c253318
Merge pull request #13606 from nielsvanvelzen/goodbye-wal
...
Remove deprecated GetWakeOnLanInfo endpoint
2025-03-01 14:53:19 +01:00
Dominik Krivohlavek
93dd5551df
Add support for reading and storing Recording MBIDs from file metadata ( #12173 )
...
* Add recording metadata provider
* Add recording MBID
* Save recording MBID during probing
* Set recording ID in probe result normalizer
* Add recording external media type
* Reimplement after changes in upstream
* Rename variable
* Rename variable
* Revert "Set recording ID in probe result normalizer"
This reverts commit 9dd18c8aba .
* Fix setting provider ID
* Simplify code
* Fix comment
* Add missing using
2025-02-28 23:00:52 -07:00
Niels van Velzen
83b2c47237
Remove deprecated GetWakeOnLanInfo endpoint
2025-02-22 10:23:33 +01:00
Shadowghost
5303445c9b
Migrate to IExternalUrlProvider
2025-02-20 10:13:27 +01:00
Cody Robibero
712908d53c
Revert nullability of MediaStream.IsHearingImpaired ( #13573 )
2025-02-17 19:20:18 -07:00
Bond-009
2db0750abb
Make the JsonConverters for delimited arrays more generic ( #13396 )
...
* Make the JsonConverters for delimited arrays more generic
Also adds some tests for serialization (with different types) as we didn't have any before.
* Ignore warnings
2025-02-13 20:24:55 -07:00
gnattu
c05a41cc3c
Backport pull request #13423 from jellyfin/release-10.10.z
...
Don't select audio stream and codec explicitly for copy when bitrate exceeds limit
Original-merge: e8514de33b
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-02-03 17:07:11 -05:00
gnattu
ceba3475fb
Backport pull request #13345 from jellyfin/release-10.10.z
...
Never treat matroska as webm for audio playback
Original-merge: 344cc8b97b
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-02-03 16:59:06 -05:00
Shadowghost
e79fc6b851
Backport pull request #13288 from jellyfin/release-10.10.z
...
Fix DTS in HLS
Original-merge: cea0c95942
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-02-03 16:59:04 -05:00
gnattu
8cb11692a9
Backport pull request #13209 from jellyfin/release-10.10.z
...
Transcode to audio codec satisfied other conditions when copy check failed.
Original-merge: 8aa41d5904
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-02-03 16:56:01 -05: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
Josh Soref
40da2ccac5
Fix spelling ( #13444 )
...
* spelling: anamorphic
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: associated
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: channelinfo
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: eagerly
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: enumerable
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: greater than/less than
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: greater
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: lineup
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: logs out
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: names
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: paging
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: playlist
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: sanitized
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
* spelling: saving
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
---------
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2025-01-28 11:27:34 +01:00
Bond-009
2e080087e6
Merge pull request #13438 from luzpaz/typos-various
...
Fix typos
2025-01-27 14:13:31 +01:00
Bond-009
7684986fa1
Use MediaTypeNames where possible ( #13440 )
2025-01-26 21:06:24 -07:00
luzpaz
b37bc9016f
Fix typos
...
Found via `codespell -q 3 -D ../../dictionary.txt -S "./Emby.Server.Implementations/Localization" -L allready,childrens,groupe,inh,raisons,re-use,som,supercede,superceded,thirdparty,whoknows`
2025-01-26 11:14:03 -05: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