private RemoteImageInfo GetInfo(string url, string size) { if (string.IsNullOrEmpty(url)) { return null; } var info = new RemoteImageInfo { ProviderName = Name, Url = url }; if (string.Equals(size, "mega", StringComparison.OrdinalIgnoreCase)) { } else if (string.Equals(size, "extralarge", StringComparison.OrdinalIgnoreCase)) { } else if (string.Equals(size, "large", StringComparison.OrdinalIgnoreCase)) { } else if (string.Equals(size, "medium", StringComparison.OrdinalIgnoreCase)) { } return info; }
private void PopulateImageCategory(List<RemoteImageInfo> list, XmlReader reader, CancellationToken cancellationToken, ImageType type, int width, int height, bool allowSeasonAll = false) { reader.MoveToContent(); while (reader.Read()) { cancellationToken.ThrowIfCancellationRequested(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "hdtvlogo": case "hdclearart": case "clearlogo": case "clearart": case "showbackground": case "seasonthumb": case "tvthumb": case "tvbanner": case "tvposter": { var url = reader.GetAttribute("url"); var season = reader.GetAttribute("season"); var isSeasonValid = string.IsNullOrEmpty(season) || (allowSeasonAll && string.Equals(season, "all", StringComparison.OrdinalIgnoreCase)); if (!string.IsNullOrEmpty(url) && isSeasonValid) { var likesString = reader.GetAttribute("likes"); int likes; var info = new RemoteImageInfo { RatingType = RatingType.Likes, Type = type, Width = width, Height = height, ProviderName = Name, Url = url, Language = reader.GetAttribute("lang") }; if (!string.IsNullOrEmpty(likesString) && int.TryParse(likesString, NumberStyles.Any, _usCulture, out likes)) { info.CommunityRating = likes; } list.Add(info); } break; } default: reader.Skip(); break; } } } }
private void AddImage(XmlReader reader, List<RemoteImageInfo> images) { reader.MoveToContent(); string bannerType = null; string url = null; int? bannerSeason = null; int? width = null; int? height = null; string language = null; double? rating = null; int? voteCount = null; string thumbnailUrl = null; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "Rating": { var val = reader.ReadElementContentAsString() ?? string.Empty; double rval; if (double.TryParse(val, NumberStyles.Any, _usCulture, out rval)) { rating = rval; } break; } case "RatingCount": { var val = reader.ReadElementContentAsString() ?? string.Empty; int rval; if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval)) { voteCount = rval; } break; } case "Language": { language = reader.ReadElementContentAsString() ?? string.Empty; break; } case "ThumbnailPath": { thumbnailUrl = reader.ReadElementContentAsString() ?? string.Empty; break; } case "BannerType": { bannerType = reader.ReadElementContentAsString() ?? string.Empty; break; } case "BannerPath": { url = reader.ReadElementContentAsString() ?? string.Empty; break; } case "BannerType2": { var bannerType2 = reader.ReadElementContentAsString() ?? string.Empty; // Sometimes the resolution is stuffed in here var resolutionParts = bannerType2.Split('x'); if (resolutionParts.Length == 2) { int rval; if (int.TryParse(resolutionParts[0], NumberStyles.Integer, _usCulture, out rval)) { width = rval; } if (int.TryParse(resolutionParts[1], NumberStyles.Integer, _usCulture, out rval)) { height = rval; } } break; } case "Season": { var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { bannerSeason = int.Parse(val); } break; } default: reader.Skip(); break; } } } if (!string.IsNullOrEmpty(url) && !bannerSeason.HasValue) { var imageInfo = new RemoteImageInfo { RatingType = RatingType.Score, CommunityRating = rating, VoteCount = voteCount, Url = TVUtils.BannerUrl + url, ProviderName = Name, Language = language, Width = width, Height = height }; if (!string.IsNullOrEmpty(thumbnailUrl)) { imageInfo.ThumbnailUrl = TVUtils.BannerUrl + thumbnailUrl; } if (string.Equals(bannerType, "poster", StringComparison.OrdinalIgnoreCase)) { imageInfo.Type = ImageType.Primary; images.Add(imageInfo); } else if (string.Equals(bannerType, "series", StringComparison.OrdinalIgnoreCase)) { imageInfo.Type = ImageType.Banner; images.Add(imageInfo); } else if (string.Equals(bannerType, "fanart", StringComparison.OrdinalIgnoreCase)) { imageInfo.Type = ImageType.Backdrop; images.Add(imageInfo); } } }
/// <summary> /// Adds the image. /// </summary> /// <param name="list">The list.</param> /// <param name="reader">The reader.</param> /// <param name="type">The type.</param> /// <param name="width">The width.</param> /// <param name="height">The height.</param> private void AddImage(List<RemoteImageInfo> list, XmlReader reader, ImageType type, int width, int height) { var url = reader.GetAttribute("url"); var size = reader.GetAttribute("size"); if (!string.IsNullOrEmpty(size)) { int sizeNum; if (int.TryParse(size, NumberStyles.Any, _usCulture, out sizeNum)) { width = sizeNum; height = sizeNum; } } var likesString = reader.GetAttribute("likes"); int likes; var info = new RemoteImageInfo { RatingType = RatingType.Likes, Type = type, Width = width, Height = height, ProviderName = Name, Url = url, Language = reader.GetAttribute("lang") }; if (!string.IsNullOrEmpty(likesString) && int.TryParse(likesString, NumberStyles.Any, _usCulture, out likes)) { info.CommunityRating = likes; } list.Add(info); }
private void PopulateImages(List<RemoteImageInfo> list, List<FanartArtistImage> images, ImageType type, int width, int height) { if (images == null) { return; } list.AddRange(images.Select(i => { var url = i.url; if (!string.IsNullOrEmpty(url)) { var likesString = i.likes; int likes; var info = new RemoteImageInfo { RatingType = RatingType.Likes, Type = type, Width = width, Height = height, ProviderName = Name, Url = url, Language = i.lang }; if (!string.IsNullOrEmpty(likesString) && int.TryParse(likesString, NumberStyles.Any, _usCulture, out likes)) { info.CommunityRating = likes; } return info; } return null; }).Where(i => i != null)); }
private void PopulateImages(List<RemoteImageInfo> list, List<Image> images, ImageType type, int width, int height, bool allowSeasonAll = false) { if (images == null) { return; } list.AddRange(images.Select(i => { var url = i.url; var season = i.season; var isSeasonValid = string.IsNullOrEmpty(season) || (allowSeasonAll && string.Equals(season, "all", StringComparison.OrdinalIgnoreCase)); if (!string.IsNullOrEmpty(url) && isSeasonValid) { var likesString = i.likes; int likes; var info = new RemoteImageInfo { RatingType = RatingType.Likes, Type = type, Width = width, Height = height, ProviderName = Name, Url = url, Language = i.lang }; if (!string.IsNullOrEmpty(likesString) && int.TryParse(likesString, NumberStyles.Any, _usCulture, out likes)) { info.CommunityRating = likes; } return info; } return null; }).Where(i => i != null)); }
private static IEnumerable<RemoteImageInfo> GetImages(MazeSeason mazeSeason) { var result = new List<RemoteImageInfo>(); if (mazeSeason.image != null && mazeSeason.image.original != null) { var imageInfo = new RemoteImageInfo { Url = mazeSeason.image.original.AbsoluteUri, ProviderName = ProviderName, Language = "en", Type = ImageType.Primary }; result.Add(imageInfo); } return result; }
private void PopulateImageCategory(List<RemoteImageInfo> list, XmlReader reader, CancellationToken cancellationToken, ImageType type, int width, int height, int seasonNumber) { reader.MoveToContent(); while (reader.Read()) { cancellationToken.ThrowIfCancellationRequested(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "seasonthumb": case "showbackground": { var url = reader.GetAttribute("url"); var season = reader.GetAttribute("season"); int imageSeasonNumber; if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(season) && int.TryParse(season, NumberStyles.Any, _usCulture, out imageSeasonNumber) && seasonNumber == imageSeasonNumber) { var likesString = reader.GetAttribute("likes"); int likes; var info = new RemoteImageInfo { RatingType = RatingType.Likes, Type = type, Width = width, Height = height, ProviderName = Name, Url = url, Language = reader.GetAttribute("lang") }; if (!string.IsNullOrEmpty(likesString) && int.TryParse(likesString, NumberStyles.Any, _usCulture, out likes)) { info.CommunityRating = likes; } list.Add(info); } break; } default: reader.Skip(); break; } } } }
private void PopulateImages(List<RemoteImageInfo> list, List<FanartSeriesProvider.Image> images, ImageType type, int width, int height, int seasonNumber) { if (images == null) { return; } list.AddRange(images.Select(i => { var url = i.url; var season = i.season; int imageSeasonNumber; if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(season) && int.TryParse(season, NumberStyles.Any, _usCulture, out imageSeasonNumber) && seasonNumber == imageSeasonNumber) { var likesString = i.likes; int likes; var info = new RemoteImageInfo { RatingType = RatingType.Likes, Type = type, Width = width, Height = height, ProviderName = Name, Url = _regex_http.Replace(url, "https://", 1), Language = i.lang }; if (!string.IsNullOrEmpty(likesString) && int.TryParse(likesString, NumberStyles.Any, _usCulture, out likes)) { info.CommunityRating = likes; } return info; } return null; }).Where(i => i != null)); }
private void PopulateImageCategory(List<RemoteImageInfo> list, XmlReader reader, CancellationToken cancellationToken, ImageType type) { reader.MoveToContent(); while (reader.Read()) { cancellationToken.ThrowIfCancellationRequested(); if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "original": { var width = Convert.ToInt32(reader.GetAttribute("width")); var height = Convert.ToInt32(reader.GetAttribute("height")); var url = reader.ReadString(); if (!string.IsNullOrEmpty(url)) { var info = new RemoteImageInfo { Type = type, Width = width, Height = height, ProviderName = Name, Url = TgdbUrls.BaseImagePath + url }; list.Add(info); } break; } default: reader.Skip(); break; } } } }
private void PopulateImage(List<RemoteImageInfo> list, XmlReader reader, CancellationToken cancellationToken, ImageType type) { cancellationToken.ThrowIfCancellationRequested(); if (reader.NodeType == XmlNodeType.Element) { var width = Convert.ToInt32(reader.GetAttribute("width")); var height = Convert.ToInt32(reader.GetAttribute("height")); var url = reader.ReadString(); if (!string.IsNullOrEmpty(url)) { var info = new RemoteImageInfo { Type = type, Width = width, Height = height, ProviderName = Name, Url = TgdbUrls.BaseImagePath + url }; list.Add(info); } } }