Fix series DateLastMediaAdded not updating when new episodes are added (#15472)

This commit is contained in:
theguymadmax
2025-11-16 15:35:43 -05:00
committed by GitHub
parent 6566188e45
commit abfbaca336

View File

@@ -317,12 +317,8 @@ namespace MediaBrowser.Providers.Manager
{
if (EnableUpdateMetadataFromChildren(item, isFullRefresh, updateType))
{
if (isFullRefresh || updateType > ItemUpdateType.None)
{
var children = GetChildrenForMetadataUpdates(item);
updateType = UpdateMetadataFromChildren(item, children, isFullRefresh, updateType);
}
var children = GetChildrenForMetadataUpdates(item);
updateType = UpdateMetadataFromChildren(item, children, isFullRefresh, updateType);
}
var presentationUniqueKey = item.CreatePresentationUniqueKey();
@@ -365,16 +361,24 @@ namespace MediaBrowser.Providers.Manager
protected virtual bool EnableUpdateMetadataFromChildren(TItemType item, bool isFullRefresh, ItemUpdateType currentUpdateType)
{
if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
if (item is Folder folder)
{
if (EnableUpdatingPremiereDateFromChildren || EnableUpdatingGenresFromChildren || EnableUpdatingStudiosFromChildren || EnableUpdatingOfficialRatingFromChildren)
if (!isFullRefresh && currentUpdateType == ItemUpdateType.None)
{
return true;
return folder.SupportsDateLastMediaAdded;
}
if (item is Folder folder)
if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
{
return folder.SupportsDateLastMediaAdded || folder.SupportsCumulativeRunTimeTicks;
if (EnableUpdatingPremiereDateFromChildren || EnableUpdatingGenresFromChildren || EnableUpdatingStudiosFromChildren || EnableUpdatingOfficialRatingFromChildren)
{
return true;
}
if (folder.SupportsDateLastMediaAdded || folder.SupportsCumulativeRunTimeTicks)
{
return true;
}
}
}
@@ -395,36 +399,42 @@ namespace MediaBrowser.Providers.Manager
{
var updateType = ItemUpdateType.None;
if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
if (item is Folder folder)
{
updateType |= UpdateCumulativeRunTimeTicks(item, children);
updateType |= UpdateDateLastMediaAdded(item, children);
// don't update user-changeable metadata for locked items
if (item.IsLocked)
if (folder.SupportsDateLastMediaAdded)
{
return updateType;
updateType |= UpdateDateLastMediaAdded(item, children);
}
if (EnableUpdatingPremiereDateFromChildren)
if ((isFullRefresh || currentUpdateType > ItemUpdateType.None) && folder.SupportsCumulativeRunTimeTicks)
{
updateType |= UpdatePremiereDate(item, children);
updateType |= UpdateCumulativeRunTimeTicks(item, children);
}
}
if (EnableUpdatingGenresFromChildren)
{
updateType |= UpdateGenres(item, children);
}
if (!(isFullRefresh || currentUpdateType > ItemUpdateType.None) || item.IsLocked)
{
return updateType;
}
if (EnableUpdatingStudiosFromChildren)
{
updateType |= UpdateStudios(item, children);
}
if (EnableUpdatingPremiereDateFromChildren)
{
updateType |= UpdatePremiereDate(item, children);
}
if (EnableUpdatingOfficialRatingFromChildren)
{
updateType |= UpdateOfficialRating(item, children);
}
if (EnableUpdatingGenresFromChildren)
{
updateType |= UpdateGenres(item, children);
}
if (EnableUpdatingStudiosFromChildren)
{
updateType |= UpdateStudios(item, children);
}
if (EnableUpdatingOfficialRatingFromChildren)
{
updateType |= UpdateOfficialRating(item, children);
}
return updateType;