public override void Run() { if (!Active()) return; try { XmlWriterSettings settings = new XmlWriterSettings { Indent = true, NewLineOnAttributes = true, Encoding = Encoding.ASCII }; using (XmlWriter writer = XmlWriter.Create(Location(), settings)) { writer.WriteStartDocument(); writer.WriteStartElement("TVRename"); XmlHelper.WriteAttributeToXml(writer,"Version","2.1"); writer.WriteStartElement("MissingItems"); foreach (Item action in TheActionList) { if (!(action is ItemMissing)) continue; ItemMissing missing = (ItemMissing)(action); writer.WriteStartElement("MissingItem"); XmlHelper.WriteElementToXml(writer,"id",missing.Episode.Show.TvdbCode); XmlHelper.WriteElementToXml(writer, "title",missing.Episode.TheSeries.Name); XmlHelper.WriteElementToXml(writer, "season", Helpers.Pad(missing.Episode.AppropriateSeasonNumber)); XmlHelper.WriteElementToXml(writer, "episode", Helpers.Pad(missing.Episode.AppropriateEpNum)); XmlHelper.WriteElementToXml(writer, "episodeName",missing.Episode.Name); XmlHelper.WriteElementToXml(writer, "description",missing.Episode.Overview); writer.WriteStartElement("pubDate"); DateTime? dt = missing.Episode.GetAirDateDT(true); if (dt != null) writer.WriteValue(dt.Value.ToString("F")); writer.WriteEndElement(); writer.WriteEndElement(); // MissingItem } writer.WriteEndElement(); // MissingItems writer.WriteEndElement(); // tvrename writer.WriteEndDocument(); } } catch (Exception e) { LOGGER.Error(e); } }
protected override void Do() { XmlWriterSettings settings = new XmlWriterSettings { Indent = true, NewLineOnAttributes = true, Encoding = Encoding.ASCII }; using (XmlWriter writer = XmlWriter.Create(Location(), settings)) { writer.WriteStartDocument(); writer.WriteStartElement("TVRename"); writer.WriteAttributeToXml("Version", "2.1"); writer.WriteStartElement("MissingItems"); foreach (var missing in TheActionList.MissingEpisodes.ToList()) { writer.WriteStartElement("MissingItem"); writer.WriteElement("id", missing.MissingEpisode.Show.TvdbCode); writer.WriteElement("title", missing.MissingEpisode.TheCachedSeries.Name); writer.WriteElement("season", Helpers.Pad(missing.MissingEpisode.AppropriateSeasonNumber)); writer.WriteElement("episode", Helpers.Pad(missing.MissingEpisode.AppropriateEpNum)); writer.WriteElement("episodeName", missing.MissingEpisode.Name); writer.WriteElement("description", missing.MissingEpisode.Overview); writer.WriteStartElement("pubDate"); DateTime?dt = missing.MissingEpisode.GetAirDateDt(true); if (dt != null) { writer.WriteValue(dt.Value.ToString("F")); } writer.WriteEndElement(); writer.WriteEndElement(); // MissingItem } writer.WriteEndElement(); // MissingItems writer.WriteEndElement(); // tvrename writer.WriteEndDocument(); } }
protected override bool Generate(System.IO.Stream str, List <ProcessedEpisode> elist) { DirFilesCache dfc = new DirFilesCache(); try { XmlWriterSettings settings = new XmlWriterSettings { Indent = true, NewLineOnAttributes = true, Encoding = System.Text.Encoding.ASCII }; using (XmlWriter writer = XmlWriter.Create(str, settings)) { writer.WriteStartDocument(); writer.WriteStartElement("WhenToWatch"); foreach (ProcessedEpisode ei in elist) { writer.WriteStartElement("item"); XmlHelper.WriteElementToXml(writer, "id", ei.TheSeries.TvdbCode); XmlHelper.WriteElementToXml(writer, "SeriesName", ei.TheSeries.Name); XmlHelper.WriteElementToXml(writer, "SeasonNumber", Helpers.Pad(ei.AppropriateSeasonNumber)); XmlHelper.WriteElementToXml(writer, "EpisodeNumber", Helpers.Pad(ei.AppropriateEpNum)); XmlHelper.WriteElementToXml(writer, "EpisodeName", ei.Name); writer.WriteStartElement("available"); DateTime?airdt = ei.GetAirDateDT(true); if (airdt.HasValue && airdt.Value.CompareTo(DateTime.Now) < 0) // has aired { List <FileInfo> fl = TVDoc.FindEpOnDisk(dfc, ei); if ((fl != null) && (fl.Count > 0)) { writer.WriteValue("true"); } else if (ei.Show.DoMissingCheck) { writer.WriteValue("false"); } } writer.WriteEndElement(); XmlHelper.WriteElementToXml(writer, "Overview", ei.Overview); writer.WriteStartElement("FirstAired"); DateTime?dt = ei.GetAirDateDT(true); if (dt != null) { writer.WriteValue(dt.Value.ToString("F")); } writer.WriteEndElement(); XmlHelper.WriteElementToXml(writer, "Rating", ei.EpisodeRating); XmlHelper.WriteElementToXml(writer, "filename", ei.Filename); writer.WriteEndElement(); // item } writer.WriteEndElement(); writer.WriteEndDocument(); } return(true); } // try catch (Exception e) { if ((!Doc.Args.Unattended) && (!Doc.Args.Hide)) { MessageBox.Show(e.Message); } LOGGER.Error(e); return(false); } }
protected override bool Generate([NotNull] System.IO.Stream str, [NotNull] List <ProcessedEpisode> elist) { DirFilesCache dfc = new DirFilesCache(); XmlWriterSettings settings = new XmlWriterSettings { Indent = true, NewLineOnAttributes = true, Encoding = System.Text.Encoding.ASCII }; using (XmlWriter writer = XmlWriter.Create(str, settings)) { writer.WriteStartDocument(); writer.WriteStartElement("WhenToWatch"); foreach (ProcessedEpisode ei in elist) { writer.WriteStartElement("item"); writer.WriteElement("id", ei.TheSeries.TvdbCode); writer.WriteElement("SeriesName", ei.TheSeries.Name); writer.WriteElement("SeasonNumber", Helpers.Pad(ei.AppropriateSeasonNumber)); writer.WriteElement("EpisodeNumber", Helpers.Pad(ei.AppropriateEpNum)); writer.WriteElement("EpisodeName", ei.Name); writer.WriteStartElement("available"); DateTime?airdt = ei.GetAirDateDt(true); if (airdt.HasValue && airdt.Value.CompareTo(DateTime.Now) < 0) // has aired { List <FileInfo> fl = dfc.FindEpOnDisk(ei); if (fl.Count > 0) { writer.WriteValue("true"); } else if (ei.Show.DoMissingCheck) { writer.WriteValue("false"); } else { writer.WriteValue("no missing check"); } } else { writer.WriteValue("future"); } writer.WriteEndElement(); writer.WriteElement("Overview", ei.Overview); writer.WriteStartElement("FirstAired"); DateTime?dt = ei.GetAirDateDt(true); if (dt != null) { writer.WriteValue(dt.Value.ToString("F")); } writer.WriteEndElement(); writer.WriteElement("Rating", ei.EpisodeRating); writer.WriteElement("filename", ei.Filename); writer.WriteEndElement(); // item } writer.WriteEndElement(); writer.WriteEndDocument(); } return(true); }