aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/dotnet-tools.json2
-rw-r--r--.github/workflows/ci-codeql-analysis.yml6
-rw-r--r--.github/workflows/issue-stale.yml2
-rw-r--r--.github/workflows/pull-request-stale.yaml2
-rw-r--r--Directory.Packages.props56
-rw-r--r--Emby.Server.Implementations/Localization/Core/de.json2
-rw-r--r--Emby.Server.Implementations/Localization/Core/ja.json3
-rw-r--r--src/Jellyfin.LiveTv/Listings/ListingsManager.cs7
-rw-r--r--src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs6
9 files changed, 47 insertions, 39 deletions
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index dd484d564..58fa62ec9 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"dotnet-ef": {
- "version": "9.0.0",
+ "version": "9.0.1",
"commands": [
"dotnet-ef"
]
diff --git a/.github/workflows/ci-codeql-analysis.yml b/.github/workflows/ci-codeql-analysis.yml
index ce047faa2..420850ac2 100644
--- a/.github/workflows/ci-codeql-analysis.yml
+++ b/.github/workflows/ci-codeql-analysis.yml
@@ -27,11 +27,11 @@ jobs:
dotnet-version: '9.0.x'
- name: Initialize CodeQL
- uses: github/codeql-action/init@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # v3.28.1
+ uses: github/codeql-action/init@d68b2d4edb4189fd2a5366ac14e72027bd4b37dd # v3.28.2
with:
languages: ${{ matrix.language }}
queries: +security-extended
- name: Autobuild
- uses: github/codeql-action/autobuild@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # v3.28.1
+ uses: github/codeql-action/autobuild@d68b2d4edb4189fd2a5366ac14e72027bd4b37dd # v3.28.2
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # v3.28.1
+ uses: github/codeql-action/analyze@d68b2d4edb4189fd2a5366ac14e72027bd4b37dd # v3.28.2
diff --git a/.github/workflows/issue-stale.yml b/.github/workflows/issue-stale.yml
index 5a1ca9f7a..624ea564f 100644
--- a/.github/workflows/issue-stale.yml
+++ b/.github/workflows/issue-stale.yml
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
if: ${{ contains(github.repository, 'jellyfin/') }}
steps:
- - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0
+ - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
with:
repo-token: ${{ secrets.JF_BOT_TOKEN }}
ascending: true
diff --git a/.github/workflows/pull-request-stale.yaml b/.github/workflows/pull-request-stale.yaml
index d01b3f4a1..7ce5b0fa6 100644
--- a/.github/workflows/pull-request-stale.yaml
+++ b/.github/workflows/pull-request-stale.yaml
@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
if: ${{ contains(github.repository, 'jellyfin/') }}
steps:
- - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0
+ - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
with:
repo-token: ${{ secrets.JF_BOT_TOKEN }}
ascending: true
diff --git a/Directory.Packages.props b/Directory.Packages.props
index a4ce5341a..dd7eb7f62 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -12,7 +12,7 @@
<PackageVersion Include="BlurHashSharp.SkiaSharp" Version="1.3.3" />
<PackageVersion Include="BlurHashSharp" Version="1.3.3" />
<PackageVersion Include="CommandLineParser" Version="2.9.1" />
- <PackageVersion Include="coverlet.collector" Version="6.0.3" />
+ <PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="Diacritics" Version="3.3.29" />
<PackageVersion Include="DiscUtils.Udf" Version="0.16.13" />
<PackageVersion Include="DotNet.Glob" Version="3.1.3" />
@@ -24,29 +24,29 @@
<PackageVersion Include="libse" Version="4.0.10" />
<PackageVersion Include="LrcParser" Version="2024.0728.2" />
<PackageVersion Include="MetaBrainz.MusicBrainz" Version="6.1.0" />
- <PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="9.0.0" />
- <PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.0" />
+ <PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="3.3.4" />
- <PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.0" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.0" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.0" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.0" />
- <PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.0" />
+ <PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.1" />
+ <PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.1" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageVersion Include="MimeTypes" Version="2.5.2" />
<PackageVersion Include="Mono.Nat" Version="3.0.4" />
@@ -65,7 +65,7 @@
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.Graylog" Version="3.1.1" />
<PackageVersion Include="SerilogAnalyzer" Version="0.15.0" />
- <PackageVersion Include="SharpFuzz" Version="2.1.1" />
+ <PackageVersion Include="SharpFuzz" Version="2.2.0" />
<PackageVersion Include="SkiaSharp" Version="2.88.9" />
<PackageVersion Include="SkiaSharp.HarfBuzz" Version="2.88.9" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.9" />
@@ -76,11 +76,11 @@
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<PackageVersion Include="System.Globalization" Version="4.3.0" />
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
- <PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.0" />
- <PackageVersion Include="System.Text.Json" Version="9.0.0" />
- <PackageVersion Include="System.Threading.Tasks.Dataflow" Version="9.0.0" />
+ <PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.1" />
+ <PackageVersion Include="System.Text.Json" Version="9.0.1" />
+ <PackageVersion Include="System.Threading.Tasks.Dataflow" Version="9.0.1" />
<PackageVersion Include="TagLibSharp" Version="2.3.0" />
- <PackageVersion Include="z440.atl.core" Version="6.11.0" />
+ <PackageVersion Include="z440.atl.core" Version="6.13.0" />
<PackageVersion Include="TMDbLib" Version="2.2.0" />
<PackageVersion Include="UTF.Unknown" Version="2.5.1" />
<PackageVersion Include="Xunit.Priority" Version="1.1.6" />
diff --git a/Emby.Server.Implementations/Localization/Core/de.json b/Emby.Server.Implementations/Localization/Core/de.json
index 20c5da114..c38af5bf4 100644
--- a/Emby.Server.Implementations/Localization/Core/de.json
+++ b/Emby.Server.Implementations/Localization/Core/de.json
@@ -5,7 +5,7 @@
"Artists": "Interpreten",
"AuthenticationSucceededWithUserName": "{0} erfolgreich authentifiziert",
"Books": "Bücher",
- "CameraImageUploadedFrom": "Ein neues Kamerafoto wurde von {0} hochgeladen",
+ "CameraImageUploadedFrom": "Ein neues Kamerabild wurde von {0} hochgeladen",
"Channels": "Kanäle",
"ChapterNameValue": "Kapitel {0}",
"Collections": "Sammlungen",
diff --git a/Emby.Server.Implementations/Localization/Core/ja.json b/Emby.Server.Implementations/Localization/Core/ja.json
index 10f4aee25..14a576592 100644
--- a/Emby.Server.Implementations/Localization/Core/ja.json
+++ b/Emby.Server.Implementations/Localization/Core/ja.json
@@ -134,5 +134,6 @@
"TaskExtractMediaSegments": "メディアセグメントを読み取る",
"TaskMoveTrickplayImages": "Trickplayの画像を移動",
"TaskMoveTrickplayImagesDescription": "ライブラリ設定によりTrickplayのファイルを移動。",
- "TaskDownloadMissingLyrics": "記録されていない歌詞をダウンロード"
+ "TaskDownloadMissingLyrics": "失われた歌詞をダウンロード",
+ "TaskExtractMediaSegmentsDescription": "MediaSegment 対応プラグインからメディア セグメントを抽出または取得します。"
}
diff --git a/src/Jellyfin.LiveTv/Listings/ListingsManager.cs b/src/Jellyfin.LiveTv/Listings/ListingsManager.cs
index 3df2d0d2c..39c2bd375 100644
--- a/src/Jellyfin.LiveTv/Listings/ListingsManager.cs
+++ b/src/Jellyfin.LiveTv/Listings/ListingsManager.cs
@@ -230,10 +230,15 @@ public class ListingsManager : IListingsManager
var listingsProviderInfo = config.ListingProviders
.First(info => string.Equals(providerId, info.Id, StringComparison.OrdinalIgnoreCase));
+ var channelMappingExists = listingsProviderInfo.ChannelMappings
+ .Any(pair => string.Equals(pair.Name, tunerChannelNumber, StringComparison.OrdinalIgnoreCase)
+ && string.Equals(pair.Value, providerChannelNumber, StringComparison.OrdinalIgnoreCase));
+
listingsProviderInfo.ChannelMappings = listingsProviderInfo.ChannelMappings
.Where(pair => !string.Equals(pair.Name, tunerChannelNumber, StringComparison.OrdinalIgnoreCase)).ToArray();
- if (!string.Equals(tunerChannelNumber, providerChannelNumber, StringComparison.OrdinalIgnoreCase))
+ if (!string.Equals(tunerChannelNumber, providerChannelNumber, StringComparison.OrdinalIgnoreCase)
+ && !channelMappingExists)
{
var newItem = new NameValuePair
{
diff --git a/src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs b/src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs
index 7dc30f727..7938b7a6e 100644
--- a/src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs
+++ b/src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs
@@ -84,10 +84,11 @@ namespace Jellyfin.LiveTv.Listings
_logger.LogInformation("Downloading xmltv listings from {Path}", info.Path);
using var response = await _httpClientFactory.CreateClient(NamedClient.Default).GetAsync(info.Path, cancellationToken).ConfigureAwait(false);
+ var redirectedUrl = response.RequestMessage?.RequestUri?.ToString() ?? info.Path;
var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
await using (stream.ConfigureAwait(false))
{
- return await UnzipIfNeededAndCopy(info.Path, stream, cacheFile, cancellationToken).ConfigureAwait(false);
+ return await UnzipIfNeededAndCopy(redirectedUrl, stream, cacheFile, cancellationToken).ConfigureAwait(false);
}
}
else
@@ -112,7 +113,8 @@ namespace Jellyfin.LiveTv.Listings
await using (fileStream.ConfigureAwait(false))
{
- if (Path.GetExtension(originalUrl.AsSpan().LeftPart('?')).Equals(".gz", StringComparison.OrdinalIgnoreCase))
+ if (Path.GetExtension(originalUrl.AsSpan().LeftPart('?')).Equals(".gz", StringComparison.OrdinalIgnoreCase) ||
+ Path.GetExtension(originalUrl.AsSpan().LeftPart('?')).Equals(".gzip", StringComparison.OrdinalIgnoreCase))
{
try
{