From 6f49782b7b77bd5f5f0fae1ec74f6454729303df Mon Sep 17 00:00:00 2001 From: evan314159 <110177090+evan314159@users.noreply.github.com> Date: Mon, 28 Jul 2025 10:08:06 +0800 Subject: fix file modification date comparisons (#14503) --- MediaBrowser.Controller/Entities/BaseItem.cs | 4 +--- MediaBrowser.Controller/Entities/BaseItemExtensions.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 4efa3f410..bb0b26b8e 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1430,9 +1430,7 @@ namespace MediaBrowser.Controller.Entities var info = FileSystem.GetFileSystemInfo(Path); - return info.Exists - ? info.LastWriteTimeUtc != DateModified - : false; + return info.Exists && this.HasChanged(info.LastWriteTimeUtc); } public virtual List GetUserDataKeys() diff --git a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs index dcd22a3b4..668e2c1e2 100644 --- a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs +++ b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs @@ -114,5 +114,19 @@ namespace MediaBrowser.Controller.Entities source.DeepCopy(dest); return dest; } + + /// + /// Determines if the item has changed. + /// + /// The source object. + /// The timestamp to detect changes as of. + /// Source type. + /// Whether the item has changed. + public static bool HasChanged(this T source, DateTime asOf) + where T : BaseItem + { + ArgumentNullException.ThrowIfNull(source); + return source.DateModified.Subtract(asOf).Duration().TotalSeconds > 1; + } } } -- cgit v1.2.3