protected override DateTime CompareDate(BaseItem item) { var id = item.GetProviderId(MetadataProviders.Tvdb); if (!string.IsNullOrEmpty(id)) { // Process images var path = GetSeriesDataPath(ConfigurationManager.ApplicationPaths, id); var files = new DirectoryInfo(path) .EnumerateFiles("*.xml", SearchOption.TopDirectoryOnly) .Select(i => i.LastWriteTimeUtc) .ToArray(); if (files.Length > 0) { return files.Max(); } } return base.CompareDate(item); }
protected override bool NeedsRefreshBasedOnCompareDate(BaseItem item, BaseProviderInfo providerInfo) { var seriesId = item.GetProviderId(MetadataProviders.Tvdb); if (!string.IsNullOrEmpty(seriesId)) { // Process images var path = GetSeriesDataPath(ConfigurationManager.ApplicationPaths, seriesId); try { var files = new DirectoryInfo(path) .EnumerateFiles("*.xml", SearchOption.TopDirectoryOnly) .Select(i => _fileSystem.GetLastWriteTimeUtc(i)) .ToList(); if (files.Count > 0) { return files.Max() > providerInfo.LastRefreshed; } } catch (DirectoryNotFoundException) { // Don't blow up return true; } } return base.NeedsRefreshBasedOnCompareDate(item, providerInfo); }
protected override DateTime CompareDate(BaseItem item) { var musicBrainzId = item.GetProviderId(MetadataProviders.Musicbrainz); if (!string.IsNullOrEmpty(musicBrainzId)) { // Process images var path = GetArtistDataPath(ConfigurationManager.ApplicationPaths, musicBrainzId); var files = new DirectoryInfo(path) .EnumerateFiles("*.xml", SearchOption.TopDirectoryOnly) .Select(i => i.LastWriteTimeUtc) .ToList(); if (files.Count > 0) { return files.Max(); } } return base.CompareDate(item); }