Example #1
0
        /// <summary>
        /// Loads the series.
        /// </summary>
        /// <param name="series">
        /// The series.
        /// </param>
        /// <returns>
        /// Loaded succeeded
        /// </returns>
        public bool LoadSeries(Series series)
        {
            string seriesName = series.GetSeriesNameOnDisk();
            string seriesPath = series.GetSeriesPath();

            if (string.IsNullOrEmpty(seriesName) || string.IsNullOrEmpty(seriesPath))
            {
                return(false);
            }

            string nfo = Find.FindNFO(seriesName, seriesPath);

            if (string.IsNullOrEmpty(nfo))
            {
                return(false);
            }

            XmlDocument doc = XRead.OpenPath(nfo);

            series.SeriesName    = XRead.GetString(doc, "title");
            series.SeriesID      = XRead.GetUInt(doc, "id");
            series.Rating        = XRead.GetDouble(doc, "rating");
            series.Overview      = XRead.GetString(doc, "plot");
            series.ContentRating = XRead.GetString(doc, "certification");
            series.Genre         = XRead.GetStrings(doc, "genre").ToBindingList();
            series.FirstAired    = XRead.GetDateTime(doc, "premiered", "yyyy-MM-dd");
            series.Network       = XRead.GetString(doc, "country");

            if (doc.GetElementsByTagName("actor").Count > 0)
            {
                series.Actors = new BindingList <PersonModel>();

                foreach (XmlNode actor in doc.GetElementsByTagName("actor"))
                {
                    string xmlActor = actor.InnerXml;

                    XmlDocument docActor = XRead.OpenXml("<x>" + xmlActor + "</x>");

                    string name     = XRead.GetString(docActor, "name");
                    string role     = XRead.GetString(docActor, "role");
                    string imageurl = XRead.GetString(docActor, "thumb");

                    var personModel = new PersonModel(name, role, imageurl);

                    series.Actors.Add(personModel);
                }
            }

            return(true);
        }
Example #2
0
        /// <summary>
        /// Scrapes the Country copllection
        /// </summary>
        /// <param name="id">The Id for the scraper.</param>
        /// <param name="threadID">The thread MovieUniqueId.</param>
        /// <param name="output">The scraped Country collection.</param>
        /// <param name="logCatagory">The log catagory.</param>
        /// <returns>
        /// Scrape succeeded [true/false]
        /// </returns>
        public new bool ScrapeCountry(string id, int threadID, out BindingList <string> output, string logCatagory)
        {
            output = new BindingList <string>();

            try
            {
                var xmlDoc = XRead.OpenXml(this.GetHtml("main", threadID, id));
                output = XRead.GetStrings(xmlDoc, "country").ToBindingList();

                return(output.IsFilled());
            }
            catch (Exception ex)
            {
                Log.WriteToLog(LogSeverity.Error, threadID, logCatagory, ex.Message);
                return(false);
            }
        }
Example #3
0
        /// <summary>
        /// Scrapes the Director value
        /// </summary>
        /// <param name="id">The Id for the scraper.</param>
        /// <param name="threadID">The thread MovieUniqueId.</param>
        /// <param name="output">The scraped Director value.</param>
        /// <param name="logCatagory">The log catagory.</param>
        /// <returns>
        /// Scrape succeeded [true/false]
        /// </returns>
        public new bool ScrapeDirector(string id, int threadID, out BindingList <PersonModel> output, string logCatagory)
        {
            output = new BindingList <PersonModel>();

            try
            {
                var xml    = this.GetHtml("main", threadID, id);
                var xmlDoc = XRead.OpenXml(xml);

                foreach (var director in XRead.GetStrings(xmlDoc, "director"))
                {
                    output.Add(new PersonModel(director));
                }

                return(output.IsFilled());
            }
            catch (Exception ex)
            {
                Log.WriteToLog(LogSeverity.Error, threadID, logCatagory, ex.Message);
                return(false);
            }
        }
Example #4
0
        /// <summary>
        /// Loads the series.
        /// </summary>
        /// <param name="series">
        /// The series.
        /// </param>
        /// <returns>
        /// Loaded succeeded
        /// </returns>
        public bool LoadSeries(Series series)
        {
            string seriesName = series.SeriesName;
            string seriesPath = series.GetSeriesPath();

            if (!string.IsNullOrEmpty(seriesName) || !string.IsNullOrEmpty(seriesPath))
            {
                var seriesNameHex = "Set_"
                                    +
                                    FileSystemCharChange.To(
                    seriesName,
                    FileSystemCharChange.ConvertArea.Tv,
                    FileSystemCharChange.ConvertType.Hex) + "_1";

                var seriesNameChar = "Set_"
                                     +
                                     FileSystemCharChange.To(
                    seriesName,
                    FileSystemCharChange.ConvertArea.Tv,
                    FileSystemCharChange.ConvertType.Char) + "_1";

                string nfo = Find.FindNFO("Set_" + seriesName + "_1", seriesPath);

                if (string.IsNullOrEmpty(nfo))
                {
                    nfo = Find.FindNFO(seriesNameHex, seriesPath);

                    if (string.IsNullOrEmpty(nfo))
                    {
                        nfo = Find.FindNFO(seriesNameChar, seriesPath);

                        if (!string.IsNullOrEmpty(nfo))
                        {
                            XmlDocument doc = XRead.OpenPath(nfo);

                            series.SeriesName    = XRead.GetString(doc, "title");
                            series.SeriesID      = XRead.GetUInt(doc, "id");
                            series.Rating        = XRead.GetDouble(doc, "rating");
                            series.Overview      = XRead.GetString(doc, "plot");
                            series.ContentRating = XRead.GetString(doc, "certification");
                            series.Genre         = XRead.GetStrings(doc, "genre").ToBindingList();
                            series.FirstAired    = XRead.GetDateTime(doc, "premiered", "yyyy-MM-dd");
                            series.Network       = XRead.GetString(doc, "country");

                            if (doc.GetElementsByTagName("actor").Count > 0)
                            {
                                series.Actors = new BindingList <PersonModel>();

                                foreach (XmlNode actor in doc.GetElementsByTagName("actor"))
                                {
                                    string xmlActor = actor.InnerXml;

                                    XmlDocument docActor = XRead.OpenXml("<x>" + xmlActor + "</x>");

                                    string name     = XRead.GetString(docActor, "name");
                                    string role     = XRead.GetString(docActor, "role");
                                    string imageurl = XRead.GetString(docActor, "thumb");

                                    var personModel = new PersonModel(name, imageurl, role);

                                    series.Actors.Add(personModel);
                                }
                            }
                        }
                    }
                }
            }

            foreach (var season in series.Seasons)
            {
                foreach (var episode in season.Value.Episodes)
                {
                    if (File.Exists(episode.FilePath.PathAndFilename))
                    {
                        var nfoPath = Path.Combine(
                            episode.FilePath.FolderPath, episode.FilePath.FilenameWithOutExt + ".nfo");

                        if (File.Exists(nfoPath))
                        {
                            var doc = XRead.OpenPath(nfoPath);

                            episode.SeasonNumber  = XRead.GetInt(doc, "season");
                            episode.EpisodeNumber = XRead.GetInt(doc, "episode");
                            episode.EpisodeName   = XRead.GetString(doc, "title");
                            episode.Overview      = XRead.GetString(doc, "plot");
                            episode.FirstAired    = XRead.GetDateTime(doc, "aired");
                        }
                    }
                }
            }

            return(true);
        }