Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="query"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public TSearchResultCollection SearchTwitter(String query, int offset, int limit)
        {
            TSearchResultCollection resultCollection = new TSearchResultCollection();

            resultCollection.Items = new List <TSearchResult>();
            xsd.feed feed = this.ProcessRequest(query, offset, limit);

            xsd.feedLink feedlinkAltSearch = (xsd.feedLink)Array.Find(feed.Items, fd => (fd is xsd.feedLink) && ((xsd.feedLink)fd).rel.Equals("alternate", StringComparison.InvariantCultureIgnoreCase));
            if (feedlinkAltSearch != null)
            {
                resultCollection.AlternateSearch = feedlinkAltSearch.href;
            }

            Object[] feedentries = Array.FindAll(feed.Items, fd => (fd is xsd.feedEntry));
            foreach (Object entryObj in feedentries)
            {
                xsd.feedEntry       entry  = (xsd.feedEntry)entryObj;
                TSearchResult       res    = new TSearchResult();
                xsd.feedEntryAuthor author = (xsd.feedEntryAuthor)Array.Find(entry.Items, en => (en is xsd.feedEntryAuthor));
                if (author != null)
                {
                    res.AuthorName        = author.name;
                    res.AuthorProfileLink = author.uri;
                }

                int index = Array.FindIndex(entry.ItemsElementName, enn => (enn == xsd.ItemsChoiceType.published));
                if (index != -1)
                {
                    res.PublishedDate = (DateTime)entry.Items[index];
                }

                index = Array.FindIndex(entry.ItemsElementName, enn => (enn == xsd.ItemsChoiceType.updated));
                if (index != -1)
                {
                    res.UpdatedDate = (DateTime)entry.Items[index];
                }

                xsd.feedEntryLink tweet = (xsd.feedEntryLink)Array.Find(entry.Items, en => (en is xsd.feedEntryLink && ((xsd.feedEntryLink)en).rel.Equals("alternate", StringComparison.InvariantCultureIgnoreCase)));
                if (tweet != null)
                {
                    res.TweetLink = tweet.href;
                }

                xsd.feedEntryLink image = (xsd.feedEntryLink)Array.Find(entry.Items, en => (en is xsd.feedEntryLink && ((xsd.feedEntryLink)en).rel.Equals("image", StringComparison.InvariantCultureIgnoreCase)));
                if (image != null)
                {
                    res.ProfileImageLink = image.href;
                }

                xsd.feedEntryContent content = (xsd.feedEntryContent)Array.Find(entry.Items, en => (en is xsd.feedEntryContent));
                if (content != null)
                {
                    res.Content = content.Value;
                }

                resultCollection.Items.Add(res);
            }

            return(resultCollection);
        }
Beispiel #2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="query"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public TSearchResultCollection SearchTwitter(String query, int offset, int limit)
        {
            TSearchResultCollection resultCollection = new TSearchResultCollection();
            resultCollection.Items = new List<TSearchResult>();
            xsd.feed feed = this.ProcessRequest(query, offset, limit);

            xsd.feedLink feedlinkAltSearch = (xsd.feedLink)Array.Find(feed.Items, fd => (fd is xsd.feedLink) && ((xsd.feedLink)fd).rel.Equals("alternate", StringComparison.InvariantCultureIgnoreCase));
            if (feedlinkAltSearch != null)
                resultCollection.AlternateSearch = feedlinkAltSearch.href;

            Object[] feedentries = Array.FindAll(feed.Items, fd => (fd is xsd.feedEntry));
            foreach (Object entryObj in feedentries)
            {
                xsd.feedEntry entry = (xsd.feedEntry)entryObj;
                TSearchResult res = new TSearchResult();
                xsd.feedEntryAuthor author = (xsd.feedEntryAuthor)Array.Find(entry.Items, en => (en is xsd.feedEntryAuthor));
                if (author != null)
                {
                    res.AuthorName = author.name;
                    res.AuthorProfileLink = author.uri;
                }

                int index = Array.FindIndex(entry.ItemsElementName, enn => (enn == xsd.ItemsChoiceType.published));
                if(index != -1)
                    res.PublishedDate = (DateTime)entry.Items[index];

                index = Array.FindIndex(entry.ItemsElementName, enn => (enn == xsd.ItemsChoiceType.updated));
                if (index != -1)
                    res.UpdatedDate = (DateTime)entry.Items[index];

                xsd.feedEntryLink tweet = (xsd.feedEntryLink)Array.Find(entry.Items, en => (en is xsd.feedEntryLink && ((xsd.feedEntryLink)en).rel.Equals("alternate", StringComparison.InvariantCultureIgnoreCase)));
                if (tweet != null)
                    res.TweetLink = tweet.href;

                xsd.feedEntryLink image = (xsd.feedEntryLink)Array.Find(entry.Items, en => (en is xsd.feedEntryLink && ((xsd.feedEntryLink)en).rel.Equals("image", StringComparison.InvariantCultureIgnoreCase)));
                if (image != null)
                    res.ProfileImageLink = image.href;

                xsd.feedEntryContent content = (xsd.feedEntryContent)Array.Find(entry.Items, en => (en is xsd.feedEntryContent));
                if (content != null)
                    res.Content = content.Value;

                resultCollection.Items.Add(res);
            }

            return resultCollection;
        }