diff options
| -rw-r--r-- | .config/dotnet-tools.json | 2 | ||||
| -rw-r--r-- | .github/workflows/ci-codeql-analysis.yml | 6 | ||||
| -rw-r--r-- | .github/workflows/issue-stale.yml | 2 | ||||
| -rw-r--r-- | .github/workflows/pull-request-stale.yaml | 2 | ||||
| -rw-r--r-- | Directory.Packages.props | 56 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Localization/Core/de.json | 2 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Localization/Core/ja.json | 3 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/ListingsManager.cs | 7 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs | 6 |
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 { |
