mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 17:14:42 +01:00
boxset image fixes
This commit is contained in:
@@ -22,6 +22,17 @@ namespace MediaBrowser.Server.Implementations.Collections
|
||||
{
|
||||
}
|
||||
|
||||
protected override bool Supports(IHasImages item)
|
||||
{
|
||||
// Right now this is the only way to prevent this image from getting created ahead of internet image providers
|
||||
if (!item.IsLocked)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.Supports(item);
|
||||
}
|
||||
|
||||
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
|
||||
{
|
||||
var playlist = (BoxSet)item;
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace MediaBrowser.Server.Implementations.Collections
|
||||
|
||||
try
|
||||
{
|
||||
_fileSystem.CreateDirectory(path);
|
||||
_fileSystem.CreateDirectory(path);
|
||||
|
||||
var collection = new BoxSet
|
||||
{
|
||||
@@ -93,7 +93,12 @@ namespace MediaBrowser.Server.Implementations.Collections
|
||||
|
||||
if (options.ItemIdList.Count > 0)
|
||||
{
|
||||
await AddToCollection(collection.Id, options.ItemIdList, false);
|
||||
await AddToCollection(collection.Id, options.ItemIdList, false, new MetadataRefreshOptions(_fileSystem)
|
||||
{
|
||||
// The initial adding of items is going to create a local metadata file
|
||||
// This will cause internet metadata to be skipped as a result
|
||||
MetadataRefreshMode = MetadataRefreshMode.FullRefresh
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -145,10 +150,10 @@ namespace MediaBrowser.Server.Implementations.Collections
|
||||
|
||||
public Task AddToCollection(Guid collectionId, IEnumerable<Guid> ids)
|
||||
{
|
||||
return AddToCollection(collectionId, ids, true);
|
||||
return AddToCollection(collectionId, ids, true, new MetadataRefreshOptions(_fileSystem));
|
||||
}
|
||||
|
||||
private async Task AddToCollection(Guid collectionId, IEnumerable<Guid> ids, bool fireEvent)
|
||||
private async Task AddToCollection(Guid collectionId, IEnumerable<Guid> ids, bool fireEvent, MetadataRefreshOptions refreshOptions)
|
||||
{
|
||||
var collection = _libraryManager.GetItemById(collectionId) as BoxSet;
|
||||
|
||||
@@ -186,7 +191,7 @@ namespace MediaBrowser.Server.Implementations.Collections
|
||||
|
||||
await collection.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
|
||||
|
||||
_providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(_fileSystem));
|
||||
_providerManager.QueueRefresh(collection.Id, refreshOptions);
|
||||
|
||||
if (fireEvent)
|
||||
{
|
||||
|
||||
@@ -1699,7 +1699,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
|
||||
if (!refresh)
|
||||
{
|
||||
refresh = (DateTime.UtcNow - item.DateLastSaved) >= _viewRefreshInterval;
|
||||
refresh = (DateTime.UtcNow - item.DateLastRefreshed) >= _viewRefreshInterval;
|
||||
}
|
||||
|
||||
if (refresh)
|
||||
@@ -1796,7 +1796,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
await item.UpdateToRepository(ItemUpdateType.MetadataEdit, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
var refresh = isNew || (DateTime.UtcNow - item.DateLastSaved) >= _viewRefreshInterval;
|
||||
var refresh = isNew || (DateTime.UtcNow - item.DateLastRefreshed) >= _viewRefreshInterval;
|
||||
|
||||
if (refresh)
|
||||
{
|
||||
@@ -1866,7 +1866,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
await item.UpdateToRepository(ItemUpdateType.MetadataEdit, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
var refresh = isNew || (DateTime.UtcNow - item.DateLastSaved) >= _viewRefreshInterval;
|
||||
var refresh = isNew || (DateTime.UtcNow - item.DateLastRefreshed) >= _viewRefreshInterval;
|
||||
|
||||
if (refresh)
|
||||
{
|
||||
|
||||
@@ -706,7 +706,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
isNew = true;
|
||||
}
|
||||
|
||||
|
||||
item.ChannelId = _tvDtoService.GetInternalChannelId(serviceName, info.ChannelId).ToString("N");
|
||||
item.CommunityRating = info.CommunityRating;
|
||||
item.OfficialRating = info.OfficialRating;
|
||||
|
||||
@@ -197,6 +197,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
_connection.AddColumn(_logger, "TypedBaseItems", "IsHD", "BIT");
|
||||
_connection.AddColumn(_logger, "TypedBaseItems", "ExternalEtag", "Text");
|
||||
_connection.AddColumn(_logger, "TypedBaseItems", "ExternalImagePath", "Text");
|
||||
_connection.AddColumn(_logger, "TypedBaseItems", "DateLastRefreshed", "DATETIME");
|
||||
|
||||
PrepareStatements();
|
||||
|
||||
@@ -291,7 +292,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
"PreferredMetadataCountryCode",
|
||||
"IsHD",
|
||||
"ExternalEtag",
|
||||
"ExternalImagePath"
|
||||
"ExternalImagePath",
|
||||
"DateLastRefreshed"
|
||||
};
|
||||
|
||||
private readonly string[] _mediaStreamSaveColumns =
|
||||
@@ -378,7 +380,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
"PreferredMetadataCountryCode",
|
||||
"IsHD",
|
||||
"ExternalEtag",
|
||||
"ExternalImagePath"
|
||||
"ExternalImagePath",
|
||||
"DateLastRefreshed"
|
||||
};
|
||||
_saveItemCommand = _connection.CreateCommand();
|
||||
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
|
||||
@@ -599,6 +602,15 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
_saveItemCommand.GetParameter(index++).Value = item.ExternalEtag;
|
||||
_saveItemCommand.GetParameter(index++).Value = item.ExternalImagePath;
|
||||
|
||||
if (item.DateLastRefreshed == default(DateTime))
|
||||
{
|
||||
_saveItemCommand.GetParameter(index++).Value = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
_saveItemCommand.GetParameter(index++).Value = item.DateLastRefreshed;
|
||||
}
|
||||
|
||||
_saveItemCommand.Transaction = transaction;
|
||||
|
||||
_saveItemCommand.ExecuteNonQuery();
|
||||
@@ -820,6 +832,11 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
item.ExternalImagePath = reader.GetString(23);
|
||||
}
|
||||
|
||||
if (!reader.IsDBNull(24))
|
||||
{
|
||||
item.DateLastRefreshed = reader.GetDateTime(24).ToUniversalTime();
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace MediaBrowser.Server.Implementations.Photos
|
||||
ImageProcessor = imageProcessor;
|
||||
}
|
||||
|
||||
public virtual bool Supports(IHasImages item)
|
||||
protected virtual bool Supports(IHasImages item)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace MediaBrowser.Server.Implementations.UserViews
|
||||
return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary) || i.HasImage(ImageType.Thumb)).ToList(), 8);
|
||||
}
|
||||
|
||||
public override bool Supports(IHasImages item)
|
||||
protected override bool Supports(IHasImages item)
|
||||
{
|
||||
return item is CollectionFolder;
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ namespace MediaBrowser.Server.Implementations.UserViews
|
||||
return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary)).ToList());
|
||||
}
|
||||
|
||||
public override bool Supports(IHasImages item)
|
||||
protected override bool Supports(IHasImages item)
|
||||
{
|
||||
var view = item as UserView;
|
||||
if (view != null)
|
||||
|
||||
Reference in New Issue
Block a user