/// <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); }
public static List <ExportTemplate> GetExportTemplates(string type = "") { var tempInfo = Directory.GetFiles(Path.Combine(Environment.CurrentDirectory, "Templates"), "template.xml", SearchOption.AllDirectories); var templates = new List <ExportTemplate>(); foreach (var file in tempInfo) { XmlDocument xmlReader = XRead.OpenPath(file); if (xmlReader == null) { XtraMessageBox.Show( string.Format( "The template configuration file '{0}' is invalid!", Path.GetFileName(file) ), "Invalid Export Template" ); } var templateName = XRead.GetString(xmlReader, "name", 1); try { var author = new ExportTemplate.Author(); var xmlAuthor = xmlReader.GetElementsByTagName("author")[0].InnerXml; XmlDocument temp = XRead.OpenXml("<x>" + xmlAuthor + "</x>"); if (type != "") { if (XRead.GetString(xmlReader, "type") != type) { continue; } } templates.Add(new ExportTemplate { name = templateName, date = XRead.GetString(xmlReader, "date"), file = Path.Combine(Path.GetDirectoryName(file), XRead.GetString(xmlReader, "templatefile")), description = XRead.GetString(xmlReader, "description"), outputformat = XRead.GetString(xmlReader, "outputformat"), type = XRead.GetString(xmlReader, "type"), author = new ExportTemplate.Author { name = XRead.GetString(temp, "name"), website = XRead.GetString(temp, "website"), email = XRead.GetString(temp, "email") } }); } catch (Exception e) { if (e is XmlException || e is InvalidOperationException) { XtraMessageBox.Show( string.Format( "The template '{0}' is invalid!", templateName ), "Invalid Export Template" ); } else { throw e; } } } return(templates); }
/// <summary> /// Loads the movie. /// </summary> /// <param name="movieModel"> /// The movie model. /// </param> public void LoadMovie(MovieModel movieModel) { XmlDocument xmlReader = XRead.OpenPath(movieModel.NfoPathOnDisk); if (xmlReader == null) { return; } // Ids XmlNodeList ids = xmlReader.GetElementsByTagName("id"); foreach (XmlElement id in ids) { if (id.Attributes["moviedb"] == null) { movieModel.ImdbId = id.InnerXml.Replace("tt", string.Empty); } else { switch (id.Attributes["moviedb"].Value) { case "tmdb": movieModel.TmdbId = id.InnerXml; break; } } } // Title movieModel.Title = XRead.GetString(xmlReader, "title"); // Year movieModel.Year = XRead.GetInt(xmlReader, "year"); // Release Date movieModel.ReleaseDate = XRead.GetDateTime(xmlReader, "releasedate"); // Rating movieModel.Rating = XRead.GetDouble(xmlReader, "rating"); // Votes movieModel.Votes = XRead.GetInt(xmlReader, "votes"); // Plot movieModel.Plot = XRead.GetString(xmlReader, "plot"); // Outline movieModel.Outline = XRead.GetString(xmlReader, "outline"); // Tagline movieModel.Tagline = XRead.GetString(xmlReader, "tagline"); // Runtime string check = XRead.GetString(xmlReader, "runtime"); if (check.Contains("m")) { movieModel.RuntimeInHourMin = check; } else { movieModel.Runtime = XRead.GetInt(xmlReader, "runtime"); } // Mpaa movieModel.Mpaa = XRead.GetString(xmlReader, "mpaa"); // Certification movieModel.Certification = XRead.GetString(xmlReader, "certification"); // Company movieModel.SetStudio = XRead.GetString(xmlReader, "company"); if (movieModel.SetStudio == string.Empty) { movieModel.SetStudio = XRead.GetString(xmlReader, "studio"); } // Genre string genreList = XRead.GetString(xmlReader, "genre"); movieModel.GenreAsString = genreList.Replace(" / ", ","); // Credits movieModel.Writers.Clear(); XmlNodeList writers = xmlReader.GetElementsByTagName("writer"); foreach (XmlElement writer in writers) { movieModel.Writers.Add(new PersonModel(writer.InnerXml)); } // Director string directorList = XRead.GetString(xmlReader, "director"); movieModel.DirectorAsString = directorList.Replace(" / ", ","); // Country movieModel.CountryAsString = XRead.GetString(xmlReader, "country"); // Language movieModel.LanguageAsString = XRead.GetString(xmlReader, "language"); // Actors XmlNodeList actors = xmlReader.GetElementsByTagName("actor"); movieModel.Cast.Clear(); foreach (XmlElement actor in actors) { XmlDocument document = XRead.OpenXml("<x>" + actor.InnerXml + "</x>"); string name = XRead.GetString(document, "name"); string role = XRead.GetString(document, "role"); string thumb = XRead.GetString(document, "thumb"); movieModel.Cast.Add(new PersonModel(name, thumb, role)); } movieModel.VideoSource = XRead.GetString(xmlReader, "videosource"); // Watched movieModel.Watched = XRead.GetBool(xmlReader, "watched"); // Sets XmlNodeList sets = xmlReader.GetElementsByTagName("set"); foreach (XmlElement set in sets) { if (set.HasAttribute("order")) { int order = int.Parse(set.GetAttribute("order")); MovieSetManager.AddMovieToSet(movieModel, set.InnerXml, order); } else { MovieSetManager.AddMovieToSet(movieModel, set.InnerXml); } } }
/// <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); }