Skip to content
This repository was archived by the owner on Dec 17, 2024. It is now read-only.

Commit c695473

Browse files
Fix #85
1 parent 50b2865 commit c695473

File tree

1 file changed

+15
-22
lines changed

1 file changed

+15
-22
lines changed

BluebirdPS/public/api/Invoke-TwitterRequest.ps1

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,30 +60,19 @@ function Invoke-TwitterRequest {
6060
$script:LastHeaders = $ResponseHeaders
6161

6262
$ResponseData = [ResponseData]::new($RequestParameters,$Authentication,$ResponseHeaders,$LastStatusCode,$ApiResponse)
63-
6463
Write-TwitterResponse -ResponseData $ResponseData
6564

66-
# recursively call this function for pagination or cursoring
67-
$script:CurrentPage = 2
68-
$Progress = @{
69-
Activity = 'Retrieving paged results from Twitter API'
70-
Status = 'Current page'
71-
}
72-
7365
if ($ResponseData.ApiResponse.psobject.Properties.Name -match 'meta|next_cursor') {
7466

75-
Write-Progress @Progress -CurrentOperation $CurrentPage
76-
$CurrentPage++
77-
78-
Start-Sleep -Milliseconds (Get-Random -Minimum 300 -Maximum 600)
79-
80-
if ($ResponseData.ApiResponse.meta.next_token.length -gt 0) {
67+
$Progress = @{
68+
Activity = 'Retrieving paged results from Twitter API'
69+
}
8170

82-
# Twitter API V2
83-
'Returned {0} objects' -f $ResponseData.ApiResponse.meta.result_count | Write-Verbose
71+
if ($RequestParameters.Endpoint -match '\/2\/' -and $null -ne $ResponseData.ApiResponse.meta.next_token) {
8472

85-
if ($RequestParameters.Query.Keys -match 'pagination_token') {
86-
$RequestParameters.Query.Remove('pagination_token')
73+
# Twitter API V2 pagination
74+
if ($ResponseData.ApiResponse.meta.result_count) {
75+
'Returned {0} objects' -f $ResponseData.ApiResponse.meta.result_count | Write-Verbose
8776
}
8877

8978
# The endpoint /2/tweets/search/recent uses a different token for pagination
@@ -101,16 +90,20 @@ function Invoke-TwitterRequest {
10190
}
10291
$RequestParameters.Query.Add($NextPageKey,$ResponseData.ApiResponse.meta.next_token)
10392

104-
} elseif ($ResponseData.ApiResponse.next_cursor) {
93+
} elseif ($null -ne $ResponseData.ApiResponse.next_cursor -and $ResponseData.ApiResponse.next_cursor -ne 0) {
10594

106-
# Twitter API V1.1, calls to endpoints will assume starting cursor of -1
95+
# Twitter API V1.1 cursoring, calls to endpoints will assume starting cursor of -1
10796
if ($RequestParameters.Query.Keys -match 'cursor') {
10897
$RequestParameters.Query.Remove('cursor')
10998
}
11099
$RequestParameters.Query.Add('cursor',$ResponseData.ApiResponse.next_cursor)
111-
112-
Invoke-TwitterRequest -RequestParameters $RequestParameters
100+
} else {
101+
return
113102
}
103+
104+
Write-Progress @Progress
105+
Start-Sleep -Milliseconds (Get-Random -Minimum 300 -Maximum 600)
106+
Invoke-TwitterRequest -RequestParameters $RequestParameters
114107
}
115108
}
116109
catch {

0 commit comments

Comments
 (0)