/// <summary> /// Provides example code for the YahooMediaSyndicationExtension 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) { YahooMediaSyndicationExtension channelExtension = feed.Channel.FindExtension(YahooMediaSyndicationExtension.MatchByType) as YahooMediaSyndicationExtension; if (channelExtension != null) { // Process channel extension } } foreach (RssItem item in feed.Channel.Items) { if (item.HasExtensions) { YahooMediaSyndicationExtension itemExtension = item.FindExtension(YahooMediaSyndicationExtension.MatchByType) as YahooMediaSyndicationExtension; 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 Yahoo extension data private void SetYahooExtension(IList <AdvancedRssItemMedia> ilarim, YahooMediaSyndicationExtension yme) { //TODO, case of group!!! for type ?? foreach (AdvancedRssItemMedia item in ilarim) { YahooMediaContent ymc = new YahooMediaContent(); ymc.Url = new Uri(item.Content); //Title if (item.Title != null && item.Title != "") { ymc.Title = new YahooMediaTextConstruct(item.Title); } //Content if (item.Content != null && item.Content != "") { try { ymc.Url = new Uri(item.Content); } catch { } } //ContentType if (item.ContentType != null) { ymc.ContentType = item.ContentType; } //Credit if (item.Credit != null && item.Credit != "") { ymc.Credits.Add(new YahooMediaCredit(item.Credit)); } //Descripcion if (item.Description != null && item.Description != "") { ymc.Description = new YahooMediaTextConstruct(item.Description); } yme.Context.AddContent(ymc); } }
public void SetChannelRss(AdvancedRssChannel rssChannel, Stream OutputStream) { RssFeed ArgoticRssFeed = new RssFeed(); SetBasicChannelData(rssChannel, ArgoticRssFeed.Channel); if (rssChannel.RssItems != null) { foreach (AdvancedRssItem RssItem in rssChannel.RssItems) { //New item RssItem ArgoRssItem = new RssItem(); //Basic item of the item SetBasicItemData(RssItem, ArgoRssItem); //Extention for Geocoding SetBasicGeocodingExtension(RssItem, ArgoRssItem); //Extention Slash for nomber of comment SetSlashExtension(RssItem, ArgoRssItem); //Yahoo extention for media content if (RssItem.RssfeedItemsMedia != null) { YahooMediaSyndicationExtension yme = new YahooMediaSyndicationExtension(); SetYahooExtension(RssItem.RssfeedItemsMedia, yme); ArgoRssItem.AddExtension(yme); } ArgoticRssFeed.Channel.AddItem(ArgoRssItem); } } ArgoticRssFeed.Save(OutputStream); }
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); }