/// <summary> /// Provides example code for the SiteSummarySlashSyndicationExtension class. /// </summary> public static void ClassExample() { // Framework auto-discovers supported extensions based on XML namespace attributes (xmlns) defined on root of resource RssFeed feed = RssFeed.Create(new Uri("http://www.example.com/feed.aspx?format=rss")); // Extensible framework entities provide properties/methods to determine if entity is extended and predicate based seaching against available extensions if (feed.Channel.HasExtensions) { SiteSummarySlashSyndicationExtension channelExtension = feed.Channel.FindExtension(SiteSummarySlashSyndicationExtension.MatchByType) as SiteSummarySlashSyndicationExtension; if (channelExtension != null) { // Process channel extension } } foreach (RssItem item in feed.Channel.Items) { if (item.HasExtensions) { SiteSummarySlashSyndicationExtension itemExtension = item.FindExtension(SiteSummarySlashSyndicationExtension.MatchByType) as SiteSummarySlashSyndicationExtension; if (itemExtension != null) { // Process extension for current item } } } // By default the framework will automatically determine what XML namespace attributes (xmlns) to write // on the root of the resource based on the extensions applied to extensible parent and child entities using (FileStream stream = new FileStream("Feed.xml", FileMode.Create, FileAccess.Write)) { feed.Save(stream); } }
// Get slash extension data private void SetSlashExtension(AdvancedRssItem RssItemSource, RssItem RssItemDest) { //TODO:we just use it for comment number //Number of comment if (RssItemSource.Commentnumber >= 0) { SiteSummarySlashSyndicationExtension SlashExtension = new SiteSummarySlashSyndicationExtension(); SlashExtension.Context.Comments = RssItemSource.Commentnumber; RssItemDest.AddExtension(SlashExtension); } }
private AdvancedRssChannel GetRssChannelFromRss(Uri url) { AdvancedRssChannel Channel = new AdvancedRssChannel(); //Argotic object declaration RssFeed ArgoticRssFeed = new RssFeed(); //Load from uri try { ArgoticRssFeed.Load(url, null, null); } catch { } //Init Channel basic data GetBasicChannelData(ArgoticRssFeed.Channel, Channel); //Init data for each item foreach (RssItem item in ArgoticRssFeed.Channel.Items) { //Init basic data AdvancedRssItem RssItem = new AdvancedRssItem(); GetBasicItemData(item, RssItem); //Extensions type content if (item.HasExtensions) { //Dublin Core Extension DublinCoreMetadataTermsSyndicationExtension BublinExtension = (DublinCoreMetadataTermsSyndicationExtension) item.FindExtension(DublinCoreMetadataTermsSyndicationExtension.MatchByType); if (BublinExtension != null) { GetDublinCoreExtension(BublinExtension.Context, RssItem); } //Dublin Extension DublinCoreMetadataTermsSyndicationExtension DublinExtension = (DublinCoreMetadataTermsSyndicationExtension) item.FindExtension(DublinCoreMetadataTermsSyndicationExtension.MatchByType); if (DublinExtension != null) { GetDublinCoreExtension(DublinExtension.Context, RssItem); } //Slash Extension SiteSummarySlashSyndicationExtension SlashExtension = (SiteSummarySlashSyndicationExtension) item.FindExtension(SiteSummarySlashSyndicationExtension.MatchByType); if (SlashExtension != null) { GetSlashCoreExtension(SlashExtension.Context, RssItem); /*-----------------------------------------------------------------------------------*/ /* TODO: Comment problem */ /* Arrangment for a stupid argotic buc, they wrote "coment" and no "comment" !!!!!! */ /* The news module comment URL, it's the URL + #comments */ /*-----------------------------------------------------------------------------------*/ if (SlashExtension.Context.Comments >= 0 && RssItem.Commenturl == null) { RssItem.Commenturl = item.Link.AbsoluteUri + "#comments"; } /*-----------------------------------------------------------------------------------*/ } //Geo localization BasicGeocodingSyndicationExtension GMLExtension = (BasicGeocodingSyndicationExtension) item.FindExtension(BasicGeocodingSyndicationExtension.MatchByType); if (GMLExtension != null) { GetBasicGeocodingExtension(GMLExtension.Context, RssItem); } ////Yahoo media tag YahooMediaSyndicationExtension YahooExtension = (YahooMediaSyndicationExtension)item.FindExtension(YahooMediaSyndicationExtension.MatchByType); if (YahooExtension != null) { RssItem.RssfeedItemsMedia = new List <AdvancedRssItemMedia>(); GetYahooExtension(YahooExtension.Context, RssItem.RssfeedItemsMedia); } } Channel.RssItems.Add(RssItem); } return(Channel); }