Exemplo n.º 1
0
 public static List<SyndicationItem> GetRssFeedItems(string url)
 {
     Rss20FeedFormatter formatter = new Rss20FeedFormatter();
     XmlReader reader;
     try
     {
          reader = XmlReader.Create(url);
         formatter.ReadFrom(reader);
     }
     catch(XmlException xexp)
     {
         string xml;
         using (WebClient webClient = new WebClient())
         {
             xml = Encoding.UTF8.GetString(webClient.DownloadData(url));
         }
         xml = xml.Replace("BST", "+0100");
         xml = xml.Replace("GMT", "+0000");
         byte[] bytes = System.Text.UTF8Encoding.ASCII.GetBytes(xml);
         reader = XmlReader.Create(new MemoryStream(bytes));
         formatter.ReadFrom(reader);
     }
     reader.Close();
     return formatter.Feed == null ? null : formatter.Feed.Items.ToList();
 }
Exemplo n.º 2
0
        /// <summary>
        /// Wybiera stronę na podstawie adresu url i zapisuje wszystkie wiadomości w kolekcji
        /// </summary>
        /// <param name="lineNews">Lista wiadomości</param>
        /// <param name="category">Kategoria źródłowa do odczytu</param>
        public void ParseXml(ObservableCollection<News> lineNews, Category category)
        {
            try
            {
                using (XmlReader reader = XmlReader.Create(category.Url))
                {
                    var formatter = new Rss20FeedFormatter();
                    formatter.ReadFrom(reader);
                    foreach (var item in formatter.Feed.Items)
                    {
                        lineNews.Add(new News
                        {
                            Title = item.Title.Text,
                            Date = item.PublishDate.DateTime.ToString(),
                            UrlNews = item.Links.First().Uri.ToString(),
                            Description = item.Summary.Text,
                            Category = category.Name,
                            Id = item.Id
                        });

                        if (item.Links.Count > 1 && item.Links.Any(n => n.Uri.ToString().Contains(".jpg")))
                            lineNews.Last().UrlImage = item.Links[1].Uri.ToString();

                        ParseId(lineNews.Last());
                        ParseDescription(lineNews.Last());
                    }
                }
            }
            catch (WebException ex)
            {
                MessageBox.Show(ex.Message, "Syndication Reader");
            }
        }
Exemplo n.º 3
0
        public static IList<Feed> GetFeeds()
        {
            var urls = new[]
                {
                    "http://www.simplyvinay.com/GetBlogRss.aspx", "http://www.bbc.co.uk/blogs/formula1/rss.xml",
                    "http://feeds.feedburner.com/AyendeRahien"
                };
            var list = new List<Feed>();

            foreach (var url in urls)
            {
                using (var reader = new CustomXmlReader(url))
                {
                    if (reader.ReadState == ReadState.Initial)
                        reader.MoveToContent();

                    var atom = new Atom10FeedFormatter();
                    if (atom.CanRead(reader))
                    {
                        atom.ReadFrom(reader);
                        list.AddRange(GenerateFeed(atom.Feed, true));
                    }

                    var rss = new Rss20FeedFormatter();
                    if (rss.CanRead(reader))
                    {
                        rss.ReadFrom(reader);
                        list.AddRange(GenerateFeed(rss.Feed, false));
                    }
                }
            }
            return list;
        }
Exemplo n.º 4
0
 public IEnumerable<SyndicationItem> GetPosts(string FeedUrl, int count)
 {
     using (XmlReader reader = XmlReader.Create(FeedUrl))
     {
         Rss20FeedFormatter feedFormatter = new Rss20FeedFormatter();
         feedFormatter.ReadFrom(reader);
         feedFormatter.PreserveElementExtensions = false;
         return feedFormatter.Feed.Items.Take(3);
     }
 }
Exemplo n.º 5
0
 protected void Page_Load(object sender, EventArgs e)
 {
     XmlReader RSSReader = XmlReader.Create(ConfigurationManager.AppSettings["rssUri"]);
     Rss20FeedFormatter formatter = new Rss20FeedFormatter();
     formatter.ReadFrom(RSSReader);
     lblTitle.Text = formatter.Feed.Title.Text;
     lblDescription.Text = formatter.Feed.Description.Text;
     hlRss.NavigateUrl = formatter.Feed.Links[0].Uri.AbsoluteUri;
     lvRSS.DataSource = formatter.Feed.Items;
     lvRSS.DataBind();
 }
Exemplo n.º 6
0
        public ActionResult Research()
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://blog.firmus-software.co.uk/syndication.axd");

            using (WebResponse response = request.GetResponse())
            {
                using (var reader = new XmlTextReader(response.GetResponseStream()))
                {
                    Rss20FeedFormatter rssFeed = new Rss20FeedFormatter();
                    rssFeed.ReadFrom(reader);
                    return View(rssFeed.Feed);
                }
            }
        }
Exemplo n.º 7
0
 public Rss20FeedFormatter GetFeed(string feedUrl)
 {
     var formatter = new Rss20FeedFormatter();
     try
     {
         using (var reader = XmlReader.Create(feedUrl))
         {
             formatter.ReadFrom(reader);
         }
     }
     catch (FileNotFoundException ex) { }
     catch (WebException ex) { }
     return formatter;
 }
Exemplo n.º 8
0
        internal static TSyndicationFeed LoadFeed <TSyndicationFeed> (XmlReader reader) where TSyndicationFeed : SyndicationFeed, new()
        {
            switch (DetectVersion(reader, ReaderKind.Feed))
            {
            case SyndicationVersions.Atom10:
                Atom10FeedFormatter af = new Atom10FeedFormatter <TSyndicationFeed> ();
                af.ReadFrom(reader);
                return((TSyndicationFeed)af.Feed);

            case SyndicationVersions.Rss20:
            default:             // anything else are rejected by DetectVersion
                Rss20FeedFormatter rf = new Rss20FeedFormatter <TSyndicationFeed> ();
                rf.ReadFrom(reader);
                return((TSyndicationFeed)rf.Feed);
            }
        }
Exemplo n.º 9
0
        // Kontrollerar så att parametern är av rss format.
        public static bool IsValidFeedUrl(string url)
        {
            bool isValid = true;
            try
            {
                XmlReader reader = XmlReader.Create(url);
                Rss20FeedFormatter formatter = new Rss20FeedFormatter();
                formatter.ReadFrom(reader);
                reader.Close();
            }
            catch
            {
                isValid = false;
            }

            return isValid;
        }
Exemplo n.º 10
0
        internal static bool checkURL(string url)
        {
            bool URLcheck;

            try {

                XmlReader reader = XmlReader.Create(url);
                Rss20FeedFormatter formatter = new Rss20FeedFormatter();
                formatter.ReadFrom(reader);
                reader.Close();
                URLcheck = true;
            }
            catch{
                Console.WriteLine("URL är felaktig");
                URLcheck = false;
            }

            return URLcheck;
        }
Exemplo n.º 11
0
 protected override SyndicationFeedFormatter LoadFilterFeeds(IEnumerable<string> feedsToLoad,
     IEnumerable<string> filterTags)
 {
     var formatter = new Rss20FeedFormatter();
     var feedItems = new List<SyndicationItem>();
     foreach (var feed in feedsToLoad)
     {
         try
         {
             using (XmlReader reader = XmlReader.Create(feed))
             {
                 formatter.ReadFrom(reader);
                 feedItems.AddRange(formatter.Feed.Items);
             }
         }
         catch (FileNotFoundException ex) { }
         catch (WebException ex) { }
     }
     formatter.Feed.Items = FilterLoadedFeedItems(feedItems, filterTags);
     return formatter;
 }
        public static TSyndicationFeed Load <TSyndicationFeed>(XmlReader reader) where TSyndicationFeed : SyndicationFeed, new()
        {
            if (reader == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
            }
            Atom10FeedFormatter <TSyndicationFeed> formatter = new Atom10FeedFormatter <TSyndicationFeed>();

            if (formatter.CanRead(reader))
            {
                formatter.ReadFrom(reader);
                return(formatter.Feed as TSyndicationFeed);
            }
            Rss20FeedFormatter <TSyndicationFeed> formatter2 = new Rss20FeedFormatter <TSyndicationFeed>();

            if (!formatter2.CanRead(reader))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(System.ServiceModel.SR.GetString("UnknownFeedXml", new object[] { reader.LocalName, reader.NamespaceURI })));
            }
            formatter2.ReadFrom(reader);
            return(formatter2.Feed as TSyndicationFeed);
        }
Exemplo n.º 13
0
        public static TSyndicationFeed Load <TSyndicationFeed>(XmlReader reader)
            where TSyndicationFeed : SyndicationFeed, new()
        {
            if (reader == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
            }
            Atom10FeedFormatter <TSyndicationFeed> atomSerializer = new Atom10FeedFormatter <TSyndicationFeed>();

            if (atomSerializer.CanRead(reader))
            {
                atomSerializer.ReadFrom(reader);
                return(atomSerializer.Feed as TSyndicationFeed);
            }
            Rss20FeedFormatter <TSyndicationFeed> rssSerializer = new Rss20FeedFormatter <TSyndicationFeed>();

            if (rssSerializer.CanRead(reader))
            {
                rssSerializer.ReadFrom(reader);
                return(rssSerializer.Feed as TSyndicationFeed);
            }
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(SR.Format(SR.UnknownFeedXml, reader.LocalName, reader.NamespaceURI)));
        }
Exemplo n.º 14
0
        // Add URI items
        private void AddURIItems_Click(object sender, EventArgs e)
        {
            imageListView.SuspendLayout();
            string query = "lemur";
            string feedUrl = "http://search.yahooapis.com/ImageSearchService/rss/imageSearch.xml?appid=yahoosearchimagerss&query=" + query;
            using (XmlReader reader = XmlReader.Create(feedUrl))
            {
                Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter();
                rssFormatter.ReadFrom(reader);

                foreach (SyndicationItem rssItem in rssFormatter.Feed.Items)
                {
                    if (rssItem.Links.Count > 0)
                    {
                        // Create a virtual item passing image URL as the item key.
                        string title = rssItem.Title.Text;
                        string link = rssItem.Links[0].Uri.ToString();
                        imageListView.Items.Add(link, title, uriAdaptor);
                    }
                }
            }
            imageListView.ResumeLayout();
        }
Exemplo n.º 15
0
		public void ReadFrom_Feed () {
			string feed =
			@"<rss version=""2.0"" xmlns:a10=""http://www.w3.org/2005/Atom""><channel><title>My Blog Feed</title><link>http://someuri/</link><description>This is a how to sample that demonstrates how to expose a feed using RSS with WCF</description><managingEditor>[email protected]</managingEditor><category>How To Sample Code</category><item><guid isPermaLink=""false"">ItemOneID</guid><link>http://localhost/Content/One</link><title>Item One</title><description>This is the content for item one</description><a10:updated>2008-06-02T10:13:13+03:00</a10:updated></item><item><guid isPermaLink=""false"">ItemTwoID</guid><link>http://localhost/Content/Two</link><title>Item Two</title><description>This is the content for item two</description><a10:updated>2008-06-02T10:13:13+03:00</a10:updated></item><item><guid isPermaLink=""false"">ItemThreeID</guid><link>http://localhost/Content/three</link><title>Item Three</title><description>This is the content for item three</description><a10:updated>2008-06-02T10:13:13+03:00</a10:updated></item></channel></rss>";
			Rss20FeedFormatter f = new Rss20FeedFormatter ();
			f.ReadFrom (CreateReader (feed));
			Assert.IsNotNull (f.Feed, "#1");
		}
Exemplo n.º 16
0
		public void ReadFrom_Docs ()
		{
			Rss20FeedFormatter f = new Rss20FeedFormatter ();
			f.ReadFrom (CreateReader ("<rss version='2.0'><channel><docs>documents</docs></channel></rss>"));
			Assert.IsNotNull (f.Feed, "#1");
			// 'docs' is treated as extensions ...
			Assert.AreEqual (1, f.Feed.ElementExtensions.Count, "#2");
		}
Exemplo n.º 17
0
		public void ReadFrom_WrongDate2 ()
		{
			Rss20FeedFormatter f = new Rss20FeedFormatter ();
			f.ReadFrom (CreateReader ("<rss version='2.0'><channel><lastBuildDate>2000-01-01T00:00:00</lastBuildDate></rss></channel>"));
		}
Exemplo n.º 18
0
		public void ReadFrom_WrongDate1 ()
		{
			Rss20FeedFormatter f = new Rss20FeedFormatter ();
			f.ReadFrom (CreateReader ("<rss version='2.0'><channel><lastBuildDate /></channel></rss>"));
		}
Exemplo n.º 19
0
		public void ReadFrom1 ()
		{
			Rss20FeedFormatter f = new Rss20FeedFormatter ();
			Assert.IsNull (f.Feed, "#1");
			f.ReadFrom (CreateReader ("<rss version='2.0'><channel><title>test</title></channel></rss>"));
			SyndicationFeed feed1 = f.Feed;
			Assert.IsNotNull (f.Feed.Title, "#2");
			Assert.AreEqual ("test", f.Feed.Title.Text, "#3");
			f.ReadFrom (CreateReader ("<rss version='2.0'><channel><title>test</title></channel></rss>"));
			Assert.IsFalse (object.ReferenceEquals (feed1, f.Feed), "#4");
		}
Exemplo n.º 20
0
		public void ReadFrom_Versionless ()
		{
			Rss20FeedFormatter f = new Rss20FeedFormatter ();
			Assert.IsNull (f.Feed, "#1");
			f.ReadFrom (CreateReader ("<rss>"));
		}
Exemplo n.º 21
0
        protected override IEnumerable<IMediaItem> ParseContent(string content)
        {
            StringReader stringReader = new StringReader(content);
            Rss20FeedFormatter feedformatter = new Rss20FeedFormatter();
            feedformatter.PreserveAttributeExtensions = true;
            feedformatter.PreserveElementExtensions = true;
            XmlReader reader = XmlReader.Create(stringReader);
            feedformatter.ReadFrom(reader);

            var result = from item in FromFeed(feedformatter.Feed)
                         let media = GetMediaItemFromRssItem(item, extensionArrays)
                         where media != null
                         select media;

            return result.ToArray();
        }
Exemplo n.º 22
0
 private void OnGetFeed(object sender, RoutedEventArgs e)
 {
     try
     {
         using (XmlReader reader = XmlReader.Create(textUrl.Text))
         {
             var formatter = new Rss20FeedFormatter();
             formatter.ReadFrom(reader);
             this.DataContext = formatter.Feed;
             feedContent.DataContext = formatter.Feed.Items;
             if (timer != null)
                 timer.Stop();
         }
     }
     catch (ArgumentException ex)
     {
         MessageBox.Show(ex.Message);
     }
     catch (WebException ex)
     {
         MessageBox.Show(ex.Message, "Syndication Reader");
     }
     finally
     {
         if (timer != null)
             timer.Dispose();
     }
 }
Exemplo n.º 23
0
        private void Read(Stream stream, Channel c, RssViewModel m)
        {
            var feedFormatter = new Atom10FeedFormatter();
            var rssFormater = new Rss20FeedFormatter();

            XmlReader atomReader = XmlReader.Create(stream);
            SyndicationFeedFormatter f = null;

            if (feedFormatter.CanRead(atomReader))
            {
                feedFormatter.ReadFrom(atomReader);
                atomReader.Close();
                f = feedFormatter;
            }
            else
                if (rssFormater.CanRead(atomReader))
                {
                    rssFormater.ReadFrom(atomReader);
                    atomReader.Close();
                    f = rssFormater;
                }

            if (f == null) return;

            SyndicationFeed feed = f.Feed;
            c.Title = feed.Title.Text;

            Article[] articles = feed.Items.Select(item => new Article
                {
                    PubDate = item.PublishDate.DateTime,
                    Description = item.Summary.Text,
                    Link = item.Links[0].Uri.OriginalString,
                    Title = item.Title.Text,
                }).Select(art => m.AddArticle(art, c)).ToArray();
            m.DeleteArticle(c.Articles.Where(x => !x.IsStared).Except(articles).ToArray(), c);
            c.LastUpdate = DateTime.Now;
        }
Exemplo n.º 24
0
        private SyndicationFeed GetFeed(string url)
        {
            using (XmlReader reader = XmlReader.Create(url))
            {
                Rss20FeedFormatter rss = new Rss20FeedFormatter();
                if (rss.CanRead(reader))
                {
                    rss.ReadFrom(reader);
                    return rss.Feed;
                }

                Atom10FeedFormatter atom = new Atom10FeedFormatter();
                if (atom.CanRead(reader))
                {
                    atom.ReadFrom(reader);
                    return atom.Feed;
                }
            }

            return null;
        }