aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Emby.Server.Implementations/Localization/Core/hy.json12
-rw-r--r--MediaBrowser.Model/Querying/QueryFiltersLegacy.cs18
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs2
-rw-r--r--src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs15
4 files changed, 34 insertions, 13 deletions
diff --git a/Emby.Server.Implementations/Localization/Core/hy.json b/Emby.Server.Implementations/Localization/Core/hy.json
index 80be71ed70..09f1bfe79c 100644
--- a/Emby.Server.Implementations/Localization/Core/hy.json
+++ b/Emby.Server.Implementations/Localization/Core/hy.json
@@ -29,5 +29,15 @@
"Default": "Լռելյայն",
"Favorites": "Ընտրյալ",
"Forced": "Ստիպուած",
- "Genres": "Ոճ"
+ "Genres": "Ոճ",
+ "HeaderFavoriteEpisodes": "Սիրելի դրվագներ",
+ "HeaderFavoriteShows": "Սիրելի հաղորդումներ",
+ "HeaderLiveTV": "Ուղիղ եթեր",
+ "HeaderNextUp": "Հաջորդը",
+ "HomeVideos": "Տնային տեսանյութեր",
+ "LabelRunningTimeValue": "Տևողությունը: {0}",
+ "Latest": "Վերջինը",
+ "LyricDownloadFailureFromForItem": "Չհաջողվեց ներբեռնել {1}-ի երգի բառերը {0}-ից",
+ "MixedContent": "Խառը բովանդակություն",
+ "CleanupUserDataTaskDescription": "Մաքրում է օգտատիրոջ բոլոր տվյալները (դիտման կարգավիճակ, «սիրելի» նշում և այլն) այն մեդիաֆայլերից, որոնք առնվազն 90 օր է՝ առկա չեն։"
}
diff --git a/MediaBrowser.Model/Querying/QueryFiltersLegacy.cs b/MediaBrowser.Model/Querying/QueryFiltersLegacy.cs
index fcb450ed30..8aa234a1c3 100644
--- a/MediaBrowser.Model/Querying/QueryFiltersLegacy.cs
+++ b/MediaBrowser.Model/Querying/QueryFiltersLegacy.cs
@@ -1,7 +1,7 @@
#nullable disable
#pragma warning disable CS1591
-using System;
+using System.Collections.Generic;
namespace MediaBrowser.Model.Querying
{
@@ -9,18 +9,18 @@ namespace MediaBrowser.Model.Querying
{
public QueryFiltersLegacy()
{
- Genres = Array.Empty<string>();
- Tags = Array.Empty<string>();
- OfficialRatings = Array.Empty<string>();
- Years = Array.Empty<int>();
+ Genres = [];
+ Tags = [];
+ OfficialRatings = [];
+ Years = [];
}
- public string[] Genres { get; set; }
+ public IReadOnlyList<string> Genres { get; set; }
- public string[] Tags { get; set; }
+ public IReadOnlyList<string> Tags { get; set; }
- public string[] OfficialRatings { get; set; }
+ public IReadOnlyList<string> OfficialRatings { get; set; }
- public int[] Years { get; set; }
+ public IReadOnlyList<int> Years { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index 8387f24bc9..855765441b 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -599,7 +599,7 @@ namespace MediaBrowser.Providers.Manager
// An extra is a local file belonging to another item and has no identity of its own in an
// online database. Looking it up matches whatever the surrounding folder happens to be
// called and overwrites the extra's name with a different item's title.
- if (item.ExtraType.HasValue)
+ if (item.ExtraType.HasValue && provider is IRemoteMetadataProvider)
{
return false;
}
diff --git a/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs b/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs
index a3fbe42e02..f0b44d6130 100644
--- a/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs
+++ b/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs
@@ -287,7 +287,7 @@ public sealed class SqliteDatabaseProvider : IJellyfinDatabaseProvider
/// <inheritdoc />
public async Task<string> MigrationBackupFast(CancellationToken cancellationToken)
{
- var path = Path.Combine(_applicationPaths.DataPath, "jellyfin.db");
+ var path = GetDatabasePath();
var backupFolder = Path.Combine(_applicationPaths.DataPath, BackupFolderName);
Directory.CreateDirectory(backupFolder);
@@ -317,7 +317,7 @@ public sealed class SqliteDatabaseProvider : IJellyfinDatabaseProvider
{
// ensure there are absolutely no dangling Sqlite connections.
SqliteConnection.ClearAllPools();
- var path = Path.Combine(_applicationPaths.DataPath, "jellyfin.db");
+ var path = GetDatabasePath();
var backupFile = Path.Combine(_applicationPaths.DataPath, BackupFolderName, $"{key}_jellyfin.db");
if (!File.Exists(backupFile))
@@ -390,6 +390,17 @@ public sealed class SqliteDatabaseProvider : IJellyfinDatabaseProvider
return Task.CompletedTask;
}
+ private string GetDatabasePath()
+ {
+ if (DbContextFactory is null)
+ {
+ throw new InvalidOperationException("The database provider has not been initialized.");
+ }
+
+ using var dbContext = DbContextFactory.CreateDbContext();
+ return dbContext.Database.GetDbConnection().DataSource;
+ }
+
/// <inheritdoc/>
public async Task PurgeDatabase(JellyfinDbContext dbContext, IEnumerable<string>? tableNames)
{