public async Task <SearchTweetsV2Response> SearchTweetsAsync(ISearchTweetsV2Parameters parameters) { var iterator = _searchV2Requester.GetSearchTweetsV2Iterator(parameters); var firstResponse = await iterator.NextPageAsync().ConfigureAwait(false); return(firstResponse?.Content?.Model); }
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()); }
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)); }
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); }
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))); }