Exemple #1
0
        public async Task <SearchTweetsV2Response> SearchTweetsAsync(ISearchTweetsV2Parameters parameters)
        {
            var iterator      = _searchV2Requester.GetSearchTweetsV2Iterator(parameters);
            var firstResponse = await iterator.NextPageAsync().ConfigureAwait(false);

            return(firstResponse?.Content?.Model);
        }
Exemple #2
0
 public SearchTweetsV2Parameters(ISearchTweetsV2Parameters parameters)
 {
     EndTime   = parameters?.EndTime;
     Query     = parameters?.Query;
     PageSize  = parameters?.PageSize;
     NextToken = parameters?.NextToken;
     SinceId   = parameters?.SinceId;
     StartTime = parameters?.StartTime;
     UntilId   = parameters?.UntilId;
 }
        public string GetSearchTweetsV2Query(ISearchTweetsV2Parameters parameters)
        {
            var query = new StringBuilder("https://api.twitter.com/2/tweets/search/recent");

            query.AddParameterToQuery("query", parameters.Query);
            query.AddParameterToQuery("end_time", parameters.EndTime?.ToString("yyy-MM-ddThh:mm:ssZ"));
            query.AddParameterToQuery("max_results", parameters.PageSize);
            query.AddParameterToQuery("next_token", parameters.NextToken);
            query.AddParameterToQuery("since_id", parameters.SinceId);
            query.AddParameterToQuery("start_time", parameters.StartTime?.ToString("yyy-MM-ddThh:mm:ssZ"));
            query.AddParameterToQuery("until_id", parameters.UntilId);
            _tweetsV2QueryGenerator.AddTweetFieldsParameters(parameters, query);
            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);
            return(query.ToString());
        }
Exemple #4
0
        public ITwitterRequestIterator <SearchTweetsV2Response, string> GetSearchTweetsV2Iterator(ISearchTweetsV2Parameters parameters)
        {
            var iterator = _searchV2Requester.GetSearchTweetsV2Iterator(parameters);

            return(new IteratorPageProxy <ITwitterResult <SearchTweetsV2Response>, SearchTweetsV2Response, string>(iterator, input => input.Model));
        }
 public Task <ITwitterResult <SearchTweetsV2Response> > SearchTweetsAsync(ISearchTweetsV2Parameters parameters, ITwitterRequest request)
 {
     request.Query.Url = _searchQueryGenerator.GetSearchTweetsV2Query(parameters);
     return(_twitterAccessor.ExecuteRequestAsync <SearchTweetsV2Response>(request));
 }
Exemple #6
0
        public ITwitterPageIterator <ITwitterResult <SearchTweetsV2Response>, string> GetSearchTweetsV2Iterator(ISearchTweetsV2Parameters parameters, ITwitterRequest request)
        {
            Func <string, Task <ITwitterResult <SearchTweetsV2Response> > > getNext = nextToken =>
            {
                var cursoredParameters = new SearchTweetsV2Parameters(parameters)
                {
                    NextToken = nextToken
                };

                return(_searchQueryExecutor.SearchTweetsAsync(cursoredParameters, new TwitterRequest(request)));
            };

            var twitterCursorResult = new TwitterPageIterator <ITwitterResult <SearchTweetsV2Response>, string>(
                parameters.NextToken,
                getNext,
                page =>
            {
                if (page.Model.Tweets.Length == 0)
                {
                    return(null);
                }

                return(page.Model.SearchMetadata.NextToken);
            },
                page =>
            {
                if (page.Model.Tweets.Length == 0)
                {
                    return(true);
                }

                return(page.Model.SearchMetadata.NextToken == null);
            });

            return(twitterCursorResult);
        }
Exemple #7
0
 public Task <ITwitterResult <SearchTweetsV2Response> > SearchTweetsAsync(ISearchTweetsV2Parameters parameters, ITwitterRequest request)
 {
     return(_searchQueryExecutor.SearchTweetsAsync(parameters, request));
 }
        public ITwitterPageIterator <ITwitterResult <SearchTweetsV2Response>, string> GetSearchTweetsV2Iterator(ISearchTweetsV2Parameters parameters)
        {
            var request = TwitterClient.CreateRequest();

            return(_searchV2Controller.GetSearchTweetsV2Iterator(parameters, request));
        }
 public Task <ITwitterResult <SearchTweetsV2Response> > SearchTweetsAsync(ISearchTweetsV2Parameters parameters)
 {
     return(ExecuteRequestAsync(request => _searchV2Controller.SearchTweetsAsync(parameters, request)));
 }