/// <summary> /// Generates the series output. /// </summary> /// <param name="series">The series.</param> /// <returns> /// Generates a XML output /// </returns> public string GenerateSeriesOutput(Series series) { using (var stringWriter = new StringWriterWithEncoding(Encoding.UTF8)) { using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, this.GetSettings())) { this.XmlWriterStart(xmlWriter); xmlWriter.WriteStartElement("tvshow"); // Id XWrite.WriteEnclosedElement(xmlWriter, "id", series.SeriesID); // Title XWrite.WriteEnclosedElement(xmlWriter, "title", series.SeriesName); // Rating XWrite.WriteEnclosedElement(xmlWriter, "rating", series.Rating); // Plot XWrite.WriteEnclosedElement(xmlWriter, "plot", series.Overview); // Certification XWrite.WriteEnclosedElement(xmlWriter, "certification", series.ContentRating); // Genre foreach (string genre in series.Genre) { XWrite.WriteEnclosedElement(xmlWriter, "genre", genre); } // Premiered if (series.FirstAired != null) { XWrite.WriteEnclosedElement( xmlWriter, "premiered", series.FirstAired.Value.ToString("yyyy-MM-dd")); } // Company XWrite.WriteEnclosedElement(xmlWriter, "company", series.Network); // Country XWrite.WriteEnclosedElement(xmlWriter, "country", series.Country); // Actor foreach (PersonModel actor in series.Actors) { xmlWriter.WriteStartElement("actor"); XWrite.WriteEnclosedElement(xmlWriter, "name", actor.Name); XWrite.WriteEnclosedElement(xmlWriter, "role", actor.Role); XWrite.WriteEnclosedElement(xmlWriter, "thumb", actor.ImageUrl); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } return(stringWriter.ToString()); } }
/// <summary> /// Generates the single episode output. /// </summary> /// <param name="episode">The episode.</param> /// <param name="writeDocumentTags">if set to <c>true</c> [write document tags].</param> /// <returns> /// Episode Output /// </returns> public string GenerateSingleEpisodeOutput(Episode episode, bool writeDocumentTags) { using (var stringWriter = new StringWriterWithEncoding(Encoding.UTF8)) { using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, this.GetSettings())) { if (writeDocumentTags) { this.XmlWriterStart(xmlWriter); } xmlWriter.WriteStartElement("episodedetails"); // Season int?sn = episode.SeasonNumber; if (sn == null || sn < 0) { sn = 0; } XWrite.WriteEnclosedElement(xmlWriter, "season", sn); // Episode XWrite.WriteEnclosedElement(xmlWriter, "episode", episode.EpisodeNumber); // Title XWrite.WriteEnclosedElement(xmlWriter, "title", episode.EpisodeName); // Plot XWrite.WriteEnclosedElement(xmlWriter, "plot", episode.Overview); XWrite.WriteEnclosedElement(xmlWriter, "aired", episode.FirstAired); XWrite.WriteEnclosedElement(xmlWriter, "fileinfo", "template"); xmlWriter.WriteEndElement(); if (writeDocumentTags) { xmlWriter.WriteEndDocument(); } } return(stringWriter.ToString().Replace("<fileinfo>template</fileinfo>", this.GetFileInfo(episode: episode))); } }
/// <summary> /// Generates the single episode output. /// </summary> /// <param name="episode">The episode.</param> /// <param name="writeDocumentTags">if set to <c>true</c> [write document tags].</param> /// <returns> /// Episode Output /// </returns> public string GenerateSingleEpisodeOutput(Episode episode, bool writeDocumentTags) { using (var stringWriter = new StringWriterWithEncoding(Encoding.UTF8)) { using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, this.GetSettings())) { if (writeDocumentTags) { this.XmlWriterStart(xmlWriter); } xmlWriter.WriteStartElement("episodedetails"); // Season XWrite.WriteEnclosedElement(xmlWriter, "season", episode.SeasonNumber); // Episode XWrite.WriteEnclosedElement(xmlWriter, "episode", episode.EpisodeNumber); // Title XWrite.WriteEnclosedElement(xmlWriter, "title", episode.EpisodeName); // Plot XWrite.WriteEnclosedElement(xmlWriter, "plot", episode.Overview); xmlWriter.WriteEndElement(); if (writeDocumentTags) { xmlWriter.WriteEndDocument(); } } return(stringWriter.ToString()); } }
/// <summary> /// Generates the movie output. /// </summary> /// <param name="movieModel">The movie model.</param> /// <returns> /// Generates a Movie NFO /// </returns> public string GenerateMovieOutput(MovieModel movieModel) { using (var stringWriter = new StringWriterWithEncoding(Encoding.UTF8)) { using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, this.GetSettings())) { this.XmlWriterStart(xmlWriter); xmlWriter.WriteStartElement("movie"); // Title XWrite.WriteEnclosedElement(xmlWriter, "title", movieModel.Title); // Year XWrite.WriteEnclosedElement(xmlWriter, "year", movieModel.Year); // Top 250 XWrite.WriteEnclosedElement(xmlWriter, "top250", movieModel.Top250); // Release Date XWrite.WriteEnclosedElement( xmlWriter, "releasedate", this.ProcessReleaseDate(movieModel.ReleaseDate)); // Rating XWrite.WriteEnclosedElement(xmlWriter, "rating", this.ProcessRating(movieModel.Rating)); // Votes XWrite.WriteEnclosedElement(xmlWriter, "votes", movieModel.Votes); // Plot XWrite.WriteEnclosedElement(xmlWriter, "plot", movieModel.Plot); // Tagline XWrite.WriteEnclosedElement(xmlWriter, "tagline", movieModel.Tagline); // Runtime XWrite.WriteEnclosedElement( xmlWriter, "runtime", this.ProcessRuntime(movieModel.Runtime, movieModel.RuntimeInHourMin)); // Mpaa XWrite.WriteEnclosedElement(xmlWriter, "mpaa", movieModel.Mpaa); // Certification XWrite.WriteEnclosedElement(xmlWriter, "certification", movieModel.Certification); // Watched XWrite.WriteEnclosedElement(xmlWriter, "watched", movieModel.Watched); // Imdb MovieUniqueId string imdbid = movieModel.ImdbId; if (!string.IsNullOrEmpty(imdbid)) { imdbid = string.Format("tt{0}", imdbid); } XWrite.WriteEnclosedElement(xmlWriter, "id", imdbid); // Tmdb MovieUniqueId XWrite.WriteEnclosedElement(xmlWriter, "id", movieModel.TmdbId, "moviedb", "tmdb"); // Genre foreach (string genre in movieModel.Genre) { XWrite.WriteEnclosedElement(xmlWriter, "genre", genre); } // Credits if (movieModel.Writers.Count > 0) { xmlWriter.WriteStartElement("credits"); foreach (PersonModel writer in movieModel.Writers) { XWrite.WriteEnclosedElement(xmlWriter, "writer", writer.Name); } xmlWriter.WriteEndElement(); } // Director string writerList = movieModel.WritersAsString.Replace(",", " / "); XWrite.WriteEnclosedElement(xmlWriter, "director", writerList); // Company XWrite.WriteEnclosedElement(xmlWriter, "company", movieModel.SetStudio); // Actor int count = 1; foreach (PersonModel actor in movieModel.Cast) { count++; xmlWriter.WriteStartElement("actor"); XWrite.WriteEnclosedElement(xmlWriter, "name", actor.Name); XWrite.WriteEnclosedElement(xmlWriter, "role", actor.Role); XWrite.WriteEnclosedElement(xmlWriter, "thumb", actor.ImageUrl); xmlWriter.WriteEndElement(); if (count == 10) { break; } } // Sets List <SetReturnModel> sets = MovieSetManager.GetSetReturnList(movieModel); if (sets.Count > 0) { xmlWriter.WriteStartElement("movie"); foreach (SetReturnModel set in sets) { if (set.Order == null) { XWrite.WriteEnclosedElement(xmlWriter, "set", set.SetName); } else { XWrite.WriteEnclosedElement( xmlWriter, "set", set.SetName, "order", set.Order.ToString()); } } xmlWriter.WriteEndElement(); } XWrite.WriteEnclosedElement(xmlWriter, "videosource", movieModel.VideoSource); xmlWriter.WriteEndElement(); } return(stringWriter.ToString()); } }
public static string GenerateMovieMeterXml(DownloadItem downloadItem, string idType, string value) { var apiProxy = (IMMApi)XmlRpcProxyGen.Create(typeof(IMMApi)); const string imdb = "imdb"; const string search = "search"; var filmDetail = new FilmDetail(); if (idType == imdb) { value = apiProxy.RetrieveByImdb(getSessionKey(), value); } else if (idType == search) { var filmlist = apiProxy.Search(getSessionKey(), value); if (filmlist.Length > 0) { value = filmlist[0].filmId; } else { return(string.Empty); } } filmDetail = apiProxy.RetrieveDetails(getSessionKey(), value.ToInt()); var movieMeter = new MovieMeter(); using (var stringWriter = new StringWriterWithEncoding(movieMeter.HtmlEncoding)) { using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter)) { xmlWriter.WriteStartElement("moviemeter"); XWrite.WriteEnclosedElement(xmlWriter, "id", filmDetail.filmId); XWrite.WriteEnclosedElement(xmlWriter, "imdbid", filmDetail.imdb); XWrite.WriteEnclosedElement(xmlWriter, "title", filmDetail.title); XWrite.WriteEnclosedElement(xmlWriter, "year", filmDetail.year); foreach (var actor in filmDetail.actors) { XWrite.WriteEnclosedElement(xmlWriter, "actor", actor.name); } foreach (var genre in filmDetail.genres) { XWrite.WriteEnclosedElement(xmlWriter, "genre", genre); } XWrite.WriteEnclosedElement(xmlWriter, "plot", filmDetail.plot); foreach (var actor in filmDetail.directors) { XWrite.WriteEnclosedElement(xmlWriter, "director", actor.name); } XWrite.WriteEnclosedElement(xmlWriter, "releasedate", filmDetail.dates_cinema[0].date); foreach (var country in filmDetail.countries) { XWrite.WriteEnclosedElement(xmlWriter, "country", country.name, "code", country.iso_3166_1); } XWrite.WriteEnclosedElement(xmlWriter, "countries", filmDetail.countries_text); XWrite.WriteEnclosedElement(xmlWriter, "rating", filmDetail.average); xmlWriter.WriteEndElement(); } return(stringWriter.ToString()); } }
public string GetFileInfo(MovieModel movie = null, Episode episode = null) { FileInfoModel fileInfoModel; if (movie != null) { fileInfoModel = movie.FileInfo; } else if (episode != null) { fileInfoModel = episode.FileInfo; } else { return(string.Empty); } string output; using (var stringWriter = new StringWriterWithEncoding(Encoding.UTF8)) { using (var xmlWriter = XmlWriter.Create(stringWriter, this.GetSettings())) { XWrite.WriteEnclosedElement(xmlWriter, "videooutput", Get.MediaInfo.DoReplace(fileInfoModel)); } output = stringWriter.ToString() + Environment.NewLine; } using (var stringWriter = new StringWriterWithEncoding(Encoding.UTF8)) { using (var xmlWriter = XmlWriter.Create(stringWriter, this.GetSettings())) { xmlWriter.WriteStartElement("fileinfo"); xmlWriter.WriteStartElement("video"); // Codec XWrite.WriteEnclosedElement(xmlWriter, "codec", fileInfoModel.Codec); // Aspect XWrite.WriteEnclosedElement(xmlWriter, "aspect", fileInfoModel.AspectRatio); // Width XWrite.WriteEnclosedElement(xmlWriter, "width", fileInfoModel.Width); // Height XWrite.WriteEnclosedElement(xmlWriter, "height", fileInfoModel.Height); xmlWriter.WriteEndElement(); foreach (var audioStream in fileInfoModel.AudioStreams) { xmlWriter.WriteStartElement("audio"); // Codec XWrite.WriteEnclosedElement(xmlWriter, "codec", audioStream.CodecID); // Language XWrite.WriteEnclosedElement(xmlWriter, "codec", audioStream.Language); // Channels XWrite.WriteEnclosedElement(xmlWriter, "channels", audioStream.Channels); xmlWriter.WriteEndElement(); } foreach (var subtitleStream in fileInfoModel.SubtitleStreams) { xmlWriter.WriteStartElement("subtitle"); // Codec XWrite.WriteEnclosedElement(xmlWriter, "codec", subtitleStream.Language); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } return(Regex.Replace(output + stringWriter, @"\<\?xml.*?\>", string.Empty) .Replace(Environment.NewLine + Environment.NewLine, Environment.NewLine) .Trim()); } }