我尝试了下面的代码,但它不完全是我想要的。只有一次珍珠洪水要来了。有90次洪水。RT不应该出现,而应该只通过调用来泛洪。
作为一个例子,我分享了这张照片。在这种情况下,我必须做什么。

const int MaxSearchEntriesToReturn = 100;
const int SearchRateLimit = 180;
string searchTerm = "HANEDANLAR MASASININ YER ALTI EGEMENLİĞİ:RİO TİNTO";
// oldest id you already have for this search term
ulong sinceID = 1;
// used after the first query to track current session
ulong maxID;
var combinedSearchResults = new List<Status>();
List<Status> searchResponse =
await
(from search in ctx.Search
where search.Type == SearchType.Search &&
search.Query == searchTerm &&
search.Count == MaxSearchEntriesToReturn &&
search.SinceID == sinceID &&
search.TweetMode == TweetMode.Extended
select search.Statuses)
.SingleOrDefaultAsync();
if (searchResponse != null)
{
combinedSearchResults.AddRange(searchResponse);
ulong previousMaxID = ulong.MaxValue;
do
{
// one less than the newest id you've just queried
maxID = searchResponse.Min(status => status.StatusID) - 1;
Debug.Assert(maxID < previousMaxID);
previousMaxID = maxID;
searchResponse =
await
(from search in ctx.Search
where search.Type == SearchType.Search &&
search.Query == searchTerm &&
search.Count == MaxSearchEntriesToReturn &&
search.MaxID == maxID &&
search.SinceID == sinceID &&
search.TweetMode == TweetMode.Extended
select search.Statuses)
.SingleOrDefaultAsync();
combinedSearchResults.AddRange(searchResponse);
} while (searchResponse.Any() && combinedSearchResults.Count < SearchRateLimit);
combinedSearchResults.ForEach(tweet =>
Console.WriteLine(
"\n User: {0} ({1})\n Tweet: {2}",
tweet.User.ScreenNameResponse,
tweet.User.UserIDResponse,
tweet.Text ?? tweet.FullText)
);
}
else
{
Console.WriteLine("No entries found.");
}
ViewBag.Twet = combinedSearchResults.ToList();发布于 2020-05-21 04:40:48
我拥有LINQ to Twitter。分页搜索可以返回更多的值。下面是一个例子:
const int MaxSearchEntriesToReturn = 100;
const int SearchRateLimit = 180;
string searchTerm = "Flood Name";
// oldest id you already have for this search term
ulong sinceID = 1;
// used after the first query to track current session
ulong maxID;
var combinedSearchResults = new List<Status>();
List<Status> searchResponse =
await
(from search in twitterCtx.Search
where search.Type == SearchType.Search &&
search.Query == searchTerm &&
search.Count == MaxSearchEntriesToReturn &&
search.SinceID == sinceID &&
search.TweetMode == TweetMode.Extended
select search.Statuses)
.SingleOrDefaultAsync();
if (searchResponse != null)
{
combinedSearchResults.AddRange(searchResponse);
ulong previousMaxID = ulong.MaxValue;
do
{
// one less than the newest id you've just queried
maxID = searchResponse.Min(status => status.StatusID) - 1;
Debug.Assert(maxID < previousMaxID);
previousMaxID = maxID;
searchResponse =
await
(from search in twitterCtx.Search
where search.Type == SearchType.Search &&
search.Query == searchTerm &&
search.Count == MaxSearchEntriesToReturn &&
search.MaxID == maxID &&
search.SinceID == sinceID &&
search.TweetMode == TweetMode.Extended
select search.Statuses)
.SingleOrDefaultAsync();
combinedSearchResults.AddRange(searchResponse);
} while (searchResponse.Any() && combinedSearchResults.Count < SearchRateLimit);
combinedSearchResults.ForEach(tweet =>
Console.WriteLine(
"\n User: {0} ({1})\n Tweet: {2}",
tweet.User.ScreenNameResponse,
tweet.User.UserIDResponse,
tweet.Text ?? tweet.FullText));
}
else
{
Console.WriteLine("No entries found.");
}有几件事需要注意:
Count设置为MaxSearchEntriesToReturn,因为它的默认值为15,并且您希望最小化查询的数量。https://stackoverflow.com/questions/61872234
复制相似问题