Ejemplo n.º 1
0
        private Model.FeedItem MapSyndicationFeedItemToFeedItem(FeedItem item, FeedType feedType)
        {
            bool valid = true;

            if (item == null)
            {
                Console.WriteLine("FeedDownloader.MapSyndicationFeedItemToFeedItem(): item is null");

                valid = false;
            }

            if (valid && string.IsNullOrEmpty(item.Title))
            {
                Console.WriteLine("FeedDownloader.MapSyndicationFeedItemToFeedItem(): item is not valid (No title)");
                valid = false;
            }

            //if (valid && string.IsNullOrEmpty(item.Description))
            //{
            //    Console.WriteLine($"FeedDownloader.MapSyndicationFeedItemToFeedItem(): item '{item.Title}' is not valid (No summary)");
            //    valid = false;
            //}

            if (valid && string.IsNullOrEmpty(item.Link))
            {
                Console.WriteLine($"FeedDownloader.MapSyndicationFeedItemToFeedItem(): item '{item.Title}' is not valid (No link)");
                valid = false;
            }

            if (!valid)
            {
                Console.WriteLine("FeedDownloader.MapSyndicationFeedItemToFeedItem(): found invalid item. Ignore.");
                return(null);
            }

            var feedItem = new Model.FeedItem
            {
                Title = m_HtmlStripper.UnHtml(item.Title),

                Link        = item.Link,
                PublishDate = item.PublishingDate.Value.ToUniversalTime(),

                // Convert Summary Text to plain text (if any HTML tag is present)
                Summary = m_HtmlStripper.UnHtml(item.Description)
            };

            feedItem.Id = GetFeedItemHash(feedItem);

            // TO ACCESS CUSTOM ITEM METADATA BY RSS FEED VERSION
            // NOT USED AT THE MOMENT
            if (feedType == FeedType.Rss_2_0)
            {
                var rss20feedItem = (CodeHollow.FeedReader.Feeds.Rss20FeedItem)item.SpecificItem;
            }

            return(feedItem);
        }
Ejemplo n.º 2
0
 private string GetFeedItemHash(Model.FeedItem feedItem)
 {
     return(BitConverter.ToString(m_EntityHasher.ComputeHash(m_Utf8Encoding.GetBytes($"{feedItem.Title}_{feedItem.Summary}_{feedItem.Link}"))).Replace("-", ""));
 }