x-twitter-scraper 0.7.3 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +3 -3
- data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +5 -5
- data/lib/x_twitter_scraper/models/draw_export_params.rb +8 -3
- data/lib/x_twitter_scraper/models/draw_list_params.rb +2 -2
- data/lib/x_twitter_scraper/models/error.rb +8 -0
- data/lib/x_twitter_scraper/models/event_list_params.rb +13 -5
- data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +731 -82
- data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +1 -0
- data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +145 -1
- data/lib/x_twitter_scraper/models/extraction_list_params.rb +2 -2
- data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +70 -3
- data/lib/x_twitter_scraper/models/extraction_run_params.rb +662 -1
- data/lib/x_twitter_scraper/models/extraction_run_response.rb +27 -48
- data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +8 -8
- data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +9 -9
- data/lib/x_twitter_scraper/models/monitor.rb +29 -1
- data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -4
- data/lib/x_twitter_scraper/models/paginated_users.rb +5 -5
- data/lib/x_twitter_scraper/models/support/attachment_download_params.rb +28 -0
- data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +113 -1
- data/lib/x_twitter_scraper/models/x/community_retrieve_moderators_params.rb +117 -1
- data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +117 -6
- data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +116 -1
- data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +117 -6
- data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +153 -1
- data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +246 -16
- data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +3 -2
- data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +117 -6
- data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +187 -14
- data/lib/x_twitter_scraper/models/x/tweet_search_response.rb +299 -0
- data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +143 -10
- data/lib/x_twitter_scraper/models/x/user_retrieve_followers_response.rb +241 -0
- data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +117 -6
- data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +143 -10
- data/lib/x_twitter_scraper/models/x/user_retrieve_following_response.rb +241 -0
- data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +153 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +153 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +153 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +159 -7
- data/lib/x_twitter_scraper/models/x/user_retrieve_search_params.rb +116 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +159 -7
- data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +157 -8
- data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rb +245 -0
- data/lib/x_twitter_scraper/models/x/x_account.rb +7 -11
- data/lib/x_twitter_scraper/resources/credits.rb +2 -2
- data/lib/x_twitter_scraper/resources/draws.rb +5 -2
- data/lib/x_twitter_scraper/resources/events.rb +10 -4
- data/lib/x_twitter_scraper/resources/extractions.rb +383 -84
- data/lib/x_twitter_scraper/resources/guest_wallets.rb +9 -13
- data/lib/x_twitter_scraper/resources/support/attachments.rb +42 -0
- data/lib/x_twitter_scraper/resources/support.rb +5 -0
- data/lib/x_twitter_scraper/resources/x/communities.rb +95 -4
- data/lib/x_twitter_scraper/resources/x/lists.rb +96 -5
- data/lib/x_twitter_scraper/resources/x/tweets.rb +286 -28
- data/lib/x_twitter_scraper/resources/x/users.rb +531 -41
- data/lib/x_twitter_scraper/version.rb +1 -1
- data/lib/x_twitter_scraper.rb +7 -1
- data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +6 -6
- data/rbi/x_twitter_scraper/models/draw_export_params.rbi +6 -3
- data/rbi/x_twitter_scraper/models/draw_list_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/error.rbi +40 -0
- data/rbi/x_twitter_scraper/models/event_list_params.rbi +15 -4
- data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +1338 -86
- data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +5 -0
- data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +198 -0
- data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +194 -2
- data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +1221 -0
- data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +35 -162
- data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +8 -6
- data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +9 -7
- data/rbi/x_twitter_scraper/models/monitor.rbi +54 -3
- data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -4
- data/rbi/x_twitter_scraper/models/paginated_users.rbi +5 -5
- data/rbi/x_twitter_scraper/models/support/attachment_download_params.rbi +51 -0
- data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +154 -0
- data/rbi/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbi +154 -0
- data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +160 -8
- data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +154 -0
- data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +160 -8
- data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +209 -0
- data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +403 -20
- data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +3 -2
- data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +160 -8
- data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +279 -16
- data/rbi/x_twitter_scraper/models/x/tweet_search_response.rbi +543 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +228 -12
- data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_response.rbi +440 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +160 -8
- data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +228 -12
- data/rbi/x_twitter_scraper/models/x/user_retrieve_following_response.rbi +440 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +209 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +209 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +209 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +217 -8
- data/rbi/x_twitter_scraper/models/x/user_retrieve_search_params.rbi +154 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +217 -8
- data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +248 -10
- data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbi +440 -0
- data/rbi/x_twitter_scraper/models/x/x_account.rbi +9 -15
- data/rbi/x_twitter_scraper/resources/credits.rbi +2 -2
- data/rbi/x_twitter_scraper/resources/draws.rbi +3 -2
- data/rbi/x_twitter_scraper/resources/events.rbi +5 -2
- data/rbi/x_twitter_scraper/resources/extractions.rbi +525 -83
- data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +9 -13
- data/rbi/x_twitter_scraper/resources/support/attachments.rbi +35 -0
- data/rbi/x_twitter_scraper/resources/support.rbi +4 -0
- data/rbi/x_twitter_scraper/resources/x/communities.rbi +84 -0
- data/rbi/x_twitter_scraper/resources/x/lists.rbi +87 -4
- data/rbi/x_twitter_scraper/resources/x/tweets.rbi +307 -31
- data/rbi/x_twitter_scraper/resources/x/users.rbi +558 -34
- data/sig/x_twitter_scraper/models/error.rbs +16 -0
- data/sig/x_twitter_scraper/models/event_list_params.rbs +7 -0
- data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +605 -1
- data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +2 -0
- data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +127 -1
- data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +74 -1
- data/sig/x_twitter_scraper/models/extraction_run_params.rbs +611 -1
- data/sig/x_twitter_scraper/models/extraction_run_response.rbs +29 -67
- data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +4 -4
- data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +4 -4
- data/sig/x_twitter_scraper/models/monitor.rbs +29 -3
- data/sig/x_twitter_scraper/models/support/attachment_download_params.rbs +32 -0
- data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +103 -1
- data/sig/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbs +102 -1
- data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +103 -1
- data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +103 -1
- data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +103 -1
- data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +134 -1
- data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +207 -2
- data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +103 -1
- data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +154 -1
- data/sig/x_twitter_scraper/models/x/tweet_search_response.rbs +258 -0
- data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +119 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_followers_response.rbs +216 -0
- data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +103 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +119 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_following_response.rbs +216 -0
- data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +134 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +134 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +134 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +134 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_search_params.rbs +102 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +134 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +137 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbs +216 -0
- data/sig/x_twitter_scraper/resources/events.rbs +1 -0
- data/sig/x_twitter_scraper/resources/extractions.rbs +137 -0
- data/sig/x_twitter_scraper/resources/support/attachments.rbs +15 -0
- data/sig/x_twitter_scraper/resources/support.rbs +2 -0
- data/sig/x_twitter_scraper/resources/x/communities.rbs +28 -0
- data/sig/x_twitter_scraper/resources/x/lists.rbs +28 -0
- data/sig/x_twitter_scraper/resources/x/tweets.rbs +93 -1
- data/sig/x_twitter_scraper/resources/x/users.rbs +173 -3
- metadata +19 -1
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module XTwitterScraper
|
|
4
|
+
module Models
|
|
5
|
+
module X
|
|
6
|
+
# Paginated user profiles. No-mode follower, following, and verified follower
|
|
7
|
+
# requests merge independent views automatically. Response fields, page size,
|
|
8
|
+
# aliases, filters, and per-returned-profile billing stay unchanged. Existing
|
|
9
|
+
# unprefixed cursors retain legacy behavior. Follow next_cursor while
|
|
10
|
+
# has_next_page is true.
|
|
11
|
+
module UserRetrieveVerifiedFollowersResponse
|
|
12
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
13
|
+
|
|
14
|
+
Variants =
|
|
15
|
+
T.type_alias do
|
|
16
|
+
T.any(
|
|
17
|
+
XTwitterScraper::PaginatedUsers,
|
|
18
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class UserListCoverageResponse < XTwitterScraper::Models::PaginatedUsers
|
|
23
|
+
OrHash =
|
|
24
|
+
T.type_alias do
|
|
25
|
+
T.any(
|
|
26
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse,
|
|
27
|
+
XTwitterScraper::Internal::AnyHash
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Coverage evidence across parallel relationship strategies.
|
|
32
|
+
sig do
|
|
33
|
+
returns(
|
|
34
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
attr_reader :diagnostic
|
|
38
|
+
|
|
39
|
+
sig do
|
|
40
|
+
params(
|
|
41
|
+
diagnostic:
|
|
42
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::OrHash
|
|
43
|
+
).void
|
|
44
|
+
end
|
|
45
|
+
attr_writer :diagnostic
|
|
46
|
+
|
|
47
|
+
sig do
|
|
48
|
+
returns(
|
|
49
|
+
T.nilable(
|
|
50
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage::TaggedBoolean
|
|
51
|
+
)
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
attr_reader :has_next_page
|
|
55
|
+
|
|
56
|
+
sig do
|
|
57
|
+
params(
|
|
58
|
+
has_next_page:
|
|
59
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage::OrBoolean
|
|
60
|
+
).void
|
|
61
|
+
end
|
|
62
|
+
attr_writer :has_next_page
|
|
63
|
+
|
|
64
|
+
sig do
|
|
65
|
+
returns(
|
|
66
|
+
T.nilable(
|
|
67
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor::TaggedSymbol
|
|
68
|
+
)
|
|
69
|
+
)
|
|
70
|
+
end
|
|
71
|
+
attr_reader :next_cursor
|
|
72
|
+
|
|
73
|
+
sig do
|
|
74
|
+
params(
|
|
75
|
+
next_cursor:
|
|
76
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor::OrSymbol
|
|
77
|
+
).void
|
|
78
|
+
end
|
|
79
|
+
attr_writer :next_cursor
|
|
80
|
+
|
|
81
|
+
# Paginated user profiles. No-mode follower, following, and verified follower
|
|
82
|
+
# requests merge independent views automatically. Response fields, page size,
|
|
83
|
+
# aliases, filters, and per-returned-profile billing stay unchanged. Existing
|
|
84
|
+
# unprefixed cursors retain legacy behavior. Follow next_cursor while
|
|
85
|
+
# has_next_page is true.
|
|
86
|
+
sig do
|
|
87
|
+
params(
|
|
88
|
+
diagnostic:
|
|
89
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::OrHash,
|
|
90
|
+
has_next_page:
|
|
91
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage::OrBoolean,
|
|
92
|
+
next_cursor:
|
|
93
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor::OrSymbol
|
|
94
|
+
).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Coverage evidence across parallel relationship strategies.
|
|
98
|
+
diagnostic:,
|
|
99
|
+
has_next_page: nil,
|
|
100
|
+
next_cursor: nil
|
|
101
|
+
)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
sig do
|
|
105
|
+
override.returns(
|
|
106
|
+
{
|
|
107
|
+
diagnostic:
|
|
108
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic,
|
|
109
|
+
has_next_page:
|
|
110
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage::TaggedBoolean,
|
|
111
|
+
next_cursor:
|
|
112
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor::TaggedSymbol
|
|
113
|
+
}
|
|
114
|
+
)
|
|
115
|
+
end
|
|
116
|
+
def to_hash
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
class Diagnostic < XTwitterScraper::Internal::Type::BaseModel
|
|
120
|
+
OrHash =
|
|
121
|
+
T.type_alias do
|
|
122
|
+
T.any(
|
|
123
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic,
|
|
124
|
+
XTwitterScraper::Internal::AnyHash
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# True when every strategy exhausted its source.
|
|
129
|
+
sig { returns(T::Boolean) }
|
|
130
|
+
attr_accessor :complete
|
|
131
|
+
|
|
132
|
+
sig { returns(Integer) }
|
|
133
|
+
attr_accessor :cursor_failure_count
|
|
134
|
+
|
|
135
|
+
sig { returns(T::Boolean) }
|
|
136
|
+
attr_accessor :deadline_reached
|
|
137
|
+
|
|
138
|
+
sig { returns(Integer) }
|
|
139
|
+
attr_accessor :duplicate_count
|
|
140
|
+
|
|
141
|
+
sig { returns(Integer) }
|
|
142
|
+
attr_accessor :failed_strategy_count
|
|
143
|
+
|
|
144
|
+
sig { returns(Integer) }
|
|
145
|
+
attr_accessor :malformed_count
|
|
146
|
+
|
|
147
|
+
sig { returns(Integer) }
|
|
148
|
+
attr_accessor :pages_fetched
|
|
149
|
+
|
|
150
|
+
# Whether credits or the requested limit reduced output.
|
|
151
|
+
sig { returns(T::Boolean) }
|
|
152
|
+
attr_accessor :response_truncated
|
|
153
|
+
|
|
154
|
+
sig { returns(T::Boolean) }
|
|
155
|
+
attr_accessor :result_limit_reached
|
|
156
|
+
|
|
157
|
+
sig { returns(Integer) }
|
|
158
|
+
attr_accessor :returned_users
|
|
159
|
+
|
|
160
|
+
sig { returns(Integer) }
|
|
161
|
+
attr_accessor :stalled_strategy_count
|
|
162
|
+
|
|
163
|
+
sig do
|
|
164
|
+
returns(
|
|
165
|
+
T::Array[
|
|
166
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy
|
|
167
|
+
]
|
|
168
|
+
)
|
|
169
|
+
end
|
|
170
|
+
attr_accessor :strategies
|
|
171
|
+
|
|
172
|
+
sig { returns(Integer) }
|
|
173
|
+
attr_accessor :strategy_count
|
|
174
|
+
|
|
175
|
+
sig { returns(Integer) }
|
|
176
|
+
attr_accessor :unique_users
|
|
177
|
+
|
|
178
|
+
# Coverage evidence across parallel relationship strategies.
|
|
179
|
+
sig do
|
|
180
|
+
params(
|
|
181
|
+
complete: T::Boolean,
|
|
182
|
+
cursor_failure_count: Integer,
|
|
183
|
+
deadline_reached: T::Boolean,
|
|
184
|
+
duplicate_count: Integer,
|
|
185
|
+
failed_strategy_count: Integer,
|
|
186
|
+
malformed_count: Integer,
|
|
187
|
+
pages_fetched: Integer,
|
|
188
|
+
response_truncated: T::Boolean,
|
|
189
|
+
result_limit_reached: T::Boolean,
|
|
190
|
+
returned_users: Integer,
|
|
191
|
+
stalled_strategy_count: Integer,
|
|
192
|
+
strategies:
|
|
193
|
+
T::Array[
|
|
194
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::OrHash
|
|
195
|
+
],
|
|
196
|
+
strategy_count: Integer,
|
|
197
|
+
unique_users: Integer
|
|
198
|
+
).returns(T.attached_class)
|
|
199
|
+
end
|
|
200
|
+
def self.new(
|
|
201
|
+
# True when every strategy exhausted its source.
|
|
202
|
+
complete:,
|
|
203
|
+
cursor_failure_count:,
|
|
204
|
+
deadline_reached:,
|
|
205
|
+
duplicate_count:,
|
|
206
|
+
failed_strategy_count:,
|
|
207
|
+
malformed_count:,
|
|
208
|
+
pages_fetched:,
|
|
209
|
+
# Whether credits or the requested limit reduced output.
|
|
210
|
+
response_truncated:,
|
|
211
|
+
result_limit_reached:,
|
|
212
|
+
returned_users:,
|
|
213
|
+
stalled_strategy_count:,
|
|
214
|
+
strategies:,
|
|
215
|
+
strategy_count:,
|
|
216
|
+
unique_users:
|
|
217
|
+
)
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
sig do
|
|
221
|
+
override.returns(
|
|
222
|
+
{
|
|
223
|
+
complete: T::Boolean,
|
|
224
|
+
cursor_failure_count: Integer,
|
|
225
|
+
deadline_reached: T::Boolean,
|
|
226
|
+
duplicate_count: Integer,
|
|
227
|
+
failed_strategy_count: Integer,
|
|
228
|
+
malformed_count: Integer,
|
|
229
|
+
pages_fetched: Integer,
|
|
230
|
+
response_truncated: T::Boolean,
|
|
231
|
+
result_limit_reached: T::Boolean,
|
|
232
|
+
returned_users: Integer,
|
|
233
|
+
stalled_strategy_count: Integer,
|
|
234
|
+
strategies:
|
|
235
|
+
T::Array[
|
|
236
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy
|
|
237
|
+
],
|
|
238
|
+
strategy_count: Integer,
|
|
239
|
+
unique_users: Integer
|
|
240
|
+
}
|
|
241
|
+
)
|
|
242
|
+
end
|
|
243
|
+
def to_hash
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
class Strategy < XTwitterScraper::Internal::Type::BaseModel
|
|
247
|
+
OrHash =
|
|
248
|
+
T.type_alias do
|
|
249
|
+
T.any(
|
|
250
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy,
|
|
251
|
+
XTwitterScraper::Internal::AnyHash
|
|
252
|
+
)
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
sig { returns(Integer) }
|
|
256
|
+
attr_accessor :duplicate_count
|
|
257
|
+
|
|
258
|
+
sig { returns(Integer) }
|
|
259
|
+
attr_accessor :pages_fetched
|
|
260
|
+
|
|
261
|
+
sig do
|
|
262
|
+
returns(
|
|
263
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
264
|
+
)
|
|
265
|
+
end
|
|
266
|
+
attr_accessor :stop_reason
|
|
267
|
+
|
|
268
|
+
sig { returns(Integer) }
|
|
269
|
+
attr_accessor :strategy
|
|
270
|
+
|
|
271
|
+
sig { returns(Integer) }
|
|
272
|
+
attr_accessor :unique_added
|
|
273
|
+
|
|
274
|
+
sig do
|
|
275
|
+
params(
|
|
276
|
+
duplicate_count: Integer,
|
|
277
|
+
pages_fetched: Integer,
|
|
278
|
+
stop_reason:
|
|
279
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::OrSymbol,
|
|
280
|
+
strategy: Integer,
|
|
281
|
+
unique_added: Integer
|
|
282
|
+
).returns(T.attached_class)
|
|
283
|
+
end
|
|
284
|
+
def self.new(
|
|
285
|
+
duplicate_count:,
|
|
286
|
+
pages_fetched:,
|
|
287
|
+
stop_reason:,
|
|
288
|
+
strategy:,
|
|
289
|
+
unique_added:
|
|
290
|
+
)
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
sig do
|
|
294
|
+
override.returns(
|
|
295
|
+
{
|
|
296
|
+
duplicate_count: Integer,
|
|
297
|
+
pages_fetched: Integer,
|
|
298
|
+
stop_reason:
|
|
299
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol,
|
|
300
|
+
strategy: Integer,
|
|
301
|
+
unique_added: Integer
|
|
302
|
+
}
|
|
303
|
+
)
|
|
304
|
+
end
|
|
305
|
+
def to_hash
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
module StopReason
|
|
309
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
310
|
+
|
|
311
|
+
TaggedSymbol =
|
|
312
|
+
T.type_alias do
|
|
313
|
+
T.all(
|
|
314
|
+
Symbol,
|
|
315
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason
|
|
316
|
+
)
|
|
317
|
+
end
|
|
318
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
319
|
+
|
|
320
|
+
CURSOR_FAILURE =
|
|
321
|
+
T.let(
|
|
322
|
+
:cursor_failure,
|
|
323
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
324
|
+
)
|
|
325
|
+
DEADLINE =
|
|
326
|
+
T.let(
|
|
327
|
+
:deadline,
|
|
328
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
329
|
+
)
|
|
330
|
+
EXHAUSTED =
|
|
331
|
+
T.let(
|
|
332
|
+
:exhausted,
|
|
333
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
334
|
+
)
|
|
335
|
+
FAILED =
|
|
336
|
+
T.let(
|
|
337
|
+
:failed,
|
|
338
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
339
|
+
)
|
|
340
|
+
PAGE_LIMIT =
|
|
341
|
+
T.let(
|
|
342
|
+
:page_limit,
|
|
343
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
344
|
+
)
|
|
345
|
+
RESULT_LIMIT =
|
|
346
|
+
T.let(
|
|
347
|
+
:result_limit,
|
|
348
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
349
|
+
)
|
|
350
|
+
STALLED =
|
|
351
|
+
T.let(
|
|
352
|
+
:stalled,
|
|
353
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
sig do
|
|
357
|
+
override.returns(
|
|
358
|
+
T::Array[
|
|
359
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason::TaggedSymbol
|
|
360
|
+
]
|
|
361
|
+
)
|
|
362
|
+
end
|
|
363
|
+
def self.values
|
|
364
|
+
end
|
|
365
|
+
end
|
|
366
|
+
end
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
module HasNextPage
|
|
370
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
371
|
+
|
|
372
|
+
TaggedBoolean =
|
|
373
|
+
T.type_alias do
|
|
374
|
+
T.all(
|
|
375
|
+
T::Boolean,
|
|
376
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage
|
|
377
|
+
)
|
|
378
|
+
end
|
|
379
|
+
OrBoolean = T.type_alias { T::Boolean }
|
|
380
|
+
|
|
381
|
+
FALSE =
|
|
382
|
+
T.let(
|
|
383
|
+
false,
|
|
384
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage::TaggedBoolean
|
|
385
|
+
)
|
|
386
|
+
|
|
387
|
+
sig do
|
|
388
|
+
override.returns(
|
|
389
|
+
T::Array[
|
|
390
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage::TaggedBoolean
|
|
391
|
+
]
|
|
392
|
+
)
|
|
393
|
+
end
|
|
394
|
+
def self.values
|
|
395
|
+
end
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
module NextCursor
|
|
399
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
400
|
+
|
|
401
|
+
TaggedSymbol =
|
|
402
|
+
T.type_alias do
|
|
403
|
+
T.all(
|
|
404
|
+
Symbol,
|
|
405
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor
|
|
406
|
+
)
|
|
407
|
+
end
|
|
408
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
409
|
+
|
|
410
|
+
EMPTY =
|
|
411
|
+
T.let(
|
|
412
|
+
:"",
|
|
413
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor::TaggedSymbol
|
|
414
|
+
)
|
|
415
|
+
|
|
416
|
+
sig do
|
|
417
|
+
override.returns(
|
|
418
|
+
T::Array[
|
|
419
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor::TaggedSymbol
|
|
420
|
+
]
|
|
421
|
+
)
|
|
422
|
+
end
|
|
423
|
+
def self.values
|
|
424
|
+
end
|
|
425
|
+
end
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
sig do
|
|
429
|
+
override.returns(
|
|
430
|
+
T::Array[
|
|
431
|
+
XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::Variants
|
|
432
|
+
]
|
|
433
|
+
)
|
|
434
|
+
end
|
|
435
|
+
def self.variants
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
end
|
|
439
|
+
end
|
|
440
|
+
end
|
|
@@ -24,11 +24,9 @@ module XTwitterScraper
|
|
|
24
24
|
sig { returns(Time) }
|
|
25
25
|
attr_accessor :created_at
|
|
26
26
|
|
|
27
|
-
# Derived
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
# account can reconnect on its next use. `temporaryIssue` = temporary connection
|
|
31
|
-
# problem; wait before the next use.
|
|
27
|
+
# Derived health. `healthy` is ready. `needsReauth` needs credentials. `locked`
|
|
28
|
+
# must be unlocked on X. `suspended` is banned. `recovering` can reconnect. Wait
|
|
29
|
+
# before using `temporaryIssue`.
|
|
32
30
|
sig { returns(XTwitterScraper::X::XAccount::Health::TaggedSymbol) }
|
|
33
31
|
attr_accessor :health
|
|
34
32
|
|
|
@@ -66,11 +64,9 @@ module XTwitterScraper
|
|
|
66
64
|
def self.new(
|
|
67
65
|
id:,
|
|
68
66
|
created_at:,
|
|
69
|
-
# Derived
|
|
70
|
-
#
|
|
71
|
-
#
|
|
72
|
-
# account can reconnect on its next use. `temporaryIssue` = temporary connection
|
|
73
|
-
# problem; wait before the next use.
|
|
67
|
+
# Derived health. `healthy` is ready. `needsReauth` needs credentials. `locked`
|
|
68
|
+
# must be unlocked on X. `suspended` is banned. `recovering` can reconnect. Wait
|
|
69
|
+
# before using `temporaryIssue`.
|
|
74
70
|
health:,
|
|
75
71
|
status:,
|
|
76
72
|
updated_at:,
|
|
@@ -97,11 +93,9 @@ module XTwitterScraper
|
|
|
97
93
|
def to_hash
|
|
98
94
|
end
|
|
99
95
|
|
|
100
|
-
# Derived
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
# account can reconnect on its next use. `temporaryIssue` = temporary connection
|
|
104
|
-
# problem; wait before the next use.
|
|
96
|
+
# Derived health. `healthy` is ready. `needsReauth` needs credentials. `locked`
|
|
97
|
+
# must be unlocked on X. `suspended` is banned. `recovering` can reconnect. Wait
|
|
98
|
+
# before using `temporaryIssue`.
|
|
105
99
|
module Health
|
|
106
100
|
extend XTwitterScraper::Internal::Type::Enum
|
|
107
101
|
|
|
@@ -45,8 +45,8 @@ module XTwitterScraper
|
|
|
45
45
|
)
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
# Create a
|
|
49
|
-
# completes payment or adds credits
|
|
48
|
+
# Create a hosted checkout only after the user confirms. The request never
|
|
49
|
+
# completes payment or adds credits.
|
|
50
50
|
sig do
|
|
51
51
|
params(
|
|
52
52
|
dollars: Integer,
|
|
@@ -31,7 +31,7 @@ module XTwitterScraper
|
|
|
31
31
|
).returns(XTwitterScraper::Models::DrawListResponse)
|
|
32
32
|
end
|
|
33
33
|
def list(
|
|
34
|
-
#
|
|
34
|
+
# Previous nextCursor.
|
|
35
35
|
cursor: nil,
|
|
36
36
|
# Maximum number of items to return (1-100, default 50). For paid per-result
|
|
37
37
|
# endpoints, the returned count may be lower when remaining credits cannot cover
|
|
@@ -54,7 +54,8 @@ module XTwitterScraper
|
|
|
54
54
|
def export(
|
|
55
55
|
# Draw public ID returned by create and list draw responses.
|
|
56
56
|
id,
|
|
57
|
-
# Export output format
|
|
57
|
+
# Export output format. PDF entry exports include up to 10,000 rows. Other entry
|
|
58
|
+
# formats include up to 100,000 rows.
|
|
58
59
|
format_:,
|
|
59
60
|
# Export winners or all entries
|
|
60
61
|
type: nil,
|
|
@@ -27,22 +27,25 @@ module XTwitterScraper
|
|
|
27
27
|
params(
|
|
28
28
|
cursor: String,
|
|
29
29
|
event_type: XTwitterScraper::EventType::OrSymbol,
|
|
30
|
+
keyword_monitor_id: String,
|
|
30
31
|
limit: Integer,
|
|
31
32
|
monitor_id: String,
|
|
32
33
|
request_options: XTwitterScraper::RequestOptions::OrHash
|
|
33
34
|
).returns(XTwitterScraper::Models::EventListResponse)
|
|
34
35
|
end
|
|
35
36
|
def list(
|
|
36
|
-
#
|
|
37
|
+
# Previous nextCursor.
|
|
37
38
|
cursor: nil,
|
|
38
39
|
# Filter events by type
|
|
39
40
|
event_type: nil,
|
|
41
|
+
# Keyword monitor ID.
|
|
42
|
+
keyword_monitor_id: nil,
|
|
40
43
|
# Maximum number of items to return (1-100, default 50). For paid per-result
|
|
41
44
|
# endpoints, the returned count may be lower when remaining credits cannot cover
|
|
42
45
|
# the requested page. If zero paid results are affordable, the endpoint returns
|
|
43
46
|
# 402 insufficient_credits.
|
|
44
47
|
limit: nil,
|
|
45
|
-
#
|
|
48
|
+
# Account monitor ID.
|
|
46
49
|
monitor_id: nil,
|
|
47
50
|
request_options: {}
|
|
48
51
|
)
|