mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 09:34:44 +01:00
Only fire metadata savers when appropriate
This commit is contained in:
@@ -389,6 +389,11 @@ namespace MediaBrowser.Controller.Dto
|
||||
dto.SortName = item.SortName;
|
||||
}
|
||||
|
||||
if (fields.Contains(ItemFields.CustomRating))
|
||||
{
|
||||
dto.CustomRating = item.CustomRating;
|
||||
}
|
||||
|
||||
if (fields.Contains(ItemFields.Taglines))
|
||||
{
|
||||
dto.Taglines = item.Taglines;
|
||||
|
||||
@@ -834,12 +834,15 @@ namespace MediaBrowser.Controller.Entities
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
// Get the result from the item task
|
||||
var changed = await itemRefreshTask.ConfigureAwait(false);
|
||||
var updateReason = await itemRefreshTask.ConfigureAwait(false);
|
||||
|
||||
var changed = updateReason.HasValue;
|
||||
|
||||
if (changed || forceSave || themeSongsChanged || themeVideosChanged || localTrailersChanged)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
await LibraryManager.UpdateItem(this, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
await LibraryManager.UpdateItem(this, updateReason ?? ItemUpdateType.Unspecified, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
return changed;
|
||||
|
||||
@@ -315,7 +315,9 @@ namespace MediaBrowser.Controller.Entities
|
||||
ResolveArgs = null;
|
||||
}
|
||||
|
||||
var changed = await ProviderManager.ExecuteMetadataProviders(this, cancellationToken, forceRefresh, allowSlowProviders).ConfigureAwait(false);
|
||||
var updateReason = await ProviderManager.ExecuteMetadataProviders(this, cancellationToken, forceRefresh, allowSlowProviders).ConfigureAwait(false);
|
||||
|
||||
var changed = updateReason.HasValue;
|
||||
|
||||
if (changed || forceSave)
|
||||
{
|
||||
|
||||
@@ -152,13 +152,15 @@ namespace MediaBrowser.Controller.Library
|
||||
/// <param name="itemComparers">The item comparers.</param>
|
||||
/// <param name="prescanTasks">The prescan tasks.</param>
|
||||
/// <param name="postscanTasks">The postscan tasks.</param>
|
||||
/// <param name="savers">The savers.</param>
|
||||
void AddParts(IEnumerable<IResolverIgnoreRule> rules,
|
||||
IEnumerable<IVirtualFolderCreator> pluginFolders,
|
||||
IEnumerable<IItemResolver> resolvers,
|
||||
IEnumerable<IIntroProvider> introProviders,
|
||||
IEnumerable<IBaseItemComparer> itemComparers,
|
||||
IEnumerable<ILibraryPrescanTask> prescanTasks,
|
||||
IEnumerable<ILibraryPostScanTask> postscanTasks);
|
||||
IEnumerable<ILibraryPostScanTask> postscanTasks,
|
||||
IEnumerable<IMetadataSaver> savers);
|
||||
|
||||
/// <summary>
|
||||
/// Sorts the specified items.
|
||||
@@ -205,9 +207,10 @@ namespace MediaBrowser.Controller.Library
|
||||
/// Updates the item.
|
||||
/// </summary>
|
||||
/// <param name="item">The item.</param>
|
||||
/// <param name="updateReason">The update reason.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>Task.</returns>
|
||||
Task UpdateItem(BaseItem item, CancellationToken cancellationToken);
|
||||
Task UpdateItem(BaseItem item, ItemUpdateType updateReason, CancellationToken cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves the item.
|
||||
|
||||
13
MediaBrowser.Controller/Library/ItemUpdateType.cs
Normal file
13
MediaBrowser.Controller/Library/ItemUpdateType.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
|
||||
namespace MediaBrowser.Controller.Library
|
||||
{
|
||||
[Flags]
|
||||
public enum ItemUpdateType
|
||||
{
|
||||
Unspecified = 1,
|
||||
MetadataImport = 2,
|
||||
ImageUpdate = 4,
|
||||
MetadataEdit = 16
|
||||
}
|
||||
}
|
||||
@@ -81,6 +81,7 @@
|
||||
<Compile Include="Library\ILibraryPostScanTask.cs" />
|
||||
<Compile Include="Library\ILibraryPrescanTask.cs" />
|
||||
<Compile Include="Library\IMetadataSaver.cs" />
|
||||
<Compile Include="Library\ItemUpdateType.cs" />
|
||||
<Compile Include="Localization\ILocalizationManager.cs" />
|
||||
<Compile Include="Reflection\TypeMapper.cs" />
|
||||
<Compile Include="Session\ISessionManager.cs" />
|
||||
|
||||
@@ -122,6 +122,17 @@ namespace MediaBrowser.Controller.Providers
|
||||
item.DisplayMediaType = type;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "CriticRating":
|
||||
{
|
||||
var text = reader.ReadElementContentAsString();
|
||||
float value;
|
||||
if (float.TryParse(text, NumberStyles.Any, _usCulture, out value))
|
||||
{
|
||||
item.CriticRating = value;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "Budget":
|
||||
@@ -163,6 +174,18 @@ namespace MediaBrowser.Controller.Providers
|
||||
break;
|
||||
}
|
||||
|
||||
case "CriticRatingSummary":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val))
|
||||
{
|
||||
item.CriticRatingSummary = val;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case "TagLine":
|
||||
{
|
||||
var tagline = reader.ReadElementContentAsString();
|
||||
|
||||
@@ -75,6 +75,11 @@ namespace MediaBrowser.Controller.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public virtual ItemUpdateType ItemUpdateType
|
||||
{
|
||||
get { return RequiresInternet ? ItemUpdateType.MetadataEdit : ItemUpdateType.MetadataImport; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether [refresh on version change].
|
||||
/// </summary>
|
||||
|
||||
@@ -55,15 +55,13 @@ namespace MediaBrowser.Controller.Providers
|
||||
/// <param name="force">if set to <c>true</c> [force].</param>
|
||||
/// <param name="allowSlowProviders">if set to <c>true</c> [allow slow providers].</param>
|
||||
/// <returns>Task{System.Boolean}.</returns>
|
||||
Task<bool> ExecuteMetadataProviders(BaseItem item, CancellationToken cancellationToken, bool force = false, bool allowSlowProviders = true);
|
||||
Task<ItemUpdateType?> ExecuteMetadataProviders(BaseItem item, CancellationToken cancellationToken, bool force = false, bool allowSlowProviders = true);
|
||||
|
||||
/// <summary>
|
||||
/// Adds the metadata providers.
|
||||
/// </summary>
|
||||
/// <param name="providers">The providers.</param>
|
||||
/// <param name="savers">The savers.</param>
|
||||
void AddParts(IEnumerable<BaseMetadataProvider> providers,
|
||||
IEnumerable<IMetadataSaver> savers);
|
||||
void AddParts(IEnumerable<BaseMetadataProvider> providers);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the save path.
|
||||
|
||||
Reference in New Issue
Block a user