aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortheguymadmax <171496228+theguymadmax@users.noreply.github.com>2025-11-17 14:09:06 -0500
committerBond_009 <bond.009@outlook.com>2025-11-17 14:09:06 -0500
commit4e68a5a078a7f1b5daf382354b83ae7a2657d1cb (patch)
tree7a4d9a985772ed4a5b16e24a405697d3200a2ef7
parent99c68ddd50353b62f86067a8336c001f0592131d (diff)
Backport pull request #15472 from jellyfin/release-10.11.z
Fix series DateLastMediaAdded not updating when new episodes are added Original-merge: abfbaca33686ab5214182992ab644a6e24d4b180 Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs74
1 files changed, 42 insertions, 32 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 4c8384599..21767af84 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -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();
@@ -362,16 +358,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;
+ }
}
}
@@ -392,36 +396,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;