コード例 #1
0
        /// <summary>
        ///     Triggered in case of the user holds / taps long on a article.
        ///     Open share menu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnItemHolded(object sender, HoldingRoutedEventArgs e)
        {
            selectedFeedItem = GetFeedItemByButtonSender(sender);
            if (selectedFeedItem == null) return;

            DataTransferManager.ShowShareUI();
        }
コード例 #2
0
        /// <summary>
        ///     Parses async a given url for rss / wordpress feed objects
        /// </summary>
        /// <param name="url">URL to the blog</param>
        /// <returns>Async task</returns>
        public static async Task<List<FeedItem>> getFeedsAsync(string url)
        {
            SyndicationClient client = new SyndicationClient();
            List<FeedItem> feedData = new List<FeedItem>();
            Uri feedUri = new Uri(url);
            var feed = await client.RetrieveFeedAsync(feedUri);

            foreach (SyndicationItem item in feed.Items)
            {
                FeedItem feedItem = new FeedItem();

                feedItem.Title = item.Title.Text;
                feedItem.Content = item.Summary.Text;
                feedItem.Link = item.Links[0].Uri;
                feedItem.PubDate = item.PublishedDate.DateTime;
                feedItem.Author = item.Authors[0].Name;

                List<string> categories = new List<string>(item.Categories.Count);
                foreach (SyndicationCategory category in item.Categories)
                {
                    categories.Add(category.Term);
                }
                feedItem.Categories = String.Join(", ", categories);

                var pattern = "(https?)\\S*(png|jpg|jpeg)";
                var regex = new Regex(pattern, RegexOptions.IgnoreCase);
                var match = regex.Match(item.NodeValue);

                if (match.Success)
                {
                    var imageUrl = match.Value;
                    
                    // Resize the image to width = 80 before downloading by calling a WP-service
                    imageUrl = imageUrl.Insert(imageUrl.Length, "?w=80");
                    feedItem.ArticleImageLink = new Uri(imageUrl);
                }

                feedData.Add(feedItem);
            }

            return feedData;
        }