x-twitter-scraper 0.7.2 → 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 +24 -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,299 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module XTwitterScraper
|
|
4
|
+
module Models
|
|
5
|
+
module X
|
|
6
|
+
# No-mode search, user Tweet, user reply, and direct reply reads use automatic
|
|
7
|
+
# coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed
|
|
8
|
+
# cursors remain legacy. Follow next_cursor while has_next_page is true. An empty
|
|
9
|
+
# filtered page can still have has_next_page true.
|
|
10
|
+
#
|
|
11
|
+
# @see XTwitterScraper::Resources::X::Tweets#search
|
|
12
|
+
module TweetSearchResponse
|
|
13
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
14
|
+
|
|
15
|
+
# No-mode search, user Tweet, user reply, and direct reply reads use automatic coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed cursors remain legacy. Follow next_cursor while has_next_page is true. An empty filtered page can still have has_next_page true.
|
|
16
|
+
variant -> { XTwitterScraper::PaginatedTweets }
|
|
17
|
+
|
|
18
|
+
# No-mode search, user Tweet, user reply, and direct reply reads use automatic coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed cursors remain legacy. Follow next_cursor while has_next_page is true. An empty filtered page can still have has_next_page true.
|
|
19
|
+
variant -> { XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse }
|
|
20
|
+
|
|
21
|
+
class TweetSearchCoverageResponse < XTwitterScraper::Models::PaginatedTweets
|
|
22
|
+
# @!attribute diagnostic
|
|
23
|
+
# Coverage evidence across parallel search strategies.
|
|
24
|
+
#
|
|
25
|
+
# @return [XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic]
|
|
26
|
+
required :diagnostic,
|
|
27
|
+
-> { XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic }
|
|
28
|
+
|
|
29
|
+
# @!attribute has_next_page
|
|
30
|
+
#
|
|
31
|
+
# @return [Boolean, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::HasNextPage, nil]
|
|
32
|
+
optional :has_next_page,
|
|
33
|
+
enum: -> { XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::HasNextPage }
|
|
34
|
+
|
|
35
|
+
# @!attribute next_cursor
|
|
36
|
+
#
|
|
37
|
+
# @return [Symbol, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::NextCursor, nil]
|
|
38
|
+
optional :next_cursor,
|
|
39
|
+
enum: -> { XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::NextCursor }
|
|
40
|
+
|
|
41
|
+
# @!method initialize(diagnostic:, has_next_page: nil, next_cursor: nil)
|
|
42
|
+
# No-mode search, user Tweet, user reply, and direct reply reads use automatic
|
|
43
|
+
# coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed
|
|
44
|
+
# cursors remain legacy. Follow next_cursor while has_next_page is true. An empty
|
|
45
|
+
# filtered page can still have has_next_page true.
|
|
46
|
+
#
|
|
47
|
+
# @param diagnostic [XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic] Coverage evidence across parallel search strategies.
|
|
48
|
+
#
|
|
49
|
+
# @param has_next_page [Boolean, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::HasNextPage]
|
|
50
|
+
#
|
|
51
|
+
# @param next_cursor [Symbol, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::NextCursor]
|
|
52
|
+
|
|
53
|
+
class Diagnostic < XTwitterScraper::Internal::Type::BaseModel
|
|
54
|
+
# @!attribute complete
|
|
55
|
+
# True when every strategy exhausted its source.
|
|
56
|
+
#
|
|
57
|
+
# @return [Boolean]
|
|
58
|
+
required :complete, XTwitterScraper::Internal::Type::Boolean
|
|
59
|
+
|
|
60
|
+
# @!attribute cursor_failure_count
|
|
61
|
+
#
|
|
62
|
+
# @return [Integer]
|
|
63
|
+
required :cursor_failure_count, Integer, api_name: :cursorFailureCount
|
|
64
|
+
|
|
65
|
+
# @!attribute deadline_reached
|
|
66
|
+
#
|
|
67
|
+
# @return [Boolean]
|
|
68
|
+
required :deadline_reached, XTwitterScraper::Internal::Type::Boolean, api_name: :deadlineReached
|
|
69
|
+
|
|
70
|
+
# @!attribute duplicate_count
|
|
71
|
+
#
|
|
72
|
+
# @return [Integer]
|
|
73
|
+
required :duplicate_count, Integer, api_name: :duplicateCount
|
|
74
|
+
|
|
75
|
+
# @!attribute failed_strategy_count
|
|
76
|
+
#
|
|
77
|
+
# @return [Integer]
|
|
78
|
+
required :failed_strategy_count, Integer, api_name: :failedStrategyCount
|
|
79
|
+
|
|
80
|
+
# @!attribute malformed_count
|
|
81
|
+
#
|
|
82
|
+
# @return [Integer]
|
|
83
|
+
required :malformed_count, Integer, api_name: :malformedCount
|
|
84
|
+
|
|
85
|
+
# @!attribute pages_fetched
|
|
86
|
+
#
|
|
87
|
+
# @return [Integer]
|
|
88
|
+
required :pages_fetched, Integer, api_name: :pagesFetched
|
|
89
|
+
|
|
90
|
+
# @!attribute partitioned
|
|
91
|
+
# Whether bounded time windows ran in parallel.
|
|
92
|
+
#
|
|
93
|
+
# @return [Boolean]
|
|
94
|
+
required :partitioned, XTwitterScraper::Internal::Type::Boolean
|
|
95
|
+
|
|
96
|
+
# @!attribute response_truncated
|
|
97
|
+
# Whether credits or the requested limit reduced output.
|
|
98
|
+
#
|
|
99
|
+
# @return [Boolean]
|
|
100
|
+
required :response_truncated,
|
|
101
|
+
XTwitterScraper::Internal::Type::Boolean,
|
|
102
|
+
api_name: :responseTruncated
|
|
103
|
+
|
|
104
|
+
# @!attribute result_limit_reached
|
|
105
|
+
#
|
|
106
|
+
# @return [Boolean]
|
|
107
|
+
required :result_limit_reached,
|
|
108
|
+
XTwitterScraper::Internal::Type::Boolean,
|
|
109
|
+
api_name: :resultLimitReached
|
|
110
|
+
|
|
111
|
+
# @!attribute returned_tweets
|
|
112
|
+
#
|
|
113
|
+
# @return [Integer]
|
|
114
|
+
required :returned_tweets, Integer, api_name: :returnedTweets
|
|
115
|
+
|
|
116
|
+
# @!attribute stalled_strategy_count
|
|
117
|
+
#
|
|
118
|
+
# @return [Integer]
|
|
119
|
+
required :stalled_strategy_count, Integer, api_name: :stalledStrategyCount
|
|
120
|
+
|
|
121
|
+
# @!attribute strategies
|
|
122
|
+
#
|
|
123
|
+
# @return [Array<XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy>]
|
|
124
|
+
required :strategies,
|
|
125
|
+
-> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy] }
|
|
126
|
+
|
|
127
|
+
# @!attribute strategy_count
|
|
128
|
+
#
|
|
129
|
+
# @return [Integer]
|
|
130
|
+
required :strategy_count, Integer, api_name: :strategyCount
|
|
131
|
+
|
|
132
|
+
# @!attribute unique_tweets
|
|
133
|
+
#
|
|
134
|
+
# @return [Integer]
|
|
135
|
+
required :unique_tweets, Integer, api_name: :uniqueTweets
|
|
136
|
+
|
|
137
|
+
# @!method initialize(complete:, cursor_failure_count:, deadline_reached:, duplicate_count:, failed_strategy_count:, malformed_count:, pages_fetched:, partitioned:, response_truncated:, result_limit_reached:, returned_tweets:, stalled_strategy_count:, strategies:, strategy_count:, unique_tweets:)
|
|
138
|
+
# Coverage evidence across parallel search strategies.
|
|
139
|
+
#
|
|
140
|
+
# @param complete [Boolean] True when every strategy exhausted its source.
|
|
141
|
+
#
|
|
142
|
+
# @param cursor_failure_count [Integer]
|
|
143
|
+
#
|
|
144
|
+
# @param deadline_reached [Boolean]
|
|
145
|
+
#
|
|
146
|
+
# @param duplicate_count [Integer]
|
|
147
|
+
#
|
|
148
|
+
# @param failed_strategy_count [Integer]
|
|
149
|
+
#
|
|
150
|
+
# @param malformed_count [Integer]
|
|
151
|
+
#
|
|
152
|
+
# @param pages_fetched [Integer]
|
|
153
|
+
#
|
|
154
|
+
# @param partitioned [Boolean] Whether bounded time windows ran in parallel.
|
|
155
|
+
#
|
|
156
|
+
# @param response_truncated [Boolean] Whether credits or the requested limit reduced output.
|
|
157
|
+
#
|
|
158
|
+
# @param result_limit_reached [Boolean]
|
|
159
|
+
#
|
|
160
|
+
# @param returned_tweets [Integer]
|
|
161
|
+
#
|
|
162
|
+
# @param stalled_strategy_count [Integer]
|
|
163
|
+
#
|
|
164
|
+
# @param strategies [Array<XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy>]
|
|
165
|
+
#
|
|
166
|
+
# @param strategy_count [Integer]
|
|
167
|
+
#
|
|
168
|
+
# @param unique_tweets [Integer]
|
|
169
|
+
|
|
170
|
+
class Strategy < XTwitterScraper::Internal::Type::BaseModel
|
|
171
|
+
# @!attribute duplicate_count
|
|
172
|
+
#
|
|
173
|
+
# @return [Integer]
|
|
174
|
+
required :duplicate_count, Integer, api_name: :duplicateCount
|
|
175
|
+
|
|
176
|
+
# @!attribute pages_fetched
|
|
177
|
+
#
|
|
178
|
+
# @return [Integer]
|
|
179
|
+
required :pages_fetched, Integer, api_name: :pagesFetched
|
|
180
|
+
|
|
181
|
+
# @!attribute query_type
|
|
182
|
+
#
|
|
183
|
+
# @return [Symbol, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::QueryType]
|
|
184
|
+
required :query_type,
|
|
185
|
+
enum: -> { XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::QueryType },
|
|
186
|
+
api_name: :queryType
|
|
187
|
+
|
|
188
|
+
# @!attribute stop_reason
|
|
189
|
+
#
|
|
190
|
+
# @return [Symbol, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::StopReason]
|
|
191
|
+
required :stop_reason,
|
|
192
|
+
enum: -> { XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::StopReason },
|
|
193
|
+
api_name: :stopReason
|
|
194
|
+
|
|
195
|
+
# @!attribute strategy
|
|
196
|
+
#
|
|
197
|
+
# @return [Integer]
|
|
198
|
+
required :strategy, Integer
|
|
199
|
+
|
|
200
|
+
# @!attribute unique_added
|
|
201
|
+
#
|
|
202
|
+
# @return [Integer]
|
|
203
|
+
required :unique_added, Integer, api_name: :uniqueAdded
|
|
204
|
+
|
|
205
|
+
# @!attribute window
|
|
206
|
+
# Non-overlapping time partition used by one strategy.
|
|
207
|
+
#
|
|
208
|
+
# @return [XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window, nil]
|
|
209
|
+
optional :window,
|
|
210
|
+
-> { XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window }
|
|
211
|
+
|
|
212
|
+
# @!method initialize(duplicate_count:, pages_fetched:, query_type:, stop_reason:, strategy:, unique_added:, window: nil)
|
|
213
|
+
# @param duplicate_count [Integer]
|
|
214
|
+
#
|
|
215
|
+
# @param pages_fetched [Integer]
|
|
216
|
+
#
|
|
217
|
+
# @param query_type [Symbol, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::QueryType]
|
|
218
|
+
#
|
|
219
|
+
# @param stop_reason [Symbol, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::StopReason]
|
|
220
|
+
#
|
|
221
|
+
# @param strategy [Integer]
|
|
222
|
+
#
|
|
223
|
+
# @param unique_added [Integer]
|
|
224
|
+
#
|
|
225
|
+
# @param window [XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window] Non-overlapping time partition used by one strategy.
|
|
226
|
+
|
|
227
|
+
# @see XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy#query_type
|
|
228
|
+
module QueryType
|
|
229
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
230
|
+
|
|
231
|
+
LATEST = :Latest
|
|
232
|
+
TOP = :Top
|
|
233
|
+
|
|
234
|
+
# @!method self.values
|
|
235
|
+
# @return [Array<Symbol>]
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
# @see XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy#stop_reason
|
|
239
|
+
module StopReason
|
|
240
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
241
|
+
|
|
242
|
+
CURSOR_FAILURE = :cursor_failure
|
|
243
|
+
DEADLINE = :deadline
|
|
244
|
+
EXHAUSTED = :exhausted
|
|
245
|
+
FAILED = :failed
|
|
246
|
+
PAGE_LIMIT = :page_limit
|
|
247
|
+
RESULT_LIMIT = :result_limit
|
|
248
|
+
STALLED = :stalled
|
|
249
|
+
|
|
250
|
+
# @!method self.values
|
|
251
|
+
# @return [Array<Symbol>]
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# @see XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy#window
|
|
255
|
+
class Window < XTwitterScraper::Internal::Type::BaseModel
|
|
256
|
+
# @!attribute since_time
|
|
257
|
+
#
|
|
258
|
+
# @return [Time]
|
|
259
|
+
required :since_time, Time, api_name: :sinceTime
|
|
260
|
+
|
|
261
|
+
# @!attribute until_time
|
|
262
|
+
#
|
|
263
|
+
# @return [Time]
|
|
264
|
+
required :until_time, Time, api_name: :untilTime
|
|
265
|
+
|
|
266
|
+
# @!method initialize(since_time:, until_time:)
|
|
267
|
+
# Non-overlapping time partition used by one strategy.
|
|
268
|
+
#
|
|
269
|
+
# @param since_time [Time]
|
|
270
|
+
# @param until_time [Time]
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
module HasNextPage
|
|
276
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
277
|
+
|
|
278
|
+
FALSE = false
|
|
279
|
+
|
|
280
|
+
# @!method self.values
|
|
281
|
+
# @return [Array<Boolean>]
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
module NextCursor
|
|
285
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
286
|
+
|
|
287
|
+
EMPTY = :""
|
|
288
|
+
|
|
289
|
+
# @!method self.values
|
|
290
|
+
# @return [Array<Symbol>]
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
# @!method self.variants
|
|
295
|
+
# @return [Array(XTwitterScraper::Models::PaginatedTweets, XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse)]
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
end
|
|
299
|
+
end
|
|
@@ -23,28 +23,119 @@ module XTwitterScraper
|
|
|
23
23
|
# @return [String, nil]
|
|
24
24
|
optional :after, String
|
|
25
25
|
|
|
26
|
+
# @!attribute bio_contains
|
|
27
|
+
# Match any comma-separated or line-separated bio term, ignoring case.
|
|
28
|
+
#
|
|
29
|
+
# @return [String, nil]
|
|
30
|
+
optional :bio_contains, String
|
|
31
|
+
|
|
26
32
|
# @!attribute cursor
|
|
27
|
-
#
|
|
33
|
+
# Cursor from the previous response. Xquik cursors resume automatic coverage.
|
|
34
|
+
# Existing unprefixed cursors keep legacy standard behavior.
|
|
28
35
|
#
|
|
29
36
|
# @return [String, nil]
|
|
30
37
|
optional :cursor, String
|
|
31
38
|
|
|
39
|
+
# @!attribute has_location
|
|
40
|
+
# Only return profiles with a location.
|
|
41
|
+
#
|
|
42
|
+
# @return [Boolean, nil]
|
|
43
|
+
optional :has_location, XTwitterScraper::Internal::Type::Boolean
|
|
44
|
+
|
|
45
|
+
# @!attribute has_website
|
|
46
|
+
# Only return profiles with a website.
|
|
47
|
+
#
|
|
48
|
+
# @return [Boolean, nil]
|
|
49
|
+
optional :has_website, XTwitterScraper::Internal::Type::Boolean
|
|
50
|
+
|
|
32
51
|
# @!attribute limit
|
|
33
|
-
# Legacy
|
|
52
|
+
# Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
|
|
53
|
+
# Prefer pageSize.
|
|
34
54
|
#
|
|
35
55
|
# @return [Integer, nil]
|
|
36
56
|
optional :limit, Integer
|
|
37
57
|
|
|
58
|
+
# @!attribute location_contains
|
|
59
|
+
# Match a location substring, ignoring case.
|
|
60
|
+
#
|
|
61
|
+
# @return [String, nil]
|
|
62
|
+
optional :location_contains, String
|
|
63
|
+
|
|
64
|
+
# @!attribute max_followers
|
|
65
|
+
# Maximum follower count. Missing counts pass this maximum.
|
|
66
|
+
#
|
|
67
|
+
# @return [Integer, nil]
|
|
68
|
+
optional :max_followers, Integer
|
|
69
|
+
|
|
70
|
+
# @!attribute max_following
|
|
71
|
+
# Maximum following count.
|
|
72
|
+
#
|
|
73
|
+
# @return [Integer, nil]
|
|
74
|
+
optional :max_following, Integer
|
|
75
|
+
|
|
76
|
+
# @!attribute max_statuses
|
|
77
|
+
# Maximum post count. maxPosts is also accepted.
|
|
78
|
+
#
|
|
79
|
+
# @return [Integer, nil]
|
|
80
|
+
optional :max_statuses, Integer
|
|
81
|
+
|
|
82
|
+
# @!attribute min_account_age_days
|
|
83
|
+
# Minimum account age in whole days.
|
|
84
|
+
#
|
|
85
|
+
# @return [Integer, nil]
|
|
86
|
+
optional :min_account_age_days, Integer
|
|
87
|
+
|
|
88
|
+
# @!attribute min_followers
|
|
89
|
+
# Minimum follower count. Filtering happens before billing.
|
|
90
|
+
#
|
|
91
|
+
# @return [Integer, nil]
|
|
92
|
+
optional :min_followers, Integer
|
|
93
|
+
|
|
94
|
+
# @!attribute min_following
|
|
95
|
+
# Minimum following count.
|
|
96
|
+
#
|
|
97
|
+
# @return [Integer, nil]
|
|
98
|
+
optional :min_following, Integer
|
|
99
|
+
|
|
100
|
+
# @!attribute min_statuses
|
|
101
|
+
# Minimum post count. minPosts is also accepted.
|
|
102
|
+
#
|
|
103
|
+
# @return [Integer, nil]
|
|
104
|
+
optional :min_statuses, Integer
|
|
105
|
+
|
|
106
|
+
# @!attribute mode
|
|
107
|
+
# Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
|
|
108
|
+
# Coverage returns diagnostics once and rejects cursors.
|
|
109
|
+
#
|
|
110
|
+
# @return [Symbol, XTwitterScraper::Models::X::UserRetrieveFollowersParams::Mode, nil]
|
|
111
|
+
optional :mode, enum: -> { XTwitterScraper::X::UserRetrieveFollowersParams::Mode }
|
|
112
|
+
|
|
38
113
|
# @!attribute page_size
|
|
39
|
-
# Maximum user profiles
|
|
40
|
-
#
|
|
41
|
-
# remaining credits cover fewer results. Keep requesting next_cursor while
|
|
42
|
-
# has_next_page is true. The deprecated limit and count aliases remain accepted.
|
|
114
|
+
# Maximum user profiles: automatic 300; standard 200. Sources return fewer
|
|
115
|
+
# profiles. Continue with has_next_page.
|
|
43
116
|
#
|
|
44
117
|
# @return [Integer, nil]
|
|
45
118
|
optional :page_size, Integer
|
|
46
119
|
|
|
47
|
-
# @!
|
|
120
|
+
# @!attribute username_contains
|
|
121
|
+
# Match a username substring, ignoring case.
|
|
122
|
+
#
|
|
123
|
+
# @return [String, nil]
|
|
124
|
+
optional :username_contains, String
|
|
125
|
+
|
|
126
|
+
# @!attribute verified_only
|
|
127
|
+
# Only return verified profiles.
|
|
128
|
+
#
|
|
129
|
+
# @return [Boolean, nil]
|
|
130
|
+
optional :verified_only, XTwitterScraper::Internal::Type::Boolean
|
|
131
|
+
|
|
132
|
+
# @!attribute verified_type
|
|
133
|
+
# Match the verification type exactly, ignoring case.
|
|
134
|
+
#
|
|
135
|
+
# @return [String, nil]
|
|
136
|
+
optional :verified_type, String
|
|
137
|
+
|
|
138
|
+
# @!method initialize(id:, after: nil, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, limit: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, mode: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
|
|
48
139
|
# Some parameter documentations has been truncated, see
|
|
49
140
|
# {XTwitterScraper::Models::X::UserRetrieveFollowersParams} for more details.
|
|
50
141
|
#
|
|
@@ -52,13 +143,55 @@ module XTwitterScraper
|
|
|
52
143
|
#
|
|
53
144
|
# @param after [String] Legacy cursor alias. Prefer cursor.
|
|
54
145
|
#
|
|
55
|
-
# @param
|
|
146
|
+
# @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
|
|
147
|
+
#
|
|
148
|
+
# @param cursor [String] Cursor from the previous response. Xquik cursors resume automatic coverage. Exis
|
|
149
|
+
#
|
|
150
|
+
# @param has_location [Boolean] Only return profiles with a location.
|
|
151
|
+
#
|
|
152
|
+
# @param has_website [Boolean] Only return profiles with a website.
|
|
153
|
+
#
|
|
154
|
+
# @param limit [Integer] Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
|
|
56
155
|
#
|
|
57
|
-
# @param
|
|
156
|
+
# @param location_contains [String] Match a location substring, ignoring case.
|
|
58
157
|
#
|
|
59
|
-
# @param
|
|
158
|
+
# @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
|
|
159
|
+
#
|
|
160
|
+
# @param max_following [Integer] Maximum following count.
|
|
161
|
+
#
|
|
162
|
+
# @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
|
|
163
|
+
#
|
|
164
|
+
# @param min_account_age_days [Integer] Minimum account age in whole days.
|
|
165
|
+
#
|
|
166
|
+
# @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
|
|
167
|
+
#
|
|
168
|
+
# @param min_following [Integer] Minimum following count.
|
|
169
|
+
#
|
|
170
|
+
# @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
|
|
171
|
+
#
|
|
172
|
+
# @param mode [Symbol, XTwitterScraper::Models::X::UserRetrieveFollowersParams::Mode] Omit mode for resumable maximum coverage. Standard keeps legacy pagination. Cove
|
|
173
|
+
#
|
|
174
|
+
# @param page_size [Integer] Maximum user profiles: automatic 300; standard 200. Sources return fewer profile
|
|
175
|
+
#
|
|
176
|
+
# @param username_contains [String] Match a username substring, ignoring case.
|
|
177
|
+
#
|
|
178
|
+
# @param verified_only [Boolean] Only return verified profiles.
|
|
179
|
+
#
|
|
180
|
+
# @param verified_type [String] Match the verification type exactly, ignoring case.
|
|
60
181
|
#
|
|
61
182
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
|
|
183
|
+
|
|
184
|
+
# Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
|
|
185
|
+
# Coverage returns diagnostics once and rejects cursors.
|
|
186
|
+
module Mode
|
|
187
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
188
|
+
|
|
189
|
+
STANDARD = :standard
|
|
190
|
+
COVERAGE = :coverage
|
|
191
|
+
|
|
192
|
+
# @!method self.values
|
|
193
|
+
# @return [Array<Symbol>]
|
|
194
|
+
end
|
|
62
195
|
end
|
|
63
196
|
end
|
|
64
197
|
end
|