| Age | Commit message (Collapse) | Author |
|
StreamInfo.ToUrl() generated URLs like `/master.m3u8?&DeviceId=...` (note `?&`)
because `?` was appended to the path and all parameters started with `&`. When
the first optional parameter (DeviceProfileId) was null, the result was a
malformed query string.
This is harmless when clients hit Jellyfin directly (ASP.NET Core tolerates `?&`),
but when accessed through a reverse proxy that parses and re-serializes the URL
(e.g. Home Assistant ingress via aiohttp/yarl), `?&` becomes `?=&` — introducing
an empty-key query parameter. ParseStreamOptions then crashes on `param.Key[0]`
with IndexOutOfRangeException.
Changes:
- StreamInfo.ToUrl(): Track query start position and replace the first `&` with
`?` after all parameters are appended, producing valid query strings
- ParseStreamOptions: Guard against empty query parameter keys
- Tests: Remove .Replace("?&", "?") workaround that masked the bug
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add curly brace and parentheses support for parsing attribute values
|
|
|
|
Revert hidden directory ignore pattern
Original-merge: 644327eb762a907328c68ab9f5d61a151cd96897
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
Skip hidden directories and .ignore paths in library monitoring
Original-merge: 2cb7fb52d2221d9daa39206089b578c2c0fcb549
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
The DisplayTitle property was using .NET's CultureInfo.GetCultures(NeutralCultures)
to resolve language display names. Since zh-CN is a specific culture (not neutral),
it would fall back to the base 'zh' code, resulting in generic 'Chinese' instead
of 'Chinese (Simplified)'.
This change adds a LocalizedLanguage property to MediaStream that gets populated
via LocalizationManager.FindLanguageInfo() when streams are retrieved from the
database. This leverages Jellyfin's existing iso6392.txt mappings which correctly
map zh-CN to 'Chinese (Simplified)'.
The same pattern is already used for other localized strings like LocalizedDefault
and LocalizedExternal.
|
|
Refactor HLS transcode seeking
|
|
|
|
|
|
|
|
ZeusCraft10/fix/issue-15945-unknown-type-deserialization
fix: Handle unknown item types gracefully in DeserializeBaseItem
|
|
When a password hash is missing the 'iterations' parameter, Verify now
throws a descriptive FormatException instead of KeyNotFoundException.
- Extract GetIterationsParameter() helper method to avoid code duplication
- Provide distinct error messages for missing vs invalid parameters
- Add comprehensive unit tests for CryptographyProvider
|
|
When querying items with recursive=true, items with types from removed
plugins would cause a 500 error. Now these items are skipped with a
warning log instead of throwing an exception.
Fixes #15945
|
|
The DisplayTitle property was using .NET's CultureInfo.GetCultures(NeutralCultures)
to resolve language display names. Since zh-CN is a specific culture (not neutral),
it would fall back to the base 'zh' code, resulting in generic 'Chinese' instead
of 'Chinese (Simplified)'.
This change adds a LocalizedLanguage property to MediaStream that gets populated
via LocalizationManager.FindLanguageInfo() when streams are retrieved from the
database. This leverages Jellyfin's existing iso6392.txt mappings which correctly
map zh-CN to 'Chinese (Simplified)'.
The same pattern is already used for other localized strings like LocalizedDefault
and LocalizedExternal.
|
|
Enforce more strict webm check
Original-merge: 8379b4634aeaf9827d07a41cf9ba8fd80c8c323e
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
Prefer US rating on fallback
Original-merge: 156761405e7fd5308474a7e6301839ae7c694dfa
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
Skip invalid ignore rules
Original-merge: 6e60634c9f078cc01e343b07a0a6b2a5c230478c
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
|
|
Fix: normalize punctuation when computing CleanName so searches without punctuation match (closes #1674)
|
|
Fix TV Series parsing containing only numbers.
|
|
Deprecate HasPassword property on UserDto
|
|
Fixed missing sort argument
Original-merge: 91c3b1617e06283c88f36bc63046b99c993cb774
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
Improve season folder parsing
Original-merge: 2e5ced50986c37b19b5f4ef34d730fc56a51535a
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
Skip too large extracted season numbers
Original-merge: e7dbb3afec3282c556e4fe35d9376ecaa4417171
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
|
|
Make season paths case-insensitive
Original-merge: 305b0fdca323833653dd26c642b2c465890143dc
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
|
|
|
|
|
|
|
|
|
|
|
|
updates SeriesResolver to handle series names that only contain numbers such as 1923.
|
|
|
|
|
|
Further refinement of BCP 47 language labeling support
|
|
|
|
naming conventions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enough away from the test data day to be off by a day.
Change the test startdate to specifically be utc instead of local machine timezone.
|
|
|
|
|
|
|
|
|
|
|
|
|