diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-07-24 12:48:08 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-07-24 12:48:08 -0400 |
| commit | c2e2c1db3bf63c3c408637375ee64a2dc914f02e (patch) | |
| tree | 150e77f206fa6553055c0f9ea9152f3e65fa5f68 /MediaBrowser.Providers | |
| parent | 4a39fba7d3357128532fc0bd6eee27fd2374c9df (diff) | |
| parent | eb321dad3bf6f67c291d9f4857a6bfabc6586891 (diff) | |
Merge pull request #1980 from MediaBrowser/dev
fix DateModified not refreshing
Diffstat (limited to 'MediaBrowser.Providers')
5 files changed, 28 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 678d495cbc..9776c4e2f5 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -143,6 +143,22 @@ namespace MediaBrowser.Providers.Manager var beforeSaveResult = await BeforeSave(itemOfType, isFirstRefresh || refreshOptions.ReplaceAllMetadata || refreshOptions.MetadataRefreshMode == MetadataRefreshMode.FullRefresh || requiresRefresh, updateType).ConfigureAwait(false); updateType = updateType | beforeSaveResult; + if (item.LocationType == LocationType.FileSystem) + { + var file = refreshOptions.DirectoryService.GetFile(item.Path); + if (file != null) + { + var fileLastWriteTime = file.LastWriteTimeUtc; + if (item.EnableForceSaveOnDateModifiedChange && fileLastWriteTime != item.DateModified) + { + Logger.Debug("Date modified for {0}. Old date {1} new date {2} Id {3}", item.Path, item.DateModified, fileLastWriteTime, item.Id); + requiresRefresh = true; + } + + item.DateModified = fileLastWriteTime; + } + } + // Save if changes were made, or it's never been saved before if (refreshOptions.ForceSave || updateType > ItemUpdateType.None || isFirstRefresh || refreshOptions.ReplaceAllMetadata || requiresRefresh) { @@ -155,12 +171,10 @@ namespace MediaBrowser.Providers.Manager if (hasRefreshedMetadata && hasRefreshedImages) { item.DateLastRefreshed = DateTime.UtcNow; - item.DateModifiedDuringLastRefresh = item.DateModified; } else { item.DateLastRefreshed = default(DateTime); - item.DateModifiedDuringLastRefresh = null; } // Save to database diff --git a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs index bec9280b3a..6c79189887 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs @@ -167,9 +167,10 @@ namespace MediaBrowser.Providers.MediaInfo public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) { - if (item.DateModifiedDuringLastRefresh.HasValue) + var file = directoryService.GetFile(item.Path); + if (file != null && file.LastWriteTimeUtc != item.DateModified) { - return item.DateModifiedDuringLastRefresh.Value != item.DateModified; + return true; } return false; diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs index b89b0b9256..11280cff21 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs @@ -171,12 +171,10 @@ namespace MediaBrowser.Providers.MediaInfo public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) { - if (item.DateModifiedDuringLastRefresh.HasValue) + var file = directoryService.GetFile(item.Path); + if (file != null && file.LastWriteTimeUtc != item.DateModified) { - if (item.DateModifiedDuringLastRefresh.Value != item.DateModified) - { - return true; - } + return true; } if (item.SupportsLocalMetadata) diff --git a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs index 9a1f072cd2..5fc3630627 100644 --- a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs @@ -195,12 +195,10 @@ namespace MediaBrowser.Providers.MediaInfo public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) { - if (item.DateModifiedDuringLastRefresh.HasValue) + var file = directoryService.GetFile(item.Path); + if (file != null && file.LastWriteTimeUtc != item.DateModified) { - if (item.DateModifiedDuringLastRefresh.Value != item.DateModified) - { - return true; - } + return true; } return false; diff --git a/MediaBrowser.Providers/Photos/PhotoProvider.cs b/MediaBrowser.Providers/Photos/PhotoProvider.cs index 882363b2f8..619b726368 100644 --- a/MediaBrowser.Providers/Photos/PhotoProvider.cs +++ b/MediaBrowser.Providers/Photos/PhotoProvider.cs @@ -154,9 +154,10 @@ namespace MediaBrowser.Providers.Photos public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) { - if (item.DateModifiedDuringLastRefresh.HasValue) + var file = directoryService.GetFile(item.Path); + if (file != null && file.LastWriteTimeUtc != item.DateModified) { - return item.DateModifiedDuringLastRefresh.Value != item.DateModified; + return true; } return false; |
