private void LoadJson([NotNull] JObject r) { AirsDay = ((string)r["airsDayOfWeek"])?.Trim(); string airsTimeString = (string)r["airsTime"]; AirsTime = JsonHelper.ParseAirTime(airsTimeString); Aliases = (r["aliases"] ?? throw new SourceConsistencyException($"Can't find aliases in Series JSON: {r}", TVDoc.ProviderType.TheTVDB)).Select(x => x.Value <string>()).ToList(); BannerString = (string)r["banner"]; FirstAired = JsonHelper.ParseFirstAired((string)r["firstAired"]); if (r.ContainsKey("genre")) { Genres = r["genre"]?.Select(x => x.Value <string>().Trim()).Distinct().ToList() ?? new List <string>(); } TvdbCode = (int)r["id"]; Imdb = ((string)r["imdbId"])?.Trim(); Network = ((string)r["network"])?.Trim(); Slug = ((string)r["slug"])?.Trim(); Overview = System.Web.HttpUtility.HtmlDecode((string)r["overview"])?.Trim(); ContentRating = ((string)r["rating"])?.Trim(); Runtime = ((string)r["runtime"])?.Trim(); SeriesId = (string)r["seriesId"]; string s = (string)r["seriesName"]; if (s != null) { Name = System.Web.HttpUtility.HtmlDecode(s).Trim(); } Status = (string)r["status"]; SrvLastUpdated = long.TryParse((string)r["lastUpdated"], out long updateTime) ? updateTime : 0; string siteRatingString = (string)r["siteRating"]; float.TryParse(siteRatingString, NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite, CultureInfo.CreateSpecificCulture("en-US"), out SiteRating); string siteRatingVotesString = (string)r["siteRatingCount"]; int.TryParse(siteRatingVotesString, NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite, CultureInfo.CreateSpecificCulture("en-US"), out SiteRatingVotes); }
public Episode([NotNull] XElement r) { // <Episode> // <id>...</id> // blah blah // </Episode> SeriesId = r.ExtractInt("seriesid", -1); // key to the cachedSeries EpisodeId = r.ExtractInt("id", -1); SeasonId = r.ExtractInt("airedSeasonID") ?? r.ExtractInt("seasonid", -1); AiredEpNum = r.ExtractInt("airedEpisodeNumber") ?? r.ExtractInt("EpisodeNumber", -1); DvdEpNum = ExtractAndParse(r, "dvdEpisodeNumber"); ReadAiredSeasonNum = ExtractAndParse(r, "SeasonNumber"); ReadDvdSeasonNum = ExtractAndParse(r, "dvdSeason"); SrvLastUpdated = r.ExtractLong("lastupdated", -1); Overview = System.Web.HttpUtility.HtmlDecode(XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("Overview"))); LinkUrl = XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("LinkURL")); Runtime = XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("Runtime")); EpisodeRating = XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("Rating")); EpisodeGuestStars = XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("GuestStars")); EpisodeDirector = XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("EpisodeDirector")); Writer = XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("Writer")); mName = System.Web.HttpUtility.HtmlDecode(XmlHelper.ReadStringFixQuotesAndSpaces(r.ExtractString("EpisodeName"))); AirStamp = r.ExtractDateTime("AirStamp"); AirTime = JsonHelper.ParseAirTime(r.ExtractString("Airs_Time")); DvdDiscId = r.ExtractString("DvdDiscId"); Filename = r.ExtractStringOrNull("Filename") ?? r.ExtractString("filename"); ShowUrl = r.ExtractStringOrNull("ShowUrl") ?? r.ExtractString("showUrl"); ImdbCode = r.ExtractStringOrNull("ImdbCode") ?? r.ExtractStringOrNull("IMDB_ID") ?? r.ExtractString("imdbId"); ProductionCode = r.ExtractStringOrNull("ProductionCode") ?? r.ExtractString("productionCode"); DvdChapter = r.ExtractInt("DvdChapter") ?? r.ExtractInt("dvdChapter"); AirsBeforeSeason = r.ExtractInt("AirsBeforeSeason") ?? r.ExtractInt("airsBeforeSeason") ?? r.ExtractInt("airsbefore_season"); AirsBeforeEpisode = r.ExtractInt("AirsBeforeEpisode") ?? r.ExtractInt("airsBeforeEpisode") ?? r.ExtractInt("airsbefore_episode"); AirsAfterSeason = r.ExtractInt("AirsAfterSeason"); SiteRatingCount = r.ExtractInt("SiteRatingCount") ?? r.ExtractInt("siteRatingCount"); AbsoluteNumber = r.ExtractInt("AbsoluteNumber"); FirstAired = JsonHelper.ParseFirstAired(r.ExtractString("FirstAired")); }
private void LoadXml([NotNull] XElement seriesXml) { //<Data> // <Series> // <id>...</id> // etc. // </Series> // <Episode> // <id>...</id> // blah blah // </Episode> // <Episode> // <id>...</id> // blah blah // </Episode> // ... //</Data> try { TvdbCode = seriesXml.ExtractInt("id") ?? throw new SourceConsistencyException("Error Extracting Id for Series", TVDoc.ProviderType.TheTVDB); TvMazeCode = seriesXml.ExtractInt("mazeid") ?? -1; TmdbCode = seriesXml.ExtractInt("TMDBCode") ?? -1; Name = System.Web.HttpUtility.HtmlDecode( XmlHelper.ReadStringFixQuotesAndSpaces(seriesXml.ExtractStringOrNull("SeriesName") ?? seriesXml.ExtractString("seriesName"))); SrvLastUpdated = seriesXml.ExtractLong("lastupdated") ?? seriesXml.ExtractLong("lastUpdated", 0); LanguageId = seriesXml.ExtractInt("LanguageId") ?? seriesXml.ExtractInt("languageId") ?? throw new SourceConsistencyException("Error Extracting Language for Series", TVDoc.ProviderType.TheTVDB); string airsTimeString = seriesXml.ExtractStringOrNull("Airs_Time") ?? seriesXml.ExtractString("airsTime"); AirsTime = JsonHelper.ParseAirTime(airsTimeString); AirsDay = seriesXml.ExtractStringOrNull("airsDayOfWeek") ?? seriesXml.ExtractString("Airs_DayOfWeek"); BannerString = seriesXml.ExtractStringOrNull("banner") ?? seriesXml.ExtractString("Banner"); PosterUrl = seriesXml.ExtractString("posterURL"); Imdb = seriesXml.ExtractStringOrNull("imdbId") ?? seriesXml.ExtractString("IMDB_ID"); WebUrl = seriesXml.ExtractString("WebURL"); OfficialUrl = seriesXml.ExtractString("OfficialUrl"); Type = seriesXml.ExtractString("Type"); ShowLanguage = seriesXml.ExtractString("ShowLanguage"); TvRageCode = seriesXml.ExtractInt("rageid") ?? 0; Network = seriesXml.ExtractStringOrNull("network") ?? seriesXml.ExtractString("Network"); Overview = seriesXml.ExtractStringOrNull("overview") ?? seriesXml.ExtractString("Overview"); ContentRating = seriesXml.ExtractStringOrNull("rating") ?? seriesXml.ExtractString("Rating"); Runtime = seriesXml.ExtractStringOrNull("runtime") ?? seriesXml.ExtractString("Runtime"); SeriesId = seriesXml.ExtractStringOrNull("seriesId") ?? seriesXml.ExtractString("SeriesID"); Status = seriesXml.ExtractStringOrNull("status") ?? seriesXml.ExtractString("Status"); SiteRatingVotes = seriesXml.ExtractInt("siteRatingCount") ?? seriesXml.ExtractInt("SiteRatingCount", 0); Slug = seriesXml.ExtractString("slug"); SiteRating = GetSiteRating(seriesXml); FirstAired = JsonHelper.ParseFirstAired(seriesXml.ExtractStringOrNull("FirstAired") ?? seriesXml.ExtractString("firstAired")); LoadActors(seriesXml); LoadAliases(seriesXml); LoadGenres(seriesXml); LoadSeasons(seriesXml); } catch (SourceConsistencyException e) { LOGGER.Error(e, GenerateErrorMessage()); // ReSharper disable once PossibleIntendedRethrow throw e; } }