aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2026-08-14 08:09:38 +0200
committerShadowghost <Ghost_of_Stone@web.de>2026-08-14 08:09:38 +0200
commit06e37a7bf6e56efdf1ce9db82ad0a9057efc8008 (patch)
tree81a45b26423bc39edca21a77dcf37a2163834bd2
parentc77649d21e6bd53a662b217c6431b7d123d656b9 (diff)
parent8f97e690c8de997dea7861cca7f5a916b67dcb59 (diff)
Merge remote-tracking branch 'upstream/master' into optimize-db-helper-memory
-rw-r--r--Directory.Packages.props38
-rw-r--r--Emby.Server.Implementations/Localization/Core/de.json2
-rw-r--r--Emby.Server.Implementations/Localization/Core/lt-LT.json2
-rw-r--r--Emby.Server.Implementations/Localization/Core/ms.json8
-rw-r--r--Jellyfin.Server.Implementations/Item/LinkedChildrenService.cs20
-rw-r--r--tests/Jellyfin.Server.Implementations.Tests/Localization/LocalizationManagerTests.cs2
6 files changed, 40 insertions, 32 deletions
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 55def8ae1a..9857493c59 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -26,27 +26,27 @@
<PackageVersion Include="libse" Version="4.0.12" />
<PackageVersion Include="LrcParser" Version="2025.623.0" />
<PackageVersion Include="MetaBrainz.MusicBrainz" Version="8.0.1" />
- <PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="10.0.10" />
- <PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.10" />
+ <PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.11" />
<PackageVersion Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="5.6.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="5.6.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.6.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.6.0" />
- <PackageVersion Include="Microsoft.Data.Sqlite" Version="10.0.10" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.10" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.10" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.10" />
- <PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.10" />
- <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.10" />
+ <PackageVersion Include="Microsoft.Data.Sqlite" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.11" />
+ <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.11" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.8.1" />
<PackageVersion Include="MimeTypes" Version="2.5.2" />
<PackageVersion Include="Morestachio" Version="5.0.1.670" />
@@ -78,9 +78,9 @@
<PackageVersion Include="Svg.Skia" Version="3.7.0" />
<PackageVersion Include="Swashbuckle.AspNetCore.ReDoc" Version="10.2.3" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="10.2.3" />
- <PackageVersion Include="System.Text.Json" Version="10.0.10" />
+ <PackageVersion Include="System.Text.Json" Version="10.0.11" />
<PackageVersion Include="TagLibSharp" Version="2.3.0" />
- <PackageVersion Include="z440.atl.core" Version="7.15.3" />
+ <PackageVersion Include="z440.atl.core" Version="7.16.0" />
<PackageVersion Include="TMDbLib" Version="3.0.0" />
<PackageVersion Include="UTF.Unknown" Version="2.6.0" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
diff --git a/Emby.Server.Implementations/Localization/Core/de.json b/Emby.Server.Implementations/Localization/Core/de.json
index e812e303d0..ce5a4c0a6c 100644
--- a/Emby.Server.Implementations/Localization/Core/de.json
+++ b/Emby.Server.Implementations/Localization/Core/de.json
@@ -1,6 +1,6 @@
{
"AppDeviceValues": "App: {0}, Gerät: {1}",
- "Artists": "Interpreten",
+ "Artists": "Künstler",
"AuthenticationSucceededWithUserName": "{0} erfolgreich authentifiziert",
"Books": "Bücher",
"ChapterNameValue": "Kapitel {0}",
diff --git a/Emby.Server.Implementations/Localization/Core/lt-LT.json b/Emby.Server.Implementations/Localization/Core/lt-LT.json
index 137aa15ad5..6358732934 100644
--- a/Emby.Server.Implementations/Localization/Core/lt-LT.json
+++ b/Emby.Server.Implementations/Localization/Core/lt-LT.json
@@ -59,7 +59,7 @@
"UserOfflineFromDevice": "{0} buvo atjungtas nuo {1}",
"UserOnlineFromDevice": "{0} prisijungęs iš {1}",
"UserPasswordChangedWithName": "Slaptažodis pakeistas naudotojui {0}",
- "UserStartedPlayingItemWithValues": "{0} leidžia {1} į {2}",
+ "UserStartedPlayingItemWithValues": "{0} paleidžia {1} į {2}",
"UserStoppedPlayingItemWithValues": "{0} baigė leisti {1} į {2}",
"VersionNumber": "Versija {0}",
"TaskUpdatePluginsDescription": "Atsisiunčia ir įdiegia įskiepių, kurie sukonfigūruoti atnaujinti automatiškai, naujinius.",
diff --git a/Emby.Server.Implementations/Localization/Core/ms.json b/Emby.Server.Implementations/Localization/Core/ms.json
index 9fc61fadd5..bb4469ad9c 100644
--- a/Emby.Server.Implementations/Localization/Core/ms.json
+++ b/Emby.Server.Implementations/Localization/Core/ms.json
@@ -106,5 +106,11 @@
"TaskAudioNormalization": "Normalisasi Audio",
"TaskAudioNormalizationDescription": "Mengimbas fail-fail untuk data normalisasi audio.",
"CleanupUserDataTaskDescription": "Membersihkan semua data pengguna (keadaan tontonan, status kegemaran, dan sebagainya) daripada media yang tidak lagi wujud sekurang-kurangnya selama 90 hari.",
- "CleanupUserDataTask": "Tugas pembersihan data pengguna"
+ "CleanupUserDataTask": "Tugas pembersihan data pengguna",
+ "LyricDownloadFailureFromForItem": "Lirik gagal dimuat turun dari {0} untuk {1}",
+ "NameExtraBehindTheScenes": "Di Sebalik Takbir",
+ "NameExtraClip": "Klip",
+ "NameExtraInterview": "Temu bual",
+ "NameExtraThemeSong": "Lagu Tema",
+ "NameExtraThemeVideo": "Video Tema"
}
diff --git a/Jellyfin.Server.Implementations/Item/LinkedChildrenService.cs b/Jellyfin.Server.Implementations/Item/LinkedChildrenService.cs
index 40300b7fa2..de112d7aa4 100644
--- a/Jellyfin.Server.Implementations/Item/LinkedChildrenService.cs
+++ b/Jellyfin.Server.Implementations/Item/LinkedChildrenService.cs
@@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Linq;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations;
+using Jellyfin.Extensions;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Persistence;
using Microsoft.EntityFrameworkCore;
@@ -83,26 +84,27 @@ public class LinkedChildrenService : ILinkedChildrenService
{
using var dbContext = _dbProvider.CreateDbContext();
- var lowerNames = artistNames.Select(n => n.ToLowerInvariant()).ToArray();
+ var cleanNames = artistNames.Select(n => (Original: n, Clean: n.GetCleanValue())).ToArray();
+ var cleanValues = cleanNames.Select(x => x.Clean).ToArray();
+
var artists = dbContext.BaseItems
.AsNoTracking()
.Where(e => e.Type == _itemTypeLookup.BaseItemKindNames[BaseItemKind.MusicArtist]!)
- .Where(e => lowerNames.Contains(e.Name!.ToLower()))
+ .Where(e => cleanValues.Contains(e.CleanName))
.ToArray();
var lookup = artists
- .GroupBy(e => e.Name!, StringComparer.OrdinalIgnoreCase)
+ .GroupBy(e => e.CleanName!)
.ToDictionary(
g => g.Key,
- g => g.Select(f => _queryHelpers.DeserializeBaseItem(f)).Where(dto => dto is not null).Cast<MusicArtist>().ToArray(),
- StringComparer.OrdinalIgnoreCase);
+ g => g.Select(f => _queryHelpers.DeserializeBaseItem(f)).Where(dto => dto is not null).Cast<MusicArtist>().ToArray());
- var result = new Dictionary<string, MusicArtist[]>(artistNames.Count);
- foreach (var name in artistNames)
+ var result = new Dictionary<string, MusicArtist[]>(cleanNames.Length);
+ foreach (var (original, clean) in cleanNames)
{
- if (lookup.TryGetValue(name, out var artistArray))
+ if (lookup.TryGetValue(clean, out var artistArray))
{
- result[name] = artistArray;
+ result[original] = artistArray;
}
}
diff --git a/tests/Jellyfin.Server.Implementations.Tests/Localization/LocalizationManagerTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Localization/LocalizationManagerTests.cs
index 2ed880ed9c..7d7de94348 100644
--- a/tests/Jellyfin.Server.Implementations.Tests/Localization/LocalizationManagerTests.cs
+++ b/tests/Jellyfin.Server.Implementations.Tests/Localization/LocalizationManagerTests.cs
@@ -427,7 +427,7 @@ namespace Jellyfin.Server.Implementations.Tests.Localization
{
CultureInfo.CurrentUICulture = CultureInfo.GetCultureInfo("de");
var translated = localizationManager.GetLocalizedString("Artists");
- Assert.Equal("Interpreten", translated);
+ Assert.Equal("Künstler", translated);
}
finally
{