public bool Populate(int seriesID, XmlNode node, TvDBImageNodeType nodeType)
        {
            try
            {
                this.SeriesID = seriesID;

                if (nodeType == TvDBImageNodeType.Series)
                    SeasonNumber = null;
                else
                    SeasonNumber = int.Parse(node["Season"].InnerText);

                Id = int.Parse(node["id"].InnerText);
                BannerPath = node["BannerPath"].InnerText;
                BannerType = node["BannerType"].InnerText;
                BannerType2 = node["BannerType2"].InnerText;
                Language = node["Language"].InnerText;

                return true;
            }
            catch (Exception ex)
            {
                logger.Error( ex,"Error in TvDB_ImageWideBanner.Populate: " + ex.ToString());
                return false;
            }
        }
        public bool Populate(int seriesID, XmlNode node, TvDBImageNodeType nodeType)
        {
            try
            {
                this.SeriesID = seriesID;

                if (nodeType == TvDBImageNodeType.Series)
                {
                    SeasonNumber = null;
                }
                else
                {
                    SeasonNumber = int.Parse(node["Season"].InnerText);
                }

                Id          = int.Parse(node["id"].InnerText);
                BannerPath  = node["BannerPath"].InnerText;
                BannerType  = node["BannerType"].InnerText;
                BannerType2 = node["BannerType2"].InnerText;
                Language    = node["Language"].InnerText;

                return(true);
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Error in TvDB_ImageWideBanner.Populate: " + ex.ToString());
                return(false);
            }
        }
Beispiel #3
0
        public static bool Populate(this TvDB_ImagePoster poster, int seriesID, XmlNode node,
                                    TvDBImageNodeType nodeType)
        {
            try
            {
                poster.SeriesID = seriesID;

                if (nodeType == TvDBImageNodeType.Series)
                {
                    poster.SeasonNumber = null;
                }
                else
                {
                    poster.SeasonNumber = Int32.Parse(node["Season"].InnerText);
                }


                poster.Id          = Int32.Parse(node["id"].InnerText);
                poster.BannerPath  = node["BannerPath"].InnerText;
                poster.BannerType  = node["BannerType"].InnerText;
                poster.BannerType2 = node["BannerType2"].InnerText;
                poster.Language    = node["Language"].InnerText;


                return(true);
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Error in TvDB_ImagePoster.Populate: " + ex.ToString());
                return(false);
            }
        }
Beispiel #4
0
        private List <object> ParseBanners(int seriesID, XmlDocument xmlDoc)
        {
            List <object> banners = new List <object>();

            try
            {
                XmlNodeList bannerItems = xmlDoc["Banners"].GetElementsByTagName("Banner");

                //BaseConfig.MyAnimeLog.Write("Found {0} banner nodes", bannerItems.Count);

                if (bannerItems.Count <= 0)
                {
                    return(banners);
                }

                // banner types
                // series = wide banner
                // fanart = fanart
                // poster = filmstrip poster/dvd cover



                List <int> validFanartIDs = new List <int>();
                List <int> validPosterIDs = new List <int>();
                List <int> validBannerIDs = new List <int>();

                foreach (XmlNode node in bannerItems)
                {
                    JMMImageType imageType = JMMImageType.TvDB_Cover;

                    string bannerType  = node["BannerType"].InnerText.Trim().ToUpper();
                    string bannerType2 = node["BannerType2"].InnerText.Trim().ToUpper();


                    if (bannerType == "FANART")
                    {
                        imageType = JMMImageType.TvDB_FanArt;
                    }
                    else if (bannerType == "POSTER")
                    {
                        imageType = JMMImageType.TvDB_Cover;
                    }
                    else if (bannerType == "SEASON")
                    {
                        if (bannerType2 == "SEASON")
                        {
                            imageType = JMMImageType.TvDB_Cover;
                        }
                        else
                        {
                            imageType = JMMImageType.TvDB_Banner;
                        }
                    }
                    else if (bannerType == "SERIES")
                    {
                        if (bannerType2 == "SEASONWIDE" || bannerType2 == "GRAPHICAL" || bannerType2 == "TEXT" ||
                            bannerType2 == "BLANK")
                        {
                            imageType = JMMImageType.TvDB_Banner;
                        }
                        else
                        {
                            imageType = JMMImageType.TvDB_Cover;
                        }
                    }

                    if (imageType == JMMImageType.TvDB_FanArt)
                    {
                        int id = int.Parse(node["id"].InnerText);
                        TvDB_ImageFanart img = RepoFactory.TvDB_ImageFanart.GetByTvDBID(id);
                        if (img == null)
                        {
                            img         = new TvDB_ImageFanart();
                            img.Enabled = 1;
                        }

                        img.Populate(seriesID, node);
                        RepoFactory.TvDB_ImageFanart.Save(img);

                        banners.Add(img);
                        validFanartIDs.Add(id);
                    }

                    if (imageType == JMMImageType.TvDB_Banner)
                    {
                        int id = int.Parse(node["id"].InnerText);

                        TvDB_ImageWideBanner img = RepoFactory.TvDB_ImageWideBanner.GetByTvDBID(id);
                        if (img == null)
                        {
                            img         = new TvDB_ImageWideBanner();
                            img.Enabled = 1;
                        }

                        img.Populate(seriesID, node, TvDBImageNodeType.Series);
                        RepoFactory.TvDB_ImageWideBanner.Save(img);

                        banners.Add(img);
                        validBannerIDs.Add(id);
                    }

                    if (imageType == JMMImageType.TvDB_Cover)
                    {
                        int id = int.Parse(node["id"].InnerText);

                        TvDB_ImagePoster img = RepoFactory.TvDB_ImagePoster.GetByTvDBID(id);
                        if (img == null)
                        {
                            img         = new TvDB_ImagePoster();
                            img.Enabled = 1;
                        }

                        TvDBImageNodeType nodeType = TvDBImageNodeType.Series;
                        if (bannerType == "SEASON")
                        {
                            nodeType = TvDBImageNodeType.Season;
                        }


                        img.Populate(seriesID, node, nodeType);
                        RepoFactory.TvDB_ImagePoster.Save(img);

                        banners.Add(img);
                        validPosterIDs.Add(id);
                    }
                }

                // delete any banners from the database which are no longer valid
                foreach (TvDB_ImageFanart img in RepoFactory.TvDB_ImageFanart.GetBySeriesID(seriesID))
                {
                    if (!validFanartIDs.Contains(img.Id))
                    {
                        RepoFactory.TvDB_ImageFanart.Delete(img.TvDB_ImageFanartID);
                    }
                }

                foreach (TvDB_ImagePoster img in RepoFactory.TvDB_ImagePoster.GetBySeriesID(seriesID))
                {
                    if (!validPosterIDs.Contains(img.Id))
                    {
                        RepoFactory.TvDB_ImagePoster.Delete(img.TvDB_ImagePosterID);
                    }
                }

                foreach (TvDB_ImageWideBanner img in RepoFactory.TvDB_ImageWideBanner.GetBySeriesID(seriesID))
                {
                    if (!validBannerIDs.Contains(img.Id))
                    {
                        RepoFactory.TvDB_ImageWideBanner.Delete(img.TvDB_ImageWideBannerID);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Error in ParseBanners: " + ex.ToString());
            }

            return(banners);
        }