public EpisodeInfo GetEpisodeName(EpisodeInfo episode)
        {
            if (!showInfoBox.ContainsKey(episode.ShowName))
            {
                var xmlEpisodeInfo = webClient.DownloadString(String.Format(GET_SHOW_EPISODE_NAME_URI, episode.ShowName, episode.Season, episode.Episode));

                if (String.IsNullOrEmpty(xmlEpisodeInfo))
                {
                    throw new InvalidFilterCriteriaException(String.Format("Não foi encontrado o programa \"{0}\"", episode.ShowName));
                }

                var doc = new XmlDocument();
                doc.LoadXml(xmlEpisodeInfo);

                var idNode = int.Parse(doc.SelectSingleNode("/show/@id").InnerText);

                showInfoBox.Add(episode.ShowName, new KeyValuePair <int, XmlDocument>(idNode, doc));
            }

            var showId   = showInfoBox[episode.ShowName].Key;
            var showInfo = showInfoBox[episode.ShowName].Value;

            if (showInfo.SelectSingleNode("/show/episode/number").InnerText == episode.GetFormatedSeasonEpisodeString())
            {
                episode.Name = showInfo.SelectSingleNode("/show/episode/title").InnerText;
            }

            return(episode);
        }
Example #2
0
        private void Parse()
        {
            try
            {
                StripExtensionAndCleanFileName();
                StripEpisodeInfo();
                GetShowName();

                EpisodeInfo = new EpisodeInfo
                {
                    ShowName = ShowName,
                    Season   = Season,
                    Episode  = Episode
                };
            }
            catch
            {
                Success = false;
            }
        }