diff options
Diffstat (limited to 'MediaBrowser.Providers/Games/GameProviderFromXml.cs')
| -rw-r--r-- | MediaBrowser.Providers/Games/GameProviderFromXml.cs | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/Games/GameProviderFromXml.cs b/MediaBrowser.Providers/Games/GameProviderFromXml.cs index 4c6b9fc66..5e498c578 100644 --- a/MediaBrowser.Providers/Games/GameProviderFromXml.cs +++ b/MediaBrowser.Providers/Games/GameProviderFromXml.cs @@ -7,6 +7,7 @@ using System; using System.IO; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Providers.Savers; namespace MediaBrowser.Providers.Games { @@ -33,10 +34,18 @@ namespace MediaBrowser.Providers.Games return item is Game; } - protected override DateTime CompareDate(BaseItem item) + protected override bool NeedsRefreshBasedOnCompareDate(BaseItem item, BaseProviderInfo providerInfo) { - var xml = item.ResolveArgs.GetMetaFileByPath(Path.Combine(item.MetaLocation, "game.xml")); - return xml != null ? FileSystem.GetLastWriteTimeUtc(xml, Logger) : DateTime.MinValue; + var savePath = GameXmlSaver.GetGameSavePath(item); + + var xml = item.ResolveArgs.GetMetaFileByPath(savePath) ?? new FileInfo(savePath); + + if (!xml.Exists) + { + return false; + } + + return FileSystem.GetLastWriteTimeUtc(xml, Logger) > providerInfo.LastRefreshed; } /// <summary> @@ -61,21 +70,17 @@ namespace MediaBrowser.Providers.Games { cancellationToken.ThrowIfCancellationRequested(); - var metaFile = Path.Combine(game.MetaLocation, "game.xml"); + var metaFile = GameXmlSaver.GetGameSavePath(game); - if (File.Exists(metaFile)) - { - await XmlParsingResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); - - try - { - new BaseItemXmlParser<Game>(Logger).Fetch(game, metaFile, cancellationToken); - } - finally - { - XmlParsingResourcePool.Release(); - } + await XmlParsingResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + new BaseItemXmlParser<Game>(Logger).Fetch(game, metaFile, cancellationToken); + } + finally + { + XmlParsingResourcePool.Release(); } SetLastRefreshed(game, DateTime.UtcNow); |
