/// <summary> /// Fetches the specified item. /// </summary> /// <param name="item">The item.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> private async Task <bool> Fetch(BaseItem item, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var path = MovieXmlSaver.GetMovieSavePath(item); if (File.Exists(path)) { await XmlParsingResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); try { var video = (Video)item; await new MovieXmlParser(Logger, _itemRepo).FetchAsync(video, path, cancellationToken).ConfigureAwait(false); } finally { XmlParsingResourcePool.Release(); } } SetLastRefreshed(item, DateTime.UtcNow); return(true); }
protected override bool NeedsRefreshBasedOnCompareDate(BaseItem item, BaseProviderInfo providerInfo) { var savePath = MovieXmlSaver.GetMovieSavePath(item); var xml = item.ResolveArgs.GetMetaFileByPath(savePath) ?? new FileInfo(savePath); if (!xml.Exists) { return(false); } return(_fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed); }
/// <summary> /// Determines whether [has alt meta] [the specified item]. /// </summary> /// <param name="item">The item.</param> /// <returns><c>true</c> if [has alt meta] [the specified item]; otherwise, <c>false</c>.</returns> internal static bool HasAltMeta(BaseItem item) { if (item is BoxSet) { return(item.LocationType == LocationType.FileSystem && item.ResolveArgs.ContainsMetaFileByName("collection.xml")); } var path = MovieXmlSaver.GetMovieSavePath(item); if (item.LocationType == LocationType.FileSystem) { // If mixed with multiple movies in one folder, resolve args won't have the file system children return(item.ResolveArgs.ContainsMetaFileByName(Path.GetFileName(path)) || File.Exists(path)); } return(false); }