mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Reverted Primary Constructor
This commit is contained in:
parent
a3ae055779
commit
9342a6a9d6
@ -12,18 +12,32 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
|
|
||||||
namespace Jellyfin.Server.Implementations.Item;
|
namespace Jellyfin.Server.Implementations.Item;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Repository for obtaining MediaStreams.
|
||||||
|
/// </summary>
|
||||||
|
public class MediaStreamRepository : IMediaStreamRepository
|
||||||
|
{
|
||||||
|
private readonly IDbContextFactory<JellyfinDbContext> _dbProvider;
|
||||||
|
private readonly IServerApplicationHost _serverApplicationHost;
|
||||||
|
private readonly ILocalizationManager _localization;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="MediaStreamRepository"/> class.
|
/// Initializes a new instance of the <see cref="MediaStreamRepository"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dbProvider">The EFCore db factory.</param>
|
/// <param name="dbProvider">The EFCore db factory.</param>
|
||||||
/// <param name="serverApplicationHost">The Application host.</param>
|
/// <param name="serverApplicationHost">The Application host.</param>
|
||||||
/// <param name="localization">The Localisation Provider.</param>
|
/// <param name="localization">The Localisation Provider.</param>
|
||||||
public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvider, IServerApplicationHost serverApplicationHost, ILocalizationManager localization) : IMediaStreamRepository
|
public MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvider, IServerApplicationHost serverApplicationHost, ILocalizationManager localization)
|
||||||
{
|
{
|
||||||
|
_dbProvider = dbProvider;
|
||||||
|
_serverApplicationHost = serverApplicationHost;
|
||||||
|
_localization = localization;
|
||||||
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void SaveMediaStreams(Guid id, IReadOnlyList<MediaStream> streams, CancellationToken cancellationToken)
|
public void SaveMediaStreams(Guid id, IReadOnlyList<MediaStream> streams, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
using var context = dbProvider.CreateDbContext();
|
using var context = _dbProvider.CreateDbContext();
|
||||||
using var transaction = context.Database.BeginTransaction();
|
using var transaction = context.Database.BeginTransaction();
|
||||||
|
|
||||||
context.MediaStreamInfos.Where(e => e.ItemId.Equals(id)).ExecuteDelete();
|
context.MediaStreamInfos.Where(e => e.ItemId.Equals(id)).ExecuteDelete();
|
||||||
@ -36,7 +50,7 @@ public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvid
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public IReadOnlyList<MediaStream> GetMediaStreams(MediaStreamQuery filter)
|
public IReadOnlyList<MediaStream> GetMediaStreams(MediaStreamQuery filter)
|
||||||
{
|
{
|
||||||
using var context = dbProvider.CreateDbContext();
|
using var context = _dbProvider.CreateDbContext();
|
||||||
return TranslateQuery(context.MediaStreamInfos.AsNoTracking(), filter).AsEnumerable().Select(Map).ToImmutableArray();
|
return TranslateQuery(context.MediaStreamInfos.AsNoTracking(), filter).AsEnumerable().Select(Map).ToImmutableArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +61,7 @@ public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvid
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return serverApplicationHost.ReverseVirtualPath(path);
|
return _serverApplicationHost.ReverseVirtualPath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string? RestorePath(string? path)
|
private string? RestorePath(string? path)
|
||||||
@ -57,7 +71,7 @@ public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvid
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return serverApplicationHost.ExpandVirtualPath(path);
|
return _serverApplicationHost.ExpandVirtualPath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IQueryable<MediaStreamInfo> TranslateQuery(IQueryable<MediaStreamInfo> query, MediaStreamQuery filter)
|
private IQueryable<MediaStreamInfo> TranslateQuery(IQueryable<MediaStreamInfo> query, MediaStreamQuery filter)
|
||||||
@ -131,14 +145,14 @@ public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvid
|
|||||||
|
|
||||||
if (dto.Type is MediaStreamType.Audio or MediaStreamType.Subtitle)
|
if (dto.Type is MediaStreamType.Audio or MediaStreamType.Subtitle)
|
||||||
{
|
{
|
||||||
dto.LocalizedDefault = localization.GetLocalizedString("Default");
|
dto.LocalizedDefault = _localization.GetLocalizedString("Default");
|
||||||
dto.LocalizedExternal = localization.GetLocalizedString("External");
|
dto.LocalizedExternal = _localization.GetLocalizedString("External");
|
||||||
|
|
||||||
if (dto.Type is MediaStreamType.Subtitle)
|
if (dto.Type is MediaStreamType.Subtitle)
|
||||||
{
|
{
|
||||||
dto.LocalizedUndefined = localization.GetLocalizedString("Undefined");
|
dto.LocalizedUndefined = _localization.GetLocalizedString("Undefined");
|
||||||
dto.LocalizedForced = localization.GetLocalizedString("Forced");
|
dto.LocalizedForced = _localization.GetLocalizedString("Forced");
|
||||||
dto.LocalizedHearingImpaired = localization.GetLocalizedString("HearingImpaired");
|
dto.LocalizedHearingImpaired = _localization.GetLocalizedString("HearingImpaired");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user