mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
update providers
This commit is contained in:
parent
6c0743a70d
commit
00bcbfa958
@ -50,12 +50,6 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
protected Task SaveProviderResult(TItemType item, MetadataStatus result, IDirectoryService directoryService)
|
protected Task SaveProviderResult(TItemType item, MetadataStatus result, IDirectoryService directoryService)
|
||||||
{
|
{
|
||||||
result.ItemId = item.Id;
|
result.ItemId = item.Id;
|
||||||
result.ItemName = item.Name;
|
|
||||||
result.ItemType = item.GetType().Name;
|
|
||||||
|
|
||||||
var series = item as IHasSeries;
|
|
||||||
|
|
||||||
result.SeriesName = series == null ? null : series.SeriesName;
|
|
||||||
|
|
||||||
//var locationType = item.LocationType;
|
//var locationType = item.LocationType;
|
||||||
|
|
||||||
@ -99,7 +93,6 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
var updateType = ItemUpdateType.None;
|
var updateType = ItemUpdateType.None;
|
||||||
var refreshResult = GetLastResult(item);
|
var refreshResult = GetLastResult(item);
|
||||||
refreshResult.LastErrorMessage = string.Empty;
|
|
||||||
|
|
||||||
var itemImageProvider = new ItemImageProvider(Logger, ProviderManager, ServerConfigurationManager, FileSystem);
|
var itemImageProvider = new ItemImageProvider(Logger, ProviderManager, ServerConfigurationManager, FileSystem);
|
||||||
var localImagesFailed = false;
|
var localImagesFailed = false;
|
||||||
@ -119,7 +112,6 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
{
|
{
|
||||||
localImagesFailed = true;
|
localImagesFailed = true;
|
||||||
Logger.ErrorException("Error validating images for {0}", ex, item.Path ?? item.Name ?? "Unknown name");
|
Logger.ErrorException("Error validating images for {0}", ex, item.Path ?? item.Name ?? "Unknown name");
|
||||||
refreshResult.AddStatus(ex.Message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var metadataResult = new MetadataResult<TItemType>
|
var metadataResult = new MetadataResult<TItemType>
|
||||||
@ -150,7 +142,6 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
var result = await RefreshWithProviders(metadataResult, id, refreshOptions, providers, itemImageProvider, cancellationToken).ConfigureAwait(false);
|
var result = await RefreshWithProviders(metadataResult, id, refreshOptions, providers, itemImageProvider, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
updateType = updateType | result.UpdateType;
|
updateType = updateType | result.UpdateType;
|
||||||
refreshResult.AddStatus(result.ErrorMessage);
|
|
||||||
if (result.Failures == 0)
|
if (result.Failures == 0)
|
||||||
{
|
{
|
||||||
refreshResult.SetDateLastMetadataRefresh(DateTime.UtcNow);
|
refreshResult.SetDateLastMetadataRefresh(DateTime.UtcNow);
|
||||||
@ -172,7 +163,6 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
var result = await itemImageProvider.RefreshImages(itemOfType, providers, refreshOptions, config, cancellationToken).ConfigureAwait(false);
|
var result = await itemImageProvider.RefreshImages(itemOfType, providers, refreshOptions, config, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
updateType = updateType | result.UpdateType;
|
updateType = updateType | result.UpdateType;
|
||||||
refreshResult.AddStatus(result.ErrorMessage);
|
|
||||||
if (result.Failures == 0)
|
if (result.Failures == 0)
|
||||||
{
|
{
|
||||||
refreshResult.SetDateLastImagesRefresh(DateTime.UtcNow);
|
refreshResult.SetDateLastImagesRefresh(DateTime.UtcNow);
|
||||||
@ -231,17 +221,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
private DateTime GetLastRefreshDate(IHasMetadata item)
|
private DateTime GetLastRefreshDate(IHasMetadata item)
|
||||||
{
|
{
|
||||||
if (item.DateLastRefreshed != default(DateTime))
|
if (EnableDateLastRefreshed(item))
|
||||||
{
|
|
||||||
return item.DateLastRefreshed;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ServerConfigurationManager.Configuration.EnableDateLastRefresh)
|
|
||||||
{
|
|
||||||
return item.DateLastRefreshed;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item is BoxSet || (item is IItemByName && !(item is MusicArtist)))
|
|
||||||
{
|
{
|
||||||
return item.DateLastRefreshed;
|
return item.DateLastRefreshed;
|
||||||
}
|
}
|
||||||
@ -249,6 +229,26 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
return item.DateLastSaved;
|
return item.DateLastSaved;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool EnableDateLastRefreshed(IHasMetadata item)
|
||||||
|
{
|
||||||
|
if (ServerConfigurationManager.Configuration.EnableDateLastRefresh)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.DateLastRefreshed != default(DateTime))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item is BoxSet || (item is IItemByName && !(item is MusicArtist)))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
protected async Task SaveItem(MetadataResult<TItemType> result, ItemUpdateType reason, CancellationToken cancellationToken)
|
protected async Task SaveItem(MetadataResult<TItemType> result, ItemUpdateType reason, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
if (result.Item.SupportsPeople && result.People != null)
|
if (result.Item.SupportsPeople && result.People != null)
|
||||||
@ -668,7 +668,14 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return changeMonitor.HasChanged(item, status, directoryService);
|
var hasChanged = changeMonitor.HasChanged(item, status, directoryService);
|
||||||
|
|
||||||
|
//if (hasChanged)
|
||||||
|
//{
|
||||||
|
// Logger.Debug("{0} reports change to {1}", changeMonitor.GetType().Name, item.Path ?? item.Name);
|
||||||
|
//}
|
||||||
|
|
||||||
|
return hasChanged;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@ -681,7 +688,15 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return changeMonitor.HasChanged(item, directoryService, date);
|
var hasChanged = changeMonitor.HasChanged(item, directoryService, date);
|
||||||
|
|
||||||
|
//if (hasChanged)
|
||||||
|
//{
|
||||||
|
// Logger.Debug("{0} reports change to {1} since {2}", changeMonitor.GetType().Name,
|
||||||
|
// item.Path ?? item.Name, date);
|
||||||
|
//}
|
||||||
|
|
||||||
|
return hasChanged;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -1765,14 +1765,6 @@ namespace MediaBrowser.Server.Implementations.Dto
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fields.Contains(ItemFields.OriginalPrimaryImageAspectRatio))
|
|
||||||
{
|
|
||||||
if (size.Width > 0 && size.Height > 0)
|
|
||||||
{
|
|
||||||
dto.OriginalPrimaryImageAspectRatio = size.Width / size.Height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var supportedEnhancers = _imageProcessor.GetSupportedEnhancers(item, ImageType.Primary).ToList();
|
var supportedEnhancers = _imageProcessor.GetSupportedEnhancers(item, ImageType.Primary).ToList();
|
||||||
|
|
||||||
foreach (var enhancer in supportedEnhancers)
|
foreach (var enhancer in supportedEnhancers)
|
||||||
|
@ -47,7 +47,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||||||
|
|
||||||
string[] queries = {
|
string[] queries = {
|
||||||
|
|
||||||
"create table if not exists MetadataStatus (ItemId GUID PRIMARY KEY, ItemName TEXT, ItemType TEXT, SeriesName TEXT, DateLastMetadataRefresh datetime, DateLastImagesRefresh datetime, LastErrorMessage TEXT, ItemDateModified DateTimeNull)",
|
"create table if not exists MetadataStatus (ItemId GUID PRIMARY KEY, DateLastMetadataRefresh datetime, DateLastImagesRefresh datetime, ItemDateModified DateTimeNull)",
|
||||||
"create index if not exists idx_MetadataStatus on MetadataStatus(ItemId)",
|
"create index if not exists idx_MetadataStatus on MetadataStatus(ItemId)",
|
||||||
|
|
||||||
//pragmas
|
//pragmas
|
||||||
@ -66,12 +66,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||||||
private static readonly string[] StatusColumns =
|
private static readonly string[] StatusColumns =
|
||||||
{
|
{
|
||||||
"ItemId",
|
"ItemId",
|
||||||
"ItemName",
|
|
||||||
"ItemType",
|
|
||||||
"SeriesName",
|
|
||||||
"DateLastMetadataRefresh",
|
"DateLastMetadataRefresh",
|
||||||
"DateLastImagesRefresh",
|
"DateLastImagesRefresh",
|
||||||
"LastErrorMessage",
|
|
||||||
"ItemDateModified"
|
"ItemDateModified"
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -160,37 +156,17 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||||||
|
|
||||||
if (!reader.IsDBNull(1))
|
if (!reader.IsDBNull(1))
|
||||||
{
|
{
|
||||||
result.ItemName = reader.GetString(1);
|
result.DateLastMetadataRefresh = reader.GetDateTime(1).ToUniversalTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!reader.IsDBNull(2))
|
if (!reader.IsDBNull(2))
|
||||||
{
|
{
|
||||||
result.ItemName = reader.GetString(2);
|
result.DateLastImagesRefresh = reader.GetDateTime(2).ToUniversalTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!reader.IsDBNull(3))
|
if (!reader.IsDBNull(3))
|
||||||
{
|
{
|
||||||
result.SeriesName = reader.GetString(3);
|
result.ItemDateModified = reader.GetDateTime(3).ToUniversalTime();
|
||||||
}
|
|
||||||
|
|
||||||
if (!reader.IsDBNull(4))
|
|
||||||
{
|
|
||||||
result.DateLastMetadataRefresh = reader.GetDateTime(4).ToUniversalTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!reader.IsDBNull(5))
|
|
||||||
{
|
|
||||||
result.DateLastImagesRefresh = reader.GetDateTime(5).ToUniversalTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!reader.IsDBNull(6))
|
|
||||||
{
|
|
||||||
result.LastErrorMessage = reader.GetString(6);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!reader.IsDBNull(7))
|
|
||||||
{
|
|
||||||
result.ItemDateModified = reader.GetDateTime(7).ToUniversalTime();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -214,13 +190,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||||||
transaction = _connection.BeginTransaction();
|
transaction = _connection.BeginTransaction();
|
||||||
|
|
||||||
_saveStatusCommand.GetParameter(0).Value = status.ItemId;
|
_saveStatusCommand.GetParameter(0).Value = status.ItemId;
|
||||||
_saveStatusCommand.GetParameter(1).Value = status.ItemName;
|
_saveStatusCommand.GetParameter(1).Value = status.DateLastMetadataRefresh;
|
||||||
_saveStatusCommand.GetParameter(2).Value = status.ItemType;
|
_saveStatusCommand.GetParameter(2).Value = status.DateLastImagesRefresh;
|
||||||
_saveStatusCommand.GetParameter(3).Value = status.SeriesName;
|
_saveStatusCommand.GetParameter(3).Value = status.ItemDateModified;
|
||||||
_saveStatusCommand.GetParameter(4).Value = status.DateLastMetadataRefresh;
|
|
||||||
_saveStatusCommand.GetParameter(5).Value = status.DateLastImagesRefresh;
|
|
||||||
_saveStatusCommand.GetParameter(6).Value = status.LastErrorMessage;
|
|
||||||
_saveStatusCommand.GetParameter(7).Value = status.ItemDateModified;
|
|
||||||
|
|
||||||
_saveStatusCommand.Transaction = transaction;
|
_saveStatusCommand.Transaction = transaction;
|
||||||
|
|
||||||
|
@ -144,15 +144,18 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||||||
{
|
{
|
||||||
using (var cmd = _connection.CreateCommand())
|
using (var cmd = _connection.CreateCommand())
|
||||||
{
|
{
|
||||||
cmd.CommandText = "select data from users";
|
cmd.CommandText = "select guid,data from users";
|
||||||
|
|
||||||
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
|
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
|
||||||
{
|
{
|
||||||
while (reader.Read())
|
while (reader.Read())
|
||||||
{
|
{
|
||||||
using (var stream = reader.GetMemoryStream(0))
|
var id = reader.GetGuid(0);
|
||||||
|
|
||||||
|
using (var stream = reader.GetMemoryStream(1))
|
||||||
{
|
{
|
||||||
var user = _jsonSerializer.DeserializeFromStream<User>(stream);
|
var user = _jsonSerializer.DeserializeFromStream<User>(stream);
|
||||||
|
user.Id = id;
|
||||||
yield return user;
|
yield return user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -285,5 +285,25 @@ namespace MediaBrowser.Server.Implementations.Photos
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected async Task<string> CreateSingleImage(List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType)
|
||||||
|
{
|
||||||
|
var image = itemsWithImages
|
||||||
|
.Where(i => i.HasImage(imageType) && i.GetImageInfo(imageType, 0).IsLocalFile && Path.HasExtension(i.GetImagePath(imageType)))
|
||||||
|
.Select(i => i.GetImagePath(imageType))
|
||||||
|
.FirstOrDefault();
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(image))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var ext = Path.GetExtension(image);
|
||||||
|
|
||||||
|
var outputPath = Path.ChangeExtension(outputPathWithoutExtension, ext);
|
||||||
|
File.Copy(image, outputPath);
|
||||||
|
|
||||||
|
return outputPath;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,24 +26,9 @@ namespace MediaBrowser.Server.Implementations.Photos
|
|||||||
return Task.FromResult(items);
|
return Task.FromResult(items);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
|
protected override Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
|
||||||
{
|
{
|
||||||
var image = itemsWithImages
|
return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary);
|
||||||
.Where(i => i.HasImage(ImageType.Primary) && i.GetImageInfo(ImageType.Primary, 0).IsLocalFile && Path.HasExtension(i.GetImagePath(ImageType.Primary)))
|
|
||||||
.Select(i => i.GetImagePath(ImageType.Primary))
|
|
||||||
.FirstOrDefault();
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(image))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var ext = Path.GetExtension(image);
|
|
||||||
|
|
||||||
var outputPath = Path.ChangeExtension(outputPathWithoutExtension, ext);
|
|
||||||
File.Copy(image, outputPath);
|
|
||||||
|
|
||||||
return outputPath;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -640,7 +640,6 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
dtoOptions.Fields.Remove(ItemFields.MediaStreams);
|
dtoOptions.Fields.Remove(ItemFields.MediaStreams);
|
||||||
dtoOptions.Fields.Remove(ItemFields.IndexOptions);
|
dtoOptions.Fields.Remove(ItemFields.IndexOptions);
|
||||||
dtoOptions.Fields.Remove(ItemFields.MediaSourceCount);
|
dtoOptions.Fields.Remove(ItemFields.MediaSourceCount);
|
||||||
dtoOptions.Fields.Remove(ItemFields.OriginalPrimaryImageAspectRatio);
|
|
||||||
dtoOptions.Fields.Remove(ItemFields.Path);
|
dtoOptions.Fields.Remove(ItemFields.Path);
|
||||||
dtoOptions.Fields.Remove(ItemFields.SeriesGenres);
|
dtoOptions.Fields.Remove(ItemFields.SeriesGenres);
|
||||||
dtoOptions.Fields.Remove(ItemFields.Settings);
|
dtoOptions.Fields.Remove(ItemFields.Settings);
|
||||||
|
@ -17,12 +17,9 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace MediaBrowser.Server.Implementations.Sync
|
namespace MediaBrowser.Server.Implementations.Sync
|
||||||
{
|
{
|
||||||
public class SyncRepository : ISyncRepository, IDisposable
|
public class SyncRepository : BaseSqliteRepository, ISyncRepository
|
||||||
{
|
{
|
||||||
private IDbConnection _connection;
|
private IDbConnection _connection;
|
||||||
private readonly ILogger _logger;
|
|
||||||
private readonly SemaphoreSlim _writeLock = new SemaphoreSlim(1, 1);
|
|
||||||
private readonly IServerApplicationPaths _appPaths;
|
|
||||||
private readonly CultureInfo _usCulture = new CultureInfo("en-US");
|
private readonly CultureInfo _usCulture = new CultureInfo("en-US");
|
||||||
|
|
||||||
private IDbCommand _insertJobCommand;
|
private IDbCommand _insertJobCommand;
|
||||||
@ -34,19 +31,20 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
private IDbCommand _updateJobItemCommand;
|
private IDbCommand _updateJobItemCommand;
|
||||||
|
|
||||||
private readonly IJsonSerializer _json;
|
private readonly IJsonSerializer _json;
|
||||||
|
private readonly IServerApplicationPaths _appPaths;
|
||||||
|
|
||||||
public SyncRepository(ILogger logger, IServerApplicationPaths appPaths, IJsonSerializer json)
|
public SyncRepository(ILogManager logManager, IJsonSerializer json, IServerApplicationPaths appPaths)
|
||||||
|
: base(logManager)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
|
||||||
_appPaths = appPaths;
|
|
||||||
_json = json;
|
_json = json;
|
||||||
|
_appPaths = appPaths;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Initialize()
|
public async Task Initialize()
|
||||||
{
|
{
|
||||||
var dbFile = Path.Combine(_appPaths.DataPath, "sync14.db");
|
var dbFile = Path.Combine(_appPaths.DataPath, "sync14.db");
|
||||||
|
|
||||||
_connection = await SqliteExtensions.ConnectToDb(dbFile, _logger).ConfigureAwait(false);
|
_connection = await SqliteExtensions.ConnectToDb(dbFile, Logger).ConfigureAwait(false);
|
||||||
|
|
||||||
string[] queries = {
|
string[] queries = {
|
||||||
|
|
||||||
@ -62,10 +60,10 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
"pragma shrink_memory"
|
"pragma shrink_memory"
|
||||||
};
|
};
|
||||||
|
|
||||||
_connection.RunQueries(queries, _logger);
|
_connection.RunQueries(queries, Logger);
|
||||||
|
|
||||||
_connection.AddColumn(_logger, "SyncJobs", "Profile", "TEXT");
|
_connection.AddColumn(Logger, "SyncJobs", "Profile", "TEXT");
|
||||||
_connection.AddColumn(_logger, "SyncJobs", "Bitrate", "INT");
|
_connection.AddColumn(Logger, "SyncJobs", "Bitrate", "INT");
|
||||||
|
|
||||||
PrepareStatements();
|
PrepareStatements();
|
||||||
}
|
}
|
||||||
@ -298,7 +296,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
|
|
||||||
CheckDisposed();
|
CheckDisposed();
|
||||||
|
|
||||||
await _writeLock.WaitAsync().ConfigureAwait(false);
|
await WriteLock.WaitAsync().ConfigureAwait(false);
|
||||||
|
|
||||||
IDbTransaction transaction = null;
|
IDbTransaction transaction = null;
|
||||||
|
|
||||||
@ -344,7 +342,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
_logger.ErrorException("Failed to save record:", e);
|
Logger.ErrorException("Failed to save record:", e);
|
||||||
|
|
||||||
if (transaction != null)
|
if (transaction != null)
|
||||||
{
|
{
|
||||||
@ -360,7 +358,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
transaction.Dispose();
|
transaction.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
_writeLock.Release();
|
WriteLock.Release();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,7 +371,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
|
|
||||||
CheckDisposed();
|
CheckDisposed();
|
||||||
|
|
||||||
await _writeLock.WaitAsync().ConfigureAwait(false);
|
await WriteLock.WaitAsync().ConfigureAwait(false);
|
||||||
|
|
||||||
IDbTransaction transaction = null;
|
IDbTransaction transaction = null;
|
||||||
|
|
||||||
@ -405,7 +403,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
_logger.ErrorException("Failed to save record:", e);
|
Logger.ErrorException("Failed to save record:", e);
|
||||||
|
|
||||||
if (transaction != null)
|
if (transaction != null)
|
||||||
{
|
{
|
||||||
@ -421,7 +419,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
transaction.Dispose();
|
transaction.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
_writeLock.Release();
|
WriteLock.Release();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -656,7 +654,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
|
|
||||||
CheckDisposed();
|
CheckDisposed();
|
||||||
|
|
||||||
await _writeLock.WaitAsync().ConfigureAwait(false);
|
await WriteLock.WaitAsync().ConfigureAwait(false);
|
||||||
|
|
||||||
IDbTransaction transaction = null;
|
IDbTransaction transaction = null;
|
||||||
|
|
||||||
@ -699,7 +697,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
_logger.ErrorException("Failed to save record:", e);
|
Logger.ErrorException("Failed to save record:", e);
|
||||||
|
|
||||||
if (transaction != null)
|
if (transaction != null)
|
||||||
{
|
{
|
||||||
@ -715,7 +713,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
transaction.Dispose();
|
transaction.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
_writeLock.Release();
|
WriteLock.Release();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -802,15 +800,6 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
|
||||||
/// </summary>
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
Dispose(true);
|
|
||||||
GC.SuppressFinalize(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool _disposed;
|
private bool _disposed;
|
||||||
private void CheckDisposed()
|
private void CheckDisposed()
|
||||||
{
|
{
|
||||||
@ -820,21 +809,16 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly object _disposeLock = new object();
|
protected override void Dispose(bool dispose)
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Releases unmanaged and - optionally - managed resources.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
|
|
||||||
protected virtual void Dispose(bool dispose)
|
|
||||||
{
|
{
|
||||||
if (dispose)
|
if (dispose)
|
||||||
{
|
{
|
||||||
_disposed = true;
|
_disposed = true;
|
||||||
|
}
|
||||||
|
base.Dispose(dispose);
|
||||||
|
}
|
||||||
|
|
||||||
try
|
protected override void CloseConnection()
|
||||||
{
|
|
||||||
lock (_disposeLock)
|
|
||||||
{
|
{
|
||||||
if (_connection != null)
|
if (_connection != null)
|
||||||
{
|
{
|
||||||
@ -848,11 +832,4 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.ErrorException("Error disposing database", ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -54,9 +54,7 @@ namespace MediaBrowser.Server.Implementations.UserViews
|
|||||||
return new List<BaseItem>();
|
return new List<BaseItem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.Equals(view.ViewType, SpecialFolder.GameGenre, StringComparison.OrdinalIgnoreCase) ||
|
if (string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) ||
|
||||||
string.Equals(view.ViewType, SpecialFolder.MusicGenre, StringComparison.OrdinalIgnoreCase) ||
|
|
||||||
string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) ||
|
|
||||||
string.Equals(view.ViewType, SpecialFolder.TvGenre, StringComparison.OrdinalIgnoreCase))
|
string.Equals(view.ViewType, SpecialFolder.TvGenre, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
var userItemsResult = await view.GetItems(new InternalItemsQuery
|
var userItemsResult = await view.GetItems(new InternalItemsQuery
|
||||||
|
@ -680,7 +680,7 @@ namespace MediaBrowser.Server.Startup.Common
|
|||||||
|
|
||||||
private async Task<ISyncRepository> GetSyncRepository()
|
private async Task<ISyncRepository> GetSyncRepository()
|
||||||
{
|
{
|
||||||
var repo = new SyncRepository(LogManager.GetLogger("SyncRepository"), ServerConfigurationManager.ApplicationPaths, JsonSerializer);
|
var repo = new SyncRepository(LogManager, JsonSerializer, ServerConfigurationManager.ApplicationPaths);
|
||||||
|
|
||||||
await repo.Initialize().ConfigureAwait(false);
|
await repo.Initialize().ConfigureAwait(false);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user