public override void Fetch() { folderDate = new FileInfo(Item.Path).LastWriteTimeUtc; //all we need to do here is fill in season number Season season = Item as Season; if (season != null) { if (season.SeasonNumber == null) { string seasonNum = TVUtils.SeasonNumberFromFolderName(Item.Path); int seasonNumber = Int32.Parse(seasonNum); season.SeasonNumber = seasonNumber.ToString(); if (season.SeasonNumber == "0") { season.Name = "Specials"; } } } }
private bool FetchSeasonData() { Season season = Season; string name = Item.Name; Logger.ReportVerbose("TvDbProvider: Fetching season data: " + name); string seasonNum = TVUtils.SeasonNumberFromFolderName(Item.Path); int seasonNumber = Int32.Parse(seasonNum); season.SeasonNumber = seasonNumber.ToString(); if (season.SeasonNumber == "0") { season.Name = "Specials"; } if (!string.IsNullOrEmpty(seriesId)) { if ((Item.PrimaryImagePath == null) || (Item.BannerImagePath == null) || (Item.BackdropImagePath == null)) { XmlDocument banners = TVUtils.Fetch(string.Format("http://www.thetvdb.com/api/" + TVUtils.TVDBApiKey + "/series/{0}/banners.xml", seriesId)); XmlNode n = banners.SelectSingleNode("//Banner[BannerType='season'][BannerType2='season'][Season='" + seasonNumber.ToString() + "']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { if (Kernel.Instance.ConfigData.SaveLocalMeta) { season.PrimaryImagePath = TVUtils.FetchAndSaveImage(TVUtils.BannerUrl + n.InnerText, Path.Combine(season.Path, "folder")); } else { season.PrimaryImagePath = TVUtils.BannerUrl + n.InnerText; } } } n = banners.SelectSingleNode("//Banner[BannerType='season'][BannerType2='seasonwide'][Season='" + seasonNumber.ToString() + "']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { if (Kernel.Instance.ConfigData.SaveLocalMeta) { season.BannerImagePath = TVUtils.FetchAndSaveImage(TVUtils.BannerUrl + n.InnerText, Path.Combine(season.Path, "banner")); } else { season.BannerImagePath = TVUtils.BannerUrl + n.InnerText; } } } n = banners.SelectSingleNode("//Banner[BannerType='fanart'][Season='" + seasonNumber.ToString() + "']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null && Item.BackdropImagePath == null) { if (Kernel.Instance.ConfigData.SaveLocalMeta && Kernel.Instance.ConfigData.SaveSeasonBackdrops) { season.BackdropImagePath = TVUtils.FetchAndSaveImage(TVUtils.BannerUrl + n.InnerText, Path.Combine(Item.Path, "backdrop")); } else { Item.BackdropImagePath = TVUtils.BannerUrl + n.InnerText; } } } else if (!Kernel.Instance.ConfigData.SaveLocalMeta) //if saving local - season will inherit from series { // not necessarily accurate but will give a different bit of art to each season XmlNodeList lst = banners.SelectNodes("//Banner[BannerType='fanart']"); if (lst.Count > 0) { int num = seasonNumber % lst.Count; n = lst[num]; n = n.SelectSingleNode("./BannerPath"); if (n != null && Item.BackdropImagePath == null) { Item.BackdropImagePath = TVUtils.BannerUrl + n.InnerText; } } } } Logger.ReportVerbose("TvDbProvider: Success"); return(true); } return(false); }
private bool FetchSeasonData() { Season season = Season; string name = Item.Name; Logger.ReportInfo("TvDbProvider: Fetching season data: " + name); string seasonNum = TVUtils.SeasonNumberFromFolderName(Item.Path); int seasonNumber = Int32.Parse(seasonNum); season.SeasonNumber = seasonNumber.ToString(); if (!string.IsNullOrEmpty(seriesId)) { if ((Item.PrimaryImagePath == null) || (Item.BannerImagePath == null) || (Item.BackdropImagePath == null)) { XmlDocument banners = TVUtils.Fetch(string.Format("http://www.thetvdb.com/api/" + TVUtils.TVDBApiKey + "/series/{0}/banners.xml", seriesId)); XmlNode n = banners.SelectSingleNode("//Banner[BannerType='season'][BannerType2='season'][Season='" + seasonNumber.ToString() + "']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { season.PrimaryImagePath = TVUtils.BannerUrl + n.InnerText; } } n = banners.SelectSingleNode("//Banner[BannerType='season'][BannerType2='seasonwide'][Season='" + seasonNumber.ToString() + "']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { Item.BannerImagePath = TVUtils.BannerUrl + n.InnerText; } } n = banners.SelectSingleNode("//Banner[BannerType='fanart'][Season='" + seasonNumber.ToString() + "']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { Item.BackdropImagePath = TVUtils.BannerUrl + n.InnerText; } } else { // not necessarily accurate but will give a different bit of art to each season XmlNodeList lst = banners.SelectNodes("//Banner[BannerType='fanart']"); if (lst.Count > 0) { int num = seasonNumber % lst.Count; n = lst[num]; n = n.SelectSingleNode("./BannerPath"); if (n != null) { Item.BackdropImagePath = TVUtils.BannerUrl + n.InnerText; } } } } Logger.ReportInfo("TvDbProvider: Success"); return(true); } return(false); }