Esempio n. 1
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

				TvDB_ImageFanartRepository repFanart = new TvDB_ImageFanartRepository();
				TvDB_ImagePosterRepository repPosters = new TvDB_ImagePosterRepository();
				TvDB_ImageWideBannerRepository repWideBanners = new TvDB_ImageWideBannerRepository();

				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 = repFanart.GetByTvDBID(id);
						if (img == null)
						{
							img = new TvDB_ImageFanart();
							img.Enabled = 1;
						}

						img.Populate(seriesID, node);
						repFanart.Save(img);

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

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

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

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

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

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

						TvDB_ImagePoster img = repPosters.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);
						repPosters.Save(img);

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

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

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

				foreach (TvDB_ImageWideBanner img in repWideBanners.GetBySeriesID(seriesID))
				{
					if (!validBannerIDs.Contains(img.Id))
						repWideBanners.Delete(img.TvDB_ImageWideBannerID);
				}

			}
			catch (Exception ex)
			{
				logger.ErrorException("Error in ParseBanners: " + ex.ToString(), ex);
			}

			return banners;
		}
Esempio n. 2
0
        public string EnableDisableImage(bool enabled, int imageID, int imageType)
        {
            try
            {
                JMMImageType imgType = (JMMImageType)imageType;

                switch (imgType)
                {
                    case JMMImageType.AniDB_Cover:

                        AniDB_AnimeRepository repAnime = new AniDB_AnimeRepository();
                        AniDB_Anime anime = repAnime.GetByAnimeID(imageID);
                        if (anime == null) return "Could not find anime";

                        anime.ImageEnabled = enabled ? 1 : 0;
                        repAnime.Save(anime);

                        break;

                    case JMMImageType.TvDB_Banner:

                        TvDB_ImageWideBannerRepository repBanners = new TvDB_ImageWideBannerRepository();
                        TvDB_ImageWideBanner banner = repBanners.GetByID(imageID);

                        if (banner == null) return "Could not find image";

                        banner.Enabled = enabled ? 1 : 0;
                        repBanners.Save(banner);

                        break;

                    case JMMImageType.TvDB_Cover:

                        TvDB_ImagePosterRepository repPosters = new TvDB_ImagePosterRepository();
                        TvDB_ImagePoster poster = repPosters.GetByID(imageID);

                        if (poster == null) return "Could not find image";

                        poster.Enabled = enabled ? 1 : 0;
                        repPosters.Save(poster);

                        break;

                    case JMMImageType.TvDB_FanArt:

                        TvDB_ImageFanartRepository repFanart = new TvDB_ImageFanartRepository();
                        TvDB_ImageFanart fanart = repFanart.GetByID(imageID);

                        if (fanart == null) return "Could not find image";

                        fanart.Enabled = enabled ? 1 : 0;
                        repFanart.Save(fanart);

                        break;

                    case JMMImageType.MovieDB_Poster:

                        MovieDB_PosterRepository repMoviePosters = new MovieDB_PosterRepository();
                        MovieDB_Poster moviePoster = repMoviePosters.GetByID(imageID);

                        if (moviePoster == null) return "Could not find image";

                        moviePoster.Enabled = enabled ? 1 : 0;
                        repMoviePosters.Save(moviePoster);

                        break;

                    case JMMImageType.MovieDB_FanArt:

                        MovieDB_FanartRepository repMovieFanart = new MovieDB_FanartRepository();
                        MovieDB_Fanart movieFanart = repMovieFanart.GetByID(imageID);

                        if (movieFanart == null) return "Could not find image";

                        movieFanart.Enabled = enabled ? 1 : 0;
                        repMovieFanart.Save(movieFanart);

                        break;

                    case JMMImageType.Trakt_Poster:

                        Trakt_ImagePosterRepository repTraktPosters = new Trakt_ImagePosterRepository();
                        Trakt_ImagePoster traktPoster = repTraktPosters.GetByID(imageID);

                        if (traktPoster == null) return "Could not find image";

                        traktPoster.Enabled = enabled ? 1 : 0;
                        repTraktPosters.Save(traktPoster);

                        break;

                    case JMMImageType.Trakt_Fanart:

                        Trakt_ImageFanartRepository repTraktFanart = new Trakt_ImageFanartRepository();
                        Trakt_ImageFanart traktFanart = repTraktFanart.GetByID(imageID);

                        if (traktFanart == null) return "Could not find image";

                        traktFanart.Enabled = enabled ? 1 : 0;
                        repTraktFanart.Save(traktFanart);

                        break;
                }

                return "";
            }
            catch (Exception ex)
            {
                logger.ErrorException(ex.ToString(), ex);
                return ex.Message;
            }
        }