public async Task <IEnumerable <RemoteImageInfo> > GetImages(BaseItem item, CancellationToken cancellationToken) #endif { IEnumerable <RemoteImageInfo> images = new List <RemoteImageInfo>(); if (item == null || !item.ProviderIds.TryGetValue(this.Name, out var curID)) { return(images); } try { images = await MetadataAPI.SceneImages(curID, cancellationToken).ConfigureAwait(false); } catch (Exception e) { Logger.Error($"GetImages error: \"{e}\""); } if (images.Any()) { foreach (var image in images) { image.ProviderName = Plugin.Instance.Name; } } return(images); }
public async Task <IEnumerable <RemoteSearchResult> > GetSearchResults(MovieInfo searchInfo, CancellationToken cancellationToken) { var result = new List <RemoteSearchResult>(); if (searchInfo == null || string.IsNullOrEmpty(Plugin.Instance.Configuration.MetadataAPIToken)) { return(result); } var curID = searchInfo.Name.GetAttributeValue("theporndbid"); if (string.IsNullOrEmpty(curID)) { searchInfo.ProviderIds.TryGetValue(this.Name, out curID); } if (!string.IsNullOrEmpty(curID)) { var sceneData = new MetadataResult <Movie>() { HasMetadata = false, Item = new Movie(), People = new List <PersonInfo>(), }; var sceneImages = new List <RemoteImageInfo>(); try { sceneData = await MetadataAPI.SceneUpdate(curID, cancellationToken).ConfigureAwait(false); } catch (Exception e) { Logger.Error($"Update error: \"{e}\""); } try { sceneImages = (List <RemoteImageInfo>) await MetadataAPI.SceneImages(curID, cancellationToken).ConfigureAwait(false); } catch (Exception e) { Logger.Error($"GetImages error: \"{e}\""); } if (sceneData.HasMetadata) { result.Add(new RemoteSearchResult { ProviderIds = { { Plugin.Instance.Name, curID } }, Name = sceneData.Item.Name, ImageUrl = sceneImages?.Where(o => o.Type == ImageType.Primary).FirstOrDefault()?.Url, PremiereDate = sceneData.Item.PremiereDate, }); return(result); } } if (string.IsNullOrEmpty(searchInfo.Name)) { return(result); } string searchTitle = searchInfo.Name, oshash = string.Empty; #if __EMBY__ #else if (!string.IsNullOrEmpty(searchInfo.Path) && Plugin.Instance.Configuration.UseFilePath) { searchTitle = searchInfo.Path; } if (!string.IsNullOrEmpty(searchInfo.Path) && Plugin.Instance.Configuration.UseOSHash) { oshash = OpenSubtitlesHash.ComputeHash(searchInfo.Path); } #endif try { result = await MetadataAPI.SceneSearch(searchTitle, oshash, cancellationToken).ConfigureAwait(false); } catch (Exception e) { Logger.Error($"Search error: \"{e}\""); } if (result.Any()) { foreach (var scene in result) { if (scene.PremiereDate.HasValue) { scene.ProductionYear = scene.PremiereDate.Value.Year; } } } return(result); }