aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-07-27 15:32:07 -0400
committerGitHub <noreply@github.com>2016-07-27 15:32:07 -0400
commit06b0cfb86fec5f1de83080f4fece2513dfa9cf6c (patch)
treeb94e74277d1b64d804acb12c6e4c482452381353 /MediaBrowser.Providers
parentb785e919f375d1b876d2e82e0e377db9b6cfbc71 (diff)
parent897e0566294e854395f61040a8b922c1d0166930 (diff)
Merge pull request #1991 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs18
-rw-r--r--MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs5
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs8
-rw-r--r--MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs8
-rw-r--r--MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs5
-rw-r--r--MediaBrowser.Providers/Photos/PhotoProvider.cs5
-rw-r--r--MediaBrowser.Providers/TV/EpisodeMetadataService.cs33
-rw-r--r--MediaBrowser.Providers/TV/SeasonMetadataService.cs15
8 files changed, 75 insertions, 22 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/Movies/GenericMovieDbInfo.cs b/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs
index a6b6de7e51..1bf4ed6c00 100644
--- a/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs
+++ b/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs
@@ -199,7 +199,6 @@ namespace MediaBrowser.Providers.Movies
var ourRelease = releases.FirstOrDefault(c => c.iso_3166_1.Equals(preferredCountryCode, StringComparison.OrdinalIgnoreCase));
var usRelease = releases.FirstOrDefault(c => c.iso_3166_1.Equals("US", StringComparison.OrdinalIgnoreCase));
- var minimunRelease = releases.OrderBy(c => c.release_date).FirstOrDefault();
if (ourRelease != null)
{
@@ -210,10 +209,6 @@ namespace MediaBrowser.Providers.Movies
{
movie.OfficialRating = usRelease.certification;
}
- else if (minimunRelease != null)
- {
- movie.OfficialRating = minimunRelease.iso_3166_1 + "-" + minimunRelease.certification;
- }
}
if (!string.IsNullOrWhiteSpace(movieData.release_date))
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;
diff --git a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs
index a15de48660..b51b113805 100644
--- a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs
+++ b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Configuration;
+using System;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
@@ -6,12 +7,42 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Manager;
using System.Collections.Generic;
+using System.Threading.Tasks;
using CommonIO;
namespace MediaBrowser.Providers.TV
{
public class EpisodeMetadataService : MetadataService<Episode, EpisodeInfo>
{
+ protected override async Task<ItemUpdateType> BeforeSave(Episode item, bool isFullRefresh, ItemUpdateType currentUpdateType)
+ {
+ var updateType = await base.BeforeSave(item, isFullRefresh, currentUpdateType).ConfigureAwait(false);
+
+ if (updateType <= ItemUpdateType.None)
+ {
+ if (!string.Equals(item.SeriesName, item.FindSeriesName(), StringComparison.Ordinal))
+ {
+ updateType |= ItemUpdateType.MetadataImport;
+ }
+ }
+ if (updateType <= ItemUpdateType.None)
+ {
+ if (!string.Equals(item.SeriesSortName, item.FindSeriesSortName(), StringComparison.Ordinal))
+ {
+ updateType |= ItemUpdateType.MetadataImport;
+ }
+ }
+ if (updateType <= ItemUpdateType.None)
+ {
+ if (!string.Equals(item.SeasonName, item.FindSeasonName(), StringComparison.Ordinal))
+ {
+ updateType |= ItemUpdateType.MetadataImport;
+ }
+ }
+
+ return updateType;
+ }
+
protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs
index e4894915d6..f3e6f8e9c5 100644
--- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs
+++ b/MediaBrowser.Providers/TV/SeasonMetadataService.cs
@@ -35,6 +35,21 @@ namespace MediaBrowser.Providers.TV
updateType |= SaveIsVirtualItem(item, episodes);
}
+ if (updateType <= ItemUpdateType.None)
+ {
+ if (!string.Equals(item.SeriesName, item.FindSeriesName(), StringComparison.Ordinal))
+ {
+ updateType |= ItemUpdateType.MetadataImport;
+ }
+ }
+ if (updateType <= ItemUpdateType.None)
+ {
+ if (!string.Equals(item.SeriesSortName, item.FindSeriesSortName(), StringComparison.Ordinal))
+ {
+ updateType |= ItemUpdateType.MetadataImport;
+ }
+ }
+
return updateType;
}