コード例 #1
0
ファイル: AtomHandler.cs プロジェクト: sazi-y/NewsFeedEngine
 public void GetRssFeed(string rssData, int?categoryId)
 {
     try
     {
         var r       = new Regex(@"\s=\s");
         var y       = r.Replace(rssData, "=");
         var doc     = XDocument.Parse(y);
         var entries = from item in doc.Root.Elements().Where(i => i.Name.LocalName == "entry")
                       select new NewsArticle
         {
             SEOURL  = StaticData.CleanTitleForSEO(item.Elements().First(i => i.Name.LocalName == "title").Value),
             Summary = StaticData.CleanDescription(item.Elements().First(i => i.Name.LocalName == "content")
                                                   .Value),
             Url     = item.Elements().First(i => i.Name.LocalName == "link").Attribute("href")?.Value,
             Picture = StaticData.GetImageSource(item.Elements().First(i => i.Name.LocalName == "content").Value)
                       // ? item.Elements().First(i => i.Name.LocalName == "content").Value)
             ,
             Title       = item.Elements().First(i => i.Name.LocalName == "title").Value,
             CreatedDate =
                 Convert.ToDateTime(item.Elements().First(i => i.Name.LocalName == "updated").Value)
         };
         SaveToDbAtom(entries, rssData, categoryId);
         Console.WriteLine("End!");
     }
     catch (XmlException ex)
     {
         Console.WriteLine("An error has occured" + ex.Message);
     }
 }
コード例 #2
0
ファイル: RssHandler.cs プロジェクト: sazi-y/NewsFeedEngine
        public void GetRssFeed(string rssData, int?categoryId)
        {
            var date = new DateTime();
            var xml  = XDocument.Parse(rssData);

            try
            {
                var rssFeedDataList = xml.Descendants("channel");
                var rssFeedData     = xml.Descendants("item")
                                      .Select(x => new NewsArticle
                {
                    Title   = (string)x.Element("title"),
                    SEOURL  = StaticData.CleanTitleForSEO((string)x.Element("title")),
                    Url     = (string)x.Element("link"),
                    Summary = StaticData.CleanDescription((string)x.Element("description")),
                    //Picture = (string)x.Element("image")?.Element("url") == null?
                    //    "https://www.google.com/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&ved=2ahUKEwiLuZTK_8_iAhUHQhoKHSBKCSUQjRx6BAgBEAQ&url=https%3A%2F%2Fwww.iconfinder.com%2Ficons%2F341106%2Frss_icon&psig=AOvVaw12ydppBMhEOH011OSC8R-1&ust=1559743515365402"
                    //    : (string)x.Element("image")?.Element("url"),
                    Picture = (string)x.Element("enclosure")?.Attribute("url") == null ? (string)x.Element("image")?.Element("url") : (string)x.Element("enclosure")?.Attribute("url"),
                    //CreatedDate = (string)x.Element("pubDate")
                    CreatedDate = !DateTime.TryParse((string)x.Element("pubDate"), CultureInfo.InvariantCulture,
                                                     DateTimeStyles.None, out date)
                            ? DateTime.Now
                            : date
                });
                SaveToDb(rssFeedData, rssData, categoryId);
                Console.WriteLine("End!");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }