// Get basic data for channel private void SetBasicChannelData(AdvancedRssChannel ChannelSource, RssChannel ChannelDest) { //Description if (ChannelSource.Description != null) { ChannelDest.Description = ChannelSource.Description; } //Title if (ChannelSource.Title != null) { ChannelDest.Title = ChannelSource.Title; } //Generator if (ChannelSource.Generator != null) { ChannelDest.Generator = ChannelSource.Generator; } //Language if (ChannelSource.Language != null && ChannelSource.Language != "") { //TODO: Cultura del feed //ChannelDest.Language = .ChannelSource.Language; } //LastBuildDate if (ChannelSource.LastBuildDate != null) { ChannelDest.LastBuildDate = ChannelSource.LastBuildDate; } //AbsoluteUri if (ChannelSource.Link != null && ChannelSource.Link != "") { try { ChannelDest.Link = new Uri(ChannelSource.Link); } catch { } } //PublicationDate if (ChannelSource.PubDate != null) { ChannelDest.PublicationDate = ChannelSource.PubDate; } }
// Get basic data for channel private void GetBasicChannelData(RssChannel ChannelSource, AdvancedRssChannel ChannelDest) { //Description if (ChannelSource.Description != null) { ChannelDest.Description = ChannelSource.Description; } if (ChannelSource.Image != null) { ChannelDest.ImageUrl = ChannelSource.Image.Url.AbsoluteUri; } //Title if (ChannelSource.Title != null) { ChannelDest.Title = ChannelSource.Title; } //Generator if (ChannelSource.Generator != null) { ChannelDest.Generator = ChannelSource.Generator; } //Language if (ChannelSource.Language != null) { ChannelDest.Language = ChannelSource.Language.ToString(); } //LastBuildDate if (ChannelSource.LastBuildDate != null) { ChannelDest.LastBuildDate = ChannelSource.LastBuildDate; } //AbsoluteUri if (ChannelSource.Link != null) { ChannelDest.Link = ChannelSource.Link.AbsoluteUri; } //PublicationDate if (ChannelSource.PublicationDate != null) { ChannelDest.PubDate = ChannelSource.PublicationDate; } }
public AdvancedRssChannel GetChannel(Uri url) { AdvancedRssChannel rssChannel = new AdvancedRssChannel(); rssChannel = GetRssChannelFromRss(url); return(rssChannel); //Select the syndication type //switch (Argotic.Common.SyndicationDiscovery.DetermineSyndicationFormat(url)) //{ // case Argotic.Common..Rss: rssChannel = GetRssChannelFromRss(url); break; // case Argotic.Common.SyndicationFormat.Atom: rssChannel = GetRssChannelFromAtom(url); break; //} //TODO //feed.SortAndFilter(); }
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); }