public GetHEREManifest() { ConfigurationArguments.Clear(); DataProviders.Clear(); DataProviders.Add(DataSourceParameterType.SourceDatabaseDataSource.ToString(), null); }
public override bool FromMetadata(IDictionary <Guid, IList <MediaItemAspect> > aspectData) { if (!aspectData.ContainsKey(TempSubtitleAspect.ASPECT_ID) && !aspectData.ContainsKey(EpisodeAspect.ASPECT_ID) && !aspectData.ContainsKey(MovieAspect.ASPECT_ID)) { return(false); } if (MediaItemAspect.TryGetAspect(aspectData, EpisodeAspect.Metadata, out var episodeAspect)) { IEnumerable collection; if (MediaItemAspect.TryGetAttribute(aspectData, EpisodeAspect.ATTR_EPISODE, out collection)) { Episode = collection.Cast <int>().Distinct().First(); } Season = episodeAspect.GetAttributeValue <int>(EpisodeAspect.ATTR_SEASON); MediaTitle = episodeAspect.GetAttributeValue <string>(EpisodeAspect.ATTR_SERIES_NAME); } else if (MediaItemAspect.TryGetAspect(aspectData, MovieAspect.Metadata, out var movieAspect)) { MediaTitle = movieAspect.GetAttributeValue <string>(MovieAspect.ATTR_MOVIE_NAME); if (MediaItemAspect.TryGetAttribute(aspectData, MediaAspect.ATTR_RECORDINGTIME, out DateTime release)) { Year = release.Year; } } else if (MediaItemAspect.TryGetAspect(aspectData, MediaAspect.Metadata, out var mediaAspect)) { MediaTitle = mediaAspect.GetAttributeValue <string>(MediaAspect.ATTR_TITLE); } if (MediaItemAspect.TryGetAspect(aspectData, TempSubtitleAspect.Metadata, out var subAspect)) { Name = subAspect.GetAttributeValue <string>(TempSubtitleAspect.ATTR_NAME); DisplayName = subAspect.GetAttributeValue <string>(TempSubtitleAspect.ATTR_DISPLAY_NAME); SubtitleId = subAspect.GetAttributeValue <string>(TempSubtitleAspect.ATTR_SUBTITLEID); Language = subAspect.GetAttributeValue <string>(TempSubtitleAspect.ATTR_LANGUAGE); DataProviders.Clear(); var dataProviders = subAspect.GetAttributeValue <string>(TempSubtitleAspect.ATTR_PROVIDER); if (dataProviders?.Count() > 0) { DataProviders = new List <string>(dataProviders.Split(';')); } Categories.Clear(); var categories = subAspect.GetAttributeValue <string>(TempSubtitleAspect.ATTR_CATEGORY); if (categories?.Count() > 0) { Categories = new List <string>(categories.Split(';')); } } MediaFiles.Clear(); if (aspectData.ContainsKey(ProviderResourceAspect.ASPECT_ID)) { IList <MultipleMediaItemAspect> resourceAspects; if (MediaItemAspect.TryGetAspects(aspectData, ProviderResourceAspect.Metadata, out resourceAspects)) { foreach (MultipleMediaItemAspect resourceAspect in resourceAspects) { string systemId = resourceAspect.GetAttributeValue <string>(ProviderResourceAspect.ATTR_SYSTEM_ID); string path = resourceAspect.GetAttributeValue <string>(ProviderResourceAspect.ATTR_RESOURCE_ACCESSOR_PATH); int type = resourceAspect.GetAttributeValue <int>(ProviderResourceAspect.ATTR_TYPE); if (type == ProviderResourceAspect.TYPE_PRIMARY) { MediaFiles.Add(new ResourceLocator(systemId, ResourcePath.Deserialize(path))); } } } } return(true); }