Exemple #1
0
 /// <summary>
 /// TV path image get.
 /// </summary>
 /// <param name="path">
 /// The image path
 /// </param>
 /// <returns>
 /// The tv path image get.
 /// </returns>
 public string TvPathImageGet(string path)
 {
     return(Downloader.ProcessDownload(
                path.ToLower().Contains("http://") ? path : TvDBFactory.GetImageUrl(path),
                DownloadType.Binary,
                Section.Tv));
 }
Exemple #2
0
 public void AddHighPriorityToBackgroundQueueCacheOnly(string url)
 {
     Downloader.AddToBackgroundQue(
         new DownloadItem
     {
         Priority = DownloadPriority.High,
         Section  = Section.Tv,
         Type     = DownloadType.Binary,
         Url      = TvDBFactory.GetImageUrl(url, true)
     });
 }
Exemple #3
0
        /// <summary>
        /// Populates the the series object with details from a series xml object.
        /// </summary>
        /// <param name="xml">The series xml.</param>
        public void PopulateFullDetails(SeriesXml xml)
        {
            var docList = new XmlDocument();

            docList.LoadXml(xml.En);

            XmlNodeList nodes = docList.GetElementsByTagName("Series");

            var doc = new XmlDocument();

            doc.LoadXml(nodes[0].OuterXml);

            this.ID              = XRead.GetUInt(doc, "id");
            this.AirsDayOfWeek   = XRead.GetString(doc, "Airs_DayOfWeek");
            this.AirsTime        = XRead.GetString(doc, "Airs_Time");
            this.ContentRating   = XRead.GetString(doc, "ContentRating");
            this.FirstAired      = XRead.GetDateTime(doc, "FirstAired", "yyyy-MM-dd");
            this.Genre           = XRead.GetString(doc, "Genre").ToBindingStringList('|');
            this.ImdbId          = XRead.GetString(doc, "IMDB_ID");
            this.Language        = XRead.GetString(doc, "Language");
            this.Network         = XRead.GetString(doc, "Network");
            this.NetworkID       = XRead.GetString(doc, "NetworkID");
            this.Overview        = XRead.GetString(doc, "Overview");
            this.Rating          = XRead.GetDouble(doc, "Rating");
            this.Runtime         = XRead.GetInt(doc, "Runtime");
            this.SeriesID        = XRead.GetUInt(doc, "id");
            this.SeriesName      = XRead.GetString(doc, "SeriesName");
            this.Status          = XRead.GetString(doc, "Status");
            this.Added           = XRead.GetString(doc, "added");
            this.AddedBy         = XRead.GetString(doc, "addedby");
            this.SeriesBannerUrl = XRead.GetString(doc, "banner");
            this.FanartUrl       = XRead.GetString(doc, "fanart");
            this.Lastupdated     = XRead.GetString(doc, "lastupdated");
            this.Zap2It_Id       = XRead.GetString(doc, "zap2it_id");
            this.PosterUrl       = XRead.GetString(doc, "poster");

            nodes = docList.GetElementsByTagName("Episode");

            int?count = 0;

            // Count Seasons
            foreach (XmlNode node in nodes)
            {
                var episode = new Episode();
                episode.Populate(node.OuterXml);

                if (episode.SeasonNumber > count)
                {
                    count = episode.SeasonNumber;
                }
            }

            // Extract main Actors
            var actorsDoc = new XDocument(XDocument.Parse(xml.Actors));

            IEnumerable <XElement> linqActors = from a in actorsDoc.Descendants("Actor") select a;

            foreach (XElement a in linqActors)
            {
                string image = a.Element("Image").Value;

                if (!string.IsNullOrEmpty(image))
                {
                    image = TvDBFactory.GetImageUrl(image);
                }

                var m = new PersonModel(a.Element("Name").Value, image, a.Element("Role").Value);
                this.Actors.Add(m);
            }

            this.Banner.Populate(xml.Banners);

            // Create Seasons
            int count2;

            int.TryParse(count.ToString(), out count2);

            for (int i = 0; i < count2 + 1; i++)
            {
                var season = new Season
                {
                    SeasonNumber = i
                };

                List <string> seasonBanner = (from p in this.Banner.Season
                                              where
                                              p.BannerType2 == BannerType2.seasonwide &&
                                              p.Season == season.SeasonNumber.ToString()
                                              select p.BannerPath).ToList();

                if (seasonBanner.Count > 0)
                {
                    season.BannerUrl = seasonBanner[0];
                    //this.AddHighPriorityToBackgroundQueueWithCache(season.BannerUrl);
                }

                List <string> seasonPoster =
                    (from p in this.Banner.Season where p.Season == season.SeasonNumber.ToString() select p.BannerPath).
                    ToList();

                if (this.posterUrl != null && seasonPoster.Count > 0)
                {
                    season.PosterUrl = seasonPoster[0];
                    //this.AddHighPriorityToBackgroundQueueWithCache(season.PosterUrl);
                }

                List <BannerDetails> seasonFanart = (from p in this.Banner.Fanart select p).ToList();

                if (seasonFanart.Count > i)
                {
                    season.FanartUrl = seasonFanart[i].BannerPath;
                }
                else if (seasonFanart.Count > 0)
                {
                    season.FanartUrl = seasonFanart[0].BannerPath;
                }

                if (!string.IsNullOrEmpty(season.FanartUrl))
                {
                    //this.AddHighPriorityToBackgroundQueueWithCache(season.FanartUrl);
                }

                this.Seasons.Add(i, season);
            }

            foreach (XmlNode node in nodes)
            {
                var  episode = new Episode();
                bool result  = episode.Populate(node.OuterXml);

                if (result)
                {
                    int episodeNumber;
                    int.TryParse(episode.SeasonNumber.ToString(), out episodeNumber);

                    this.Seasons[episodeNumber].Episodes.Add(episode);
                }
            }

            this.PreCacheSeriesThumbs();
        }