コード例 #1
0
        public string ReadFromFolderContents(ChilledDbContext context, int id)
        {
            _feedMeta = context.RSSHeaders.FirstOrDefault(rss => rss.RSSNumber == id);
            if (_feedMeta == null)
            {
                return("");
            }
            var feedBuilder = new MemoryStream();

            using (var xml = XmlWriter.Create(feedBuilder, new XmlWriterSettings()
            {
                Encoding = Encoding.UTF8
            }))
            {
                xml.WriteStartDocument();
                WriteRSSHeader(xml);
                WriteChannelHeader(xml);
                WriteLogo(xml);
                WriteItunesStuff(xml);
                WriteAtomFeedInfo(xml);
                WritePodcastHeader(xml);

                var podcasts = context.Podcasts.Include(p => p.GemData).Where(pod => pod.FeedId == id).OrderByDescending(p => p.PubDate);
                foreach (var podcast in podcasts)
                {
                    WritePodcast(xml, podcast);
                }
                xml.WriteEndDocument();
            }
            feedBuilder.Position = 0;
            using (var reader = new StreamReader(feedBuilder))
            {
                return(reader.ReadToEnd());
            }
        }
コード例 #2
0
        public static void FillOutPodcastMeta(ChilledDbContext context, Paths paths)
        {
            var header0 = context.RSSHeaders.FirstOrDefault(rss => rss.RSSNumber == 0);

            if (header0 == null)
            {
                var _feedMeta0 = GetLinesOfMetadata(Path.Combine(paths.PodcastDbDirectory, $"Metadata_0.txt"));
                var meta0      = new RSSHeader()
                {
                    RSSNumber          = 0,
                    ChannelLink        = _feedMeta0["channellink"],
                    WebMaster          = _feedMeta0["webmaster"],
                    ManagingEditor     = _feedMeta0["managingeditor"],
                    LogoTitle          = _feedMeta0["logotitle"],
                    LogoUrl            = _feedMeta0["logourl"],
                    LogoLink           = _feedMeta0["logolink"],
                    ITunesName         = _feedMeta0["itunesname"],
                    ITunesEmail        = _feedMeta0["itunesemail"],
                    ITunesCategory     = _feedMeta0["itunescategory"],
                    ITunesSubCategory  = _feedMeta0["itunessubcategory"],
                    ITunesCategory2    = _feedMeta0["itunescategory2"],
                    ITunesSubCategory2 = _feedMeta0["itunessubcategory2"],
                    ITunesKeywords     = _feedMeta0["ituneskeywords"],
                    ITunesExplicit     = _feedMeta0["itunesexplicit"],
                    ITunesImage        = _feedMeta0["itunesimage"],
                    AtomLink           = _feedMeta0["atomlink"],
                    PubDate            = _feedMeta0["pubdate"],
                    Title         = _feedMeta0["title"],
                    Author        = _feedMeta0["author"],
                    Description   = _feedMeta0["description"],
                    Subtitle      = _feedMeta0["subtitle"],
                    LastBuildDate = _feedMeta0["lastbuilddate"]
                };
                context.RSSHeaders.Add(meta0);
                context.SaveChanges();
            }
            var header1 = context.RSSHeaders.FirstOrDefault(rss => rss.RSSNumber == 1);

            if (header1 == null)
            {
                var _feedMeta1 = GetLinesOfMetadata(Path.Combine(paths.PodcastDbDirectory, $"Metadata_1.txt"));
                var meta1      = new RSSHeader()
                {
                    RSSNumber          = 1,
                    ChannelLink        = _feedMeta1["channellink"],
                    WebMaster          = _feedMeta1["webmaster"],
                    ManagingEditor     = _feedMeta1["managingeditor"],
                    LogoTitle          = _feedMeta1["logotitle"],
                    LogoUrl            = _feedMeta1["logourl"],
                    LogoLink           = _feedMeta1["logolink"],
                    ITunesName         = _feedMeta1["itunesname"],
                    ITunesEmail        = _feedMeta1["itunesemail"],
                    ITunesCategory     = _feedMeta1["itunescategory"],
                    ITunesSubCategory  = _feedMeta1["itunessubcategory"],
                    ITunesCategory2    = _feedMeta1["itunescategory2"],
                    ITunesSubCategory2 = _feedMeta1["itunessubcategory2"],
                    ITunesKeywords     = _feedMeta1["ituneskeywords"],
                    ITunesExplicit     = _feedMeta1["itunesexplicit"],
                    ITunesImage        = _feedMeta1["itunesimage"],
                    AtomLink           = _feedMeta1["atomlink"],
                    PubDate            = _feedMeta1["pubdate"],
                    Title         = _feedMeta1["title"],
                    Author        = _feedMeta1["author"],
                    Description   = _feedMeta1["description"],
                    Subtitle      = _feedMeta1["subtitle"],
                    LastBuildDate = _feedMeta1["lastbuilddate"]
                };
                context.RSSHeaders.Add(meta1);
                context.SaveChanges();
            }
        }