/// <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); }
/// <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); } }
/// <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); } }
/// <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); }