コード例 #1
0
ファイル: MissingXML.cs プロジェクト: bravesoftdz/tvrename
        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);
            }
        }
コード例 #2
0
ファイル: MissingXML.cs プロジェクト: hummigbird1/tvrename
        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();
            }
        }
コード例 #3
0
ファイル: UpcomingXML.cs プロジェクト: bravesoftdz/tvrename
        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);
            }
        }
コード例 #4
0
        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);
        }