Пример #1
0
        public static ISearchStream StartSearchStream(this IUserSession session, IEnumerable <string> track = null, IEnumerable <string> follow = null, IEnumerable <string> locations = null)
        {
            var searchStream = new SearchStream();

            searchStream.SearchParameters = searchStream.ChangeSearchParameters(track, follow, locations);
            Func <Task <HttpResponseMessage> > startConnection = () =>
            {
                if (searchStream.SearchParameters.EnsureOneOf(new[] { "track", "follow", "locations" }).IsFalse())
                {
                    return(null);
                }
                var request = session.CreatePost(TwitterApi.SearchStreaming("/1.1/statuses/filter.json"),
                                                 searchStream.SearchParameters);
                var c = new HttpClient()
                {
                    Timeout = TimeSpan.FromDays(1)
                };
                return(c.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, searchStream.CancelStream.Token));
            };

            searchStream.CreateOpenConnection = startConnection;
            return(searchStream);
        }