fix userdata transactions
This commit is contained in:
parent
f8dedb3fe8
commit
cf0d9883c6
|
@ -58,7 +58,7 @@ namespace MediaBrowser.Api.Movies
|
|||
|
||||
getItems.IncludeItemTypes = "Trailer";
|
||||
|
||||
return new ItemsService(_userManager, _libraryManager, _userDataRepository, _localizationManager, _dtoService, _collectionManager)
|
||||
return new ItemsService(_userManager, _libraryManager, _localizationManager, _dtoService)
|
||||
{
|
||||
AuthorizationContext = AuthorizationContext,
|
||||
Logger = Logger,
|
||||
|
|
|
@ -842,17 +842,17 @@ namespace MediaBrowser.Model.Dlna
|
|||
{
|
||||
bool requiresConversion = !StringHelper.EqualsIgnoreCase(subtitleStream.Codec, profile.Format);
|
||||
|
||||
if (requiresConversion && !allowConversion)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!requiresConversion)
|
||||
{
|
||||
return profile;
|
||||
}
|
||||
|
||||
if (subtitleStream.IsTextSubtitleStream && subtitleStream.SupportsExternalStream)
|
||||
if (!allowConversion)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (subtitleStream.IsTextSubtitleStream && subtitleStream.SupportsExternalStream && subtitleStream.SupportsSubtitleConversionTo(profile.Format))
|
||||
{
|
||||
return profile;
|
||||
}
|
||||
|
|
|
@ -282,6 +282,36 @@ namespace MediaBrowser.Model.Entities
|
|||
!StringHelper.EqualsIgnoreCase(codec, "sub");
|
||||
}
|
||||
|
||||
public bool SupportsSubtitleConversionTo(string codec)
|
||||
{
|
||||
if (!IsTextSubtitleStream)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Can't convert from this
|
||||
if (StringHelper.EqualsIgnoreCase(Codec, "ass"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (StringHelper.EqualsIgnoreCase(Codec, "ssa"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Can't convert to this
|
||||
if (StringHelper.EqualsIgnoreCase(codec, "ass"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (StringHelper.EqualsIgnoreCase(codec, "ssa"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether [supports external stream].
|
||||
/// </summary>
|
||||
|
|
|
@ -69,14 +69,6 @@ namespace MediaBrowser.Server.Implementations.Library
|
|||
|
||||
if (stream.IsTextSubtitleStream)
|
||||
{
|
||||
if (string.Equals(stream.Codec, "ass", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (string.Equals(stream.Codec, "ssa", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||
{
|
||||
public abstract class BaseSqliteRepository : IDisposable
|
||||
{
|
||||
protected readonly SemaphoreSlim WriteLock = new SemaphoreSlim(1, 1);
|
||||
protected SemaphoreSlim WriteLock = new SemaphoreSlim(1, 1);
|
||||
protected readonly IDbConnector DbConnector;
|
||||
protected ILogger Logger;
|
||||
|
||||
|
|
|
@ -328,7 +328,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||
new MediaStreamColumns(_connection, Logger).AddColumns();
|
||||
|
||||
DataExtensions.Attach(_connection, Path.Combine(_config.ApplicationPaths.DataPath, "userdata_v2.db"), "UserDataDb");
|
||||
await userDataRepo.Initialize(_connection).ConfigureAwait(false);
|
||||
await userDataRepo.Initialize(_connection, WriteLock).ConfigureAwait(false);
|
||||
//await Vacuum(_connection).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
|
|
|
@ -56,8 +56,10 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||
/// Opens the connection to the database
|
||||
/// </summary>
|
||||
/// <returns>Task.</returns>
|
||||
public async Task Initialize(IDbConnection connection)
|
||||
public async Task Initialize(IDbConnection connection, SemaphoreSlim writeLock)
|
||||
{
|
||||
WriteLock.Dispose();
|
||||
WriteLock = writeLock;
|
||||
_connection = connection;
|
||||
|
||||
string[] queries = {
|
||||
|
@ -438,18 +440,14 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||
return userData;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool dispose)
|
||||
{
|
||||
// handled by library database
|
||||
}
|
||||
|
||||
protected override void CloseConnection()
|
||||
{
|
||||
if (_connection != null)
|
||||
{
|
||||
if (_connection.IsOpen())
|
||||
{
|
||||
_connection.Close();
|
||||
}
|
||||
|
||||
_connection.Dispose();
|
||||
_connection = null;
|
||||
}
|
||||
// handled by library database
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user