protected override async Task FetchLastfmData(BaseItem item, string id, CancellationToken cancellationToken) { var result = await GetAlbumResult(item, cancellationToken).ConfigureAwait(false); if (result != null && result.album != null) { LastfmHelper.ProcessAlbumData(item, result.album); } BaseProviderInfo data; if (!item.ProviderData.TryGetValue(Id, out data)) { data = new BaseProviderInfo(); item.ProviderData[Id] = data; } data.FileStamp = GetComparisonData(item as MusicAlbum); }
/// <summary> /// Fetches metadata and returns true or false indicating if any work that requires persistence was done /// </summary> /// <param name="item">The item.</param> /// <param name="force">if set to <c>true</c> [force].</param> /// <param name="cancellationToken">The cancellation token</param> /// <returns>Task{System.Boolean}.</returns> public override async Task <bool> FetchAsync(BaseItem item, bool force, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var album = (MusicAlbum)item; var result = await GetAlbumResult(album, cancellationToken).ConfigureAwait(false); if (result != null && result.album != null) { LastfmHelper.ProcessAlbumData(item, result.album); } var releaseEntryId = item.GetProviderId(MetadataProviders.Musicbrainz); if (!string.IsNullOrEmpty(releaseEntryId)) { var musicBrainzReleaseGroupId = album.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup); if (string.IsNullOrEmpty(musicBrainzReleaseGroupId)) { musicBrainzReleaseGroupId = await GetReleaseGroupId(releaseEntryId, cancellationToken).ConfigureAwait(false); album.SetProviderId(MetadataProviders.MusicBrainzReleaseGroup, musicBrainzReleaseGroupId); } } BaseProviderInfo data; if (!item.ProviderData.TryGetValue(Id, out data)) { data = new BaseProviderInfo(); item.ProviderData[Id] = data; } data.FileStamp = GetComparisonData(album); SetLastRefreshed(item, DateTime.UtcNow); return(true); }