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
|
@@ -17,6 +17,12 @@ module XTwitterScraper
|
|
|
17
17
|
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::ToolType]
|
|
18
18
|
required :tool_type, enum: -> { XTwitterScraper::ExtractionRunParams::ToolType }, api_name: :toolType
|
|
19
19
|
|
|
20
|
+
# @!attribute dry_run
|
|
21
|
+
# Estimate cost without creating an extraction.
|
|
22
|
+
#
|
|
23
|
+
# @return [Boolean, nil]
|
|
24
|
+
optional :dry_run, XTwitterScraper::Internal::Type::Boolean
|
|
25
|
+
|
|
20
26
|
# @!attribute advanced_query
|
|
21
27
|
# Raw advanced search query appended as-is (tweet_search_extractor)
|
|
22
28
|
#
|
|
@@ -30,30 +36,86 @@ module XTwitterScraper
|
|
|
30
36
|
# @return [String, nil]
|
|
31
37
|
optional :any_words, String, api_name: :anyWords
|
|
32
38
|
|
|
39
|
+
# @!attribute bio_contains
|
|
40
|
+
# Bio terms separated by commas or lines.
|
|
41
|
+
#
|
|
42
|
+
# @return [String, nil]
|
|
43
|
+
optional :bio_contains, String, api_name: :bioContains
|
|
44
|
+
|
|
45
|
+
# @!attribute blue_verified_only
|
|
46
|
+
# Return only Blue-verified Tweet authors.
|
|
47
|
+
#
|
|
48
|
+
# @return [Boolean, nil]
|
|
49
|
+
optional :blue_verified_only, XTwitterScraper::Internal::Type::Boolean, api_name: :blueVerifiedOnly
|
|
50
|
+
|
|
33
51
|
# @!attribute bounding_box
|
|
34
52
|
# Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
|
|
35
53
|
#
|
|
36
54
|
# @return [String, nil]
|
|
37
55
|
optional :bounding_box, String, api_name: :boundingBox
|
|
38
56
|
|
|
57
|
+
# @!attribute card_name
|
|
58
|
+
# Match the Tweet card name.
|
|
59
|
+
#
|
|
60
|
+
# @return [String, nil]
|
|
61
|
+
optional :card_name, String, api_name: :cardName
|
|
62
|
+
|
|
39
63
|
# @!attribute cashtags
|
|
40
64
|
# Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
41
65
|
#
|
|
42
66
|
# @return [String, nil]
|
|
43
67
|
optional :cashtags, String
|
|
44
68
|
|
|
69
|
+
# @!attribute collection_strategy
|
|
70
|
+
# Reply collection strategy.
|
|
71
|
+
#
|
|
72
|
+
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::CollectionStrategy, nil]
|
|
73
|
+
optional :collection_strategy,
|
|
74
|
+
enum: -> { XTwitterScraper::ExtractionRunParams::CollectionStrategy },
|
|
75
|
+
api_name: :collectionStrategy
|
|
76
|
+
|
|
45
77
|
# @!attribute conversation_id
|
|
46
78
|
# Conversation ID filter (tweet_search_extractor)
|
|
47
79
|
#
|
|
48
80
|
# @return [String, nil]
|
|
49
81
|
optional :conversation_id, String, api_name: :conversationId
|
|
50
82
|
|
|
83
|
+
# @!attribute dedupe_across_targets
|
|
84
|
+
# Merge duplicate results across collection targets.
|
|
85
|
+
#
|
|
86
|
+
# @return [Boolean, nil]
|
|
87
|
+
optional :dedupe_across_targets,
|
|
88
|
+
XTwitterScraper::Internal::Type::Boolean,
|
|
89
|
+
api_name: :dedupeAcrossTargets
|
|
90
|
+
|
|
91
|
+
# @!attribute dedupe_mode
|
|
92
|
+
# Keep target duplicates, first rows, or merged overlap.
|
|
93
|
+
#
|
|
94
|
+
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::DedupeMode, nil]
|
|
95
|
+
optional :dedupe_mode,
|
|
96
|
+
enum: -> { XTwitterScraper::ExtractionRunParams::DedupeMode },
|
|
97
|
+
api_name: :dedupeMode
|
|
98
|
+
|
|
51
99
|
# @!attribute exact_phrase
|
|
52
100
|
# Exact phrase to match (tweet_search_extractor)
|
|
53
101
|
#
|
|
54
102
|
# @return [String, nil]
|
|
55
103
|
optional :exact_phrase, String, api_name: :exactPhrase
|
|
56
104
|
|
|
105
|
+
# @!attribute exclude_original_author
|
|
106
|
+
# Exclude replies from the source author.
|
|
107
|
+
#
|
|
108
|
+
# @return [Boolean, nil]
|
|
109
|
+
optional :exclude_original_author,
|
|
110
|
+
XTwitterScraper::Internal::Type::Boolean,
|
|
111
|
+
api_name: :excludeOriginalAuthor
|
|
112
|
+
|
|
113
|
+
# @!attribute exclude_source
|
|
114
|
+
# Exclude a source application.
|
|
115
|
+
#
|
|
116
|
+
# @return [String, nil]
|
|
117
|
+
optional :exclude_source, String, api_name: :excludeSource
|
|
118
|
+
|
|
57
119
|
# @!attribute exclude_words
|
|
58
120
|
# Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
|
|
59
121
|
# (tweet_search_extractor)
|
|
@@ -67,12 +129,58 @@ module XTwitterScraper
|
|
|
67
129
|
# @return [String, nil]
|
|
68
130
|
optional :from_user, String, api_name: :fromUser
|
|
69
131
|
|
|
132
|
+
# @!attribute geocode
|
|
133
|
+
# Match latitude, longitude, and radius.
|
|
134
|
+
#
|
|
135
|
+
# @return [String, nil]
|
|
136
|
+
optional :geocode, String
|
|
137
|
+
|
|
70
138
|
# @!attribute hashtags
|
|
71
139
|
# Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
72
140
|
#
|
|
73
141
|
# @return [String, nil]
|
|
74
142
|
optional :hashtags, String
|
|
75
143
|
|
|
144
|
+
# @!attribute has_location
|
|
145
|
+
# Require a profile location.
|
|
146
|
+
#
|
|
147
|
+
# @return [Boolean, nil]
|
|
148
|
+
optional :has_location, XTwitterScraper::Internal::Type::Boolean, api_name: :hasLocation
|
|
149
|
+
|
|
150
|
+
# @!attribute has_media_only
|
|
151
|
+
# Return only replies with media.
|
|
152
|
+
#
|
|
153
|
+
# @return [Boolean, nil]
|
|
154
|
+
optional :has_media_only, XTwitterScraper::Internal::Type::Boolean, api_name: :hasMediaOnly
|
|
155
|
+
|
|
156
|
+
# @!attribute has_website
|
|
157
|
+
# Require a profile website.
|
|
158
|
+
#
|
|
159
|
+
# @return [Boolean, nil]
|
|
160
|
+
optional :has_website, XTwitterScraper::Internal::Type::Boolean, api_name: :hasWebsite
|
|
161
|
+
|
|
162
|
+
# @!attribute include_original_post
|
|
163
|
+
# Include the source post in reply results.
|
|
164
|
+
#
|
|
165
|
+
# @return [Boolean, nil]
|
|
166
|
+
optional :include_original_post,
|
|
167
|
+
XTwitterScraper::Internal::Type::Boolean,
|
|
168
|
+
api_name: :includeOriginalPost
|
|
169
|
+
|
|
170
|
+
# @!attribute include_search_terms
|
|
171
|
+
# Add matching search terms to collection metadata.
|
|
172
|
+
#
|
|
173
|
+
# @return [Boolean, nil]
|
|
174
|
+
optional :include_search_terms, XTwitterScraper::Internal::Type::Boolean, api_name: :includeSearchTerms
|
|
175
|
+
|
|
176
|
+
# @!attribute include_target_metadata
|
|
177
|
+
# Add source target metadata to each result.
|
|
178
|
+
#
|
|
179
|
+
# @return [Boolean, nil]
|
|
180
|
+
optional :include_target_metadata,
|
|
181
|
+
XTwitterScraper::Internal::Type::Boolean,
|
|
182
|
+
api_name: :includeTargetMetadata
|
|
183
|
+
|
|
76
184
|
# @!attribute in_reply_to_tweet_id
|
|
77
185
|
# Only replies to this tweet ID (tweet_search_extractor)
|
|
78
186
|
#
|
|
@@ -91,6 +199,78 @@ module XTwitterScraper
|
|
|
91
199
|
# @return [String, nil]
|
|
92
200
|
optional :list_id, String, api_name: :listId
|
|
93
201
|
|
|
202
|
+
# @!attribute location_contains
|
|
203
|
+
# Required profile location text.
|
|
204
|
+
#
|
|
205
|
+
# @return [String, nil]
|
|
206
|
+
optional :location_contains, String, api_name: :locationContains
|
|
207
|
+
|
|
208
|
+
# @!attribute max_depth
|
|
209
|
+
# Maximum nested reply depth.
|
|
210
|
+
#
|
|
211
|
+
# @return [Integer, nil]
|
|
212
|
+
optional :max_depth, Integer, api_name: :maxDepth
|
|
213
|
+
|
|
214
|
+
# @!attribute max_followers
|
|
215
|
+
# Maximum follower count for profile results.
|
|
216
|
+
#
|
|
217
|
+
# @return [Integer, nil]
|
|
218
|
+
optional :max_followers, Integer, api_name: :maxFollowers
|
|
219
|
+
|
|
220
|
+
# @!attribute max_following
|
|
221
|
+
# Maximum following count for profile results.
|
|
222
|
+
#
|
|
223
|
+
# @return [Integer, nil]
|
|
224
|
+
optional :max_following, Integer, api_name: :maxFollowing
|
|
225
|
+
|
|
226
|
+
# @!attribute max_id
|
|
227
|
+
# Return Tweets older than this Tweet ID.
|
|
228
|
+
#
|
|
229
|
+
# @return [String, nil]
|
|
230
|
+
optional :max_id, String, api_name: :maxId
|
|
231
|
+
|
|
232
|
+
# @!attribute max_items_per_target
|
|
233
|
+
# Maximum results collected for each target.
|
|
234
|
+
#
|
|
235
|
+
# @return [Integer, nil]
|
|
236
|
+
optional :max_items_per_target, Integer, api_name: :maxItemsPerTarget
|
|
237
|
+
|
|
238
|
+
# @!attribute max_likes
|
|
239
|
+
# Maximum Tweet like count.
|
|
240
|
+
#
|
|
241
|
+
# @return [Integer, nil]
|
|
242
|
+
optional :max_likes, Integer, api_name: :maxLikes
|
|
243
|
+
|
|
244
|
+
# @!attribute max_pages_per_target
|
|
245
|
+
# Reply pages collected for each target.
|
|
246
|
+
#
|
|
247
|
+
# @return [Integer, nil]
|
|
248
|
+
optional :max_pages_per_target, Integer, api_name: :maxPagesPerTarget
|
|
249
|
+
|
|
250
|
+
# @!attribute max_posts
|
|
251
|
+
# Maximum post count for profile results.
|
|
252
|
+
#
|
|
253
|
+
# @return [Integer, nil]
|
|
254
|
+
optional :max_posts, Integer, api_name: :maxPosts
|
|
255
|
+
|
|
256
|
+
# @!attribute max_quotes
|
|
257
|
+
# Maximum Tweet quote count.
|
|
258
|
+
#
|
|
259
|
+
# @return [Integer, nil]
|
|
260
|
+
optional :max_quotes, Integer, api_name: :maxQuotes
|
|
261
|
+
|
|
262
|
+
# @!attribute max_replies
|
|
263
|
+
# Maximum Tweet reply count.
|
|
264
|
+
#
|
|
265
|
+
# @return [Integer, nil]
|
|
266
|
+
optional :max_replies, Integer, api_name: :maxReplies
|
|
267
|
+
|
|
268
|
+
# @!attribute max_retweets
|
|
269
|
+
# Maximum Tweet repost count.
|
|
270
|
+
#
|
|
271
|
+
# @return [Integer, nil]
|
|
272
|
+
optional :max_retweets, Integer, api_name: :maxRetweets
|
|
273
|
+
|
|
94
274
|
# @!attribute media_type
|
|
95
275
|
# Media type filter (tweet_search_extractor)
|
|
96
276
|
#
|
|
@@ -103,12 +283,42 @@ module XTwitterScraper
|
|
|
103
283
|
# @return [String, nil]
|
|
104
284
|
optional :mentioning, String
|
|
105
285
|
|
|
286
|
+
# @!attribute min_account_age_days
|
|
287
|
+
# Minimum profile age in days.
|
|
288
|
+
#
|
|
289
|
+
# @return [Integer, nil]
|
|
290
|
+
optional :min_account_age_days, Integer, api_name: :minAccountAgeDays
|
|
291
|
+
|
|
292
|
+
# @!attribute min_bookmarks
|
|
293
|
+
# Minimum Tweet bookmark count.
|
|
294
|
+
#
|
|
295
|
+
# @return [Integer, nil]
|
|
296
|
+
optional :min_bookmarks, Integer, api_name: :minBookmarks
|
|
297
|
+
|
|
106
298
|
# @!attribute min_faves
|
|
107
299
|
# Minimum likes threshold (tweet_search_extractor)
|
|
108
300
|
#
|
|
109
301
|
# @return [Integer, nil]
|
|
110
302
|
optional :min_faves, Integer, api_name: :minFaves
|
|
111
303
|
|
|
304
|
+
# @!attribute min_followers
|
|
305
|
+
# Minimum follower count for profile results.
|
|
306
|
+
#
|
|
307
|
+
# @return [Integer, nil]
|
|
308
|
+
optional :min_followers, Integer, api_name: :minFollowers
|
|
309
|
+
|
|
310
|
+
# @!attribute min_following
|
|
311
|
+
# Minimum following count for profile results.
|
|
312
|
+
#
|
|
313
|
+
# @return [Integer, nil]
|
|
314
|
+
optional :min_following, Integer, api_name: :minFollowing
|
|
315
|
+
|
|
316
|
+
# @!attribute min_posts
|
|
317
|
+
# Minimum post count for profile results.
|
|
318
|
+
#
|
|
319
|
+
# @return [Integer, nil]
|
|
320
|
+
optional :min_posts, Integer, api_name: :minPosts
|
|
321
|
+
|
|
112
322
|
# @!attribute min_quotes
|
|
113
323
|
# Minimum quote count threshold (tweet_search_extractor)
|
|
114
324
|
#
|
|
@@ -127,6 +337,36 @@ module XTwitterScraper
|
|
|
127
337
|
# @return [Integer, nil]
|
|
128
338
|
optional :min_retweets, Integer, api_name: :minRetweets
|
|
129
339
|
|
|
340
|
+
# @!attribute min_views
|
|
341
|
+
# Minimum Tweet view count.
|
|
342
|
+
#
|
|
343
|
+
# @return [Integer, nil]
|
|
344
|
+
optional :min_views, Integer, api_name: :minViews
|
|
345
|
+
|
|
346
|
+
# @!attribute native_retweets
|
|
347
|
+
# Only return native reposts.
|
|
348
|
+
#
|
|
349
|
+
# @return [Boolean, nil]
|
|
350
|
+
optional :native_retweets, XTwitterScraper::Internal::Type::Boolean, api_name: :nativeRetweets
|
|
351
|
+
|
|
352
|
+
# @!attribute near
|
|
353
|
+
# Match a place name.
|
|
354
|
+
#
|
|
355
|
+
# @return [String, nil]
|
|
356
|
+
optional :near, String
|
|
357
|
+
|
|
358
|
+
# @!attribute news
|
|
359
|
+
# Only return news results.
|
|
360
|
+
#
|
|
361
|
+
# @return [Boolean, nil]
|
|
362
|
+
optional :news, XTwitterScraper::Internal::Type::Boolean
|
|
363
|
+
|
|
364
|
+
# @!attribute overlap_mode
|
|
365
|
+
# Shortcut for dedupeMode=merge.
|
|
366
|
+
#
|
|
367
|
+
# @return [Boolean, nil]
|
|
368
|
+
optional :overlap_mode, XTwitterScraper::Internal::Type::Boolean, api_name: :overlapMode
|
|
369
|
+
|
|
130
370
|
# @!attribute place
|
|
131
371
|
# Search within a place ID (tweet_search_extractor)
|
|
132
372
|
#
|
|
@@ -145,6 +385,12 @@ module XTwitterScraper
|
|
|
145
385
|
# @return [String, nil]
|
|
146
386
|
optional :point_radius, String, api_name: :pointRadius
|
|
147
387
|
|
|
388
|
+
# @!attribute query_type
|
|
389
|
+
# Search ranking applied to every query.
|
|
390
|
+
#
|
|
391
|
+
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::QueryType, nil]
|
|
392
|
+
optional :query_type, enum: -> { XTwitterScraper::ExtractionRunParams::QueryType }, api_name: :queryType
|
|
393
|
+
|
|
148
394
|
# @!attribute quotes
|
|
149
395
|
# Quote mode (tweet_search_extractor)
|
|
150
396
|
#
|
|
@@ -157,6 +403,16 @@ module XTwitterScraper
|
|
|
157
403
|
# @return [String, nil]
|
|
158
404
|
optional :quotes_of_tweet_id, String, api_name: :quotesOfTweetId
|
|
159
405
|
|
|
406
|
+
# @!attribute relation_targets
|
|
407
|
+
# Profile relations processed within one job.
|
|
408
|
+
#
|
|
409
|
+
# @return [Array<XTwitterScraper::Models::ExtractionRunParams::RelationTarget>, nil]
|
|
410
|
+
optional :relation_targets,
|
|
411
|
+
-> {
|
|
412
|
+
XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::ExtractionRunParams::RelationTarget]
|
|
413
|
+
},
|
|
414
|
+
api_name: :relationTargets
|
|
415
|
+
|
|
160
416
|
# @!attribute replies
|
|
161
417
|
# Reply mode (tweet_search_extractor)
|
|
162
418
|
#
|
|
@@ -182,6 +438,24 @@ module XTwitterScraper
|
|
|
182
438
|
# @return [String, nil]
|
|
183
439
|
optional :retweets_of_tweet_id, String, api_name: :retweetsOfTweetId
|
|
184
440
|
|
|
441
|
+
# @!attribute safe
|
|
442
|
+
# Enable the safe-search filter.
|
|
443
|
+
#
|
|
444
|
+
# @return [Boolean, nil]
|
|
445
|
+
optional :safe, XTwitterScraper::Internal::Type::Boolean
|
|
446
|
+
|
|
447
|
+
# @!attribute scope
|
|
448
|
+
# Reply depth scope.
|
|
449
|
+
#
|
|
450
|
+
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::Scope, nil]
|
|
451
|
+
optional :scope, enum: -> { XTwitterScraper::ExtractionRunParams::Scope }
|
|
452
|
+
|
|
453
|
+
# @!attribute search_queries
|
|
454
|
+
# Search queries processed as one collection job.
|
|
455
|
+
#
|
|
456
|
+
# @return [Array<String>, nil]
|
|
457
|
+
optional :search_queries, XTwitterScraper::Internal::Type::ArrayOf[String], api_name: :searchQueries
|
|
458
|
+
|
|
185
459
|
# @!attribute search_query
|
|
186
460
|
# Required for tweet_search_extractor & community_search.
|
|
187
461
|
#
|
|
@@ -194,12 +468,54 @@ module XTwitterScraper
|
|
|
194
468
|
# @return [Date, nil]
|
|
195
469
|
optional :since_date, Date, api_name: :sinceDate
|
|
196
470
|
|
|
471
|
+
# @!attribute since_id
|
|
472
|
+
# Return Tweets newer than this Tweet ID.
|
|
473
|
+
#
|
|
474
|
+
# @return [String, nil]
|
|
475
|
+
optional :since_id, String, api_name: :sinceId
|
|
476
|
+
|
|
477
|
+
# @!attribute since_time
|
|
478
|
+
# Reply start time as ISO 8601 or Unix seconds.
|
|
479
|
+
#
|
|
480
|
+
# @return [Time, Integer, nil]
|
|
481
|
+
optional :since_time,
|
|
482
|
+
union: -> {
|
|
483
|
+
XTwitterScraper::ExtractionRunParams::SinceTime
|
|
484
|
+
},
|
|
485
|
+
api_name: :sinceTime
|
|
486
|
+
|
|
487
|
+
# @!attribute sort
|
|
488
|
+
# Reply result order.
|
|
489
|
+
#
|
|
490
|
+
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::Sort, nil]
|
|
491
|
+
optional :sort, enum: -> { XTwitterScraper::ExtractionRunParams::Sort }
|
|
492
|
+
|
|
493
|
+
# @!attribute source
|
|
494
|
+
# Match the source application.
|
|
495
|
+
#
|
|
496
|
+
# @return [String, nil]
|
|
497
|
+
optional :source, String
|
|
498
|
+
|
|
499
|
+
# @!attribute start_cursor
|
|
500
|
+
# Resume one reply target from this cursor.
|
|
501
|
+
#
|
|
502
|
+
# @return [String, nil]
|
|
503
|
+
optional :start_cursor, String, api_name: :startCursor
|
|
504
|
+
|
|
197
505
|
# @!attribute target_community_id
|
|
198
506
|
# Required for community_post_extractor & community_search.
|
|
199
507
|
#
|
|
200
508
|
# @return [String, nil]
|
|
201
509
|
optional :target_community_id, String, api_name: :targetCommunityId
|
|
202
510
|
|
|
511
|
+
# @!attribute target_community_ids
|
|
512
|
+
# Community IDs processed as one collection job.
|
|
513
|
+
#
|
|
514
|
+
# @return [Array<String>, nil]
|
|
515
|
+
optional :target_community_ids,
|
|
516
|
+
XTwitterScraper::Internal::Type::ArrayOf[String],
|
|
517
|
+
api_name: :targetCommunityIds
|
|
518
|
+
|
|
203
519
|
# @!attribute target_list_id
|
|
204
520
|
# Required for list_follower_explorer, list_member_extractor &
|
|
205
521
|
# list_post_extractor.
|
|
@@ -207,6 +523,19 @@ module XTwitterScraper
|
|
|
207
523
|
# @return [String, nil]
|
|
208
524
|
optional :target_list_id, String, api_name: :targetListId
|
|
209
525
|
|
|
526
|
+
# @!attribute target_list_ids
|
|
527
|
+
# List IDs processed as one collection job.
|
|
528
|
+
#
|
|
529
|
+
# @return [Array<String>, nil]
|
|
530
|
+
optional :target_list_ids, XTwitterScraper::Internal::Type::ArrayOf[String], api_name: :targetListIds
|
|
531
|
+
|
|
532
|
+
# @!attribute targets
|
|
533
|
+
# Mixed targets auto-routed within one job.
|
|
534
|
+
#
|
|
535
|
+
# @return [Array<String, XTwitterScraper::Models::ExtractionRunParams::Target::UnionMember1>, nil]
|
|
536
|
+
optional :targets,
|
|
537
|
+
-> { XTwitterScraper::Internal::Type::ArrayOf[union: XTwitterScraper::ExtractionRunParams::Target] }
|
|
538
|
+
|
|
210
539
|
# @!attribute target_space_id
|
|
211
540
|
# Required for space_explorer.
|
|
212
541
|
#
|
|
@@ -218,11 +547,23 @@ module XTwitterScraper
|
|
|
218
547
|
# @return [String, nil]
|
|
219
548
|
optional :target_tweet_id, String, api_name: :targetTweetId
|
|
220
549
|
|
|
550
|
+
# @!attribute target_tweet_ids
|
|
551
|
+
# Tweet IDs processed as one collection job.
|
|
552
|
+
#
|
|
553
|
+
# @return [Array<String>, nil]
|
|
554
|
+
optional :target_tweet_ids, XTwitterScraper::Internal::Type::ArrayOf[String], api_name: :targetTweetIds
|
|
555
|
+
|
|
221
556
|
# @!attribute target_username
|
|
222
557
|
#
|
|
223
558
|
# @return [String, nil]
|
|
224
559
|
optional :target_username, String, api_name: :targetUsername
|
|
225
560
|
|
|
561
|
+
# @!attribute target_usernames
|
|
562
|
+
# Usernames processed as one collection job.
|
|
563
|
+
#
|
|
564
|
+
# @return [Array<String>, nil]
|
|
565
|
+
optional :target_usernames, XTwitterScraper::Internal::Type::ArrayOf[String], api_name: :targetUsernames
|
|
566
|
+
|
|
226
567
|
# @!attribute to_user
|
|
227
568
|
# Filter replies sent to a username (tweet_search_extractor)
|
|
228
569
|
#
|
|
@@ -235,70 +576,184 @@ module XTwitterScraper
|
|
|
235
576
|
# @return [Date, nil]
|
|
236
577
|
optional :until_date, Date, api_name: :untilDate
|
|
237
578
|
|
|
579
|
+
# @!attribute until_time
|
|
580
|
+
# Reply end time as ISO 8601 or Unix seconds.
|
|
581
|
+
#
|
|
582
|
+
# @return [Time, Integer, nil]
|
|
583
|
+
optional :until_time,
|
|
584
|
+
union: -> {
|
|
585
|
+
XTwitterScraper::ExtractionRunParams::UntilTime
|
|
586
|
+
},
|
|
587
|
+
api_name: :untilTime
|
|
588
|
+
|
|
238
589
|
# @!attribute url
|
|
239
590
|
# URL substring or domain filter (tweet_search_extractor)
|
|
240
591
|
#
|
|
241
592
|
# @return [String, nil]
|
|
242
593
|
optional :url, String
|
|
243
594
|
|
|
595
|
+
# @!attribute username_contains
|
|
596
|
+
# Required username text.
|
|
597
|
+
#
|
|
598
|
+
# @return [String, nil]
|
|
599
|
+
optional :username_contains, String, api_name: :usernameContains
|
|
600
|
+
|
|
244
601
|
# @!attribute verified_only
|
|
245
602
|
# Only verified authors (tweet_search_extractor)
|
|
246
603
|
#
|
|
247
604
|
# @return [Boolean, nil]
|
|
248
605
|
optional :verified_only, XTwitterScraper::Internal::Type::Boolean, api_name: :verifiedOnly
|
|
249
606
|
|
|
250
|
-
# @!
|
|
607
|
+
# @!attribute verified_type
|
|
608
|
+
# Exact profile verification type.
|
|
609
|
+
#
|
|
610
|
+
# @return [String, nil]
|
|
611
|
+
optional :verified_type, String, api_name: :verifiedType
|
|
612
|
+
|
|
613
|
+
# @!attribute within
|
|
614
|
+
# Set the radius for the near filter.
|
|
615
|
+
#
|
|
616
|
+
# @return [String, nil]
|
|
617
|
+
optional :within, String
|
|
618
|
+
|
|
619
|
+
# @!attribute within_time
|
|
620
|
+
# Match Tweets inside a recent time window.
|
|
621
|
+
#
|
|
622
|
+
# @return [String, nil]
|
|
623
|
+
optional :within_time, String, api_name: :withinTime
|
|
624
|
+
|
|
625
|
+
# @!method initialize(tool_type:, dry_run: nil, advanced_query: nil, any_words: nil, bio_contains: nil, blue_verified_only: nil, bounding_box: nil, card_name: nil, cashtags: nil, collection_strategy: nil, conversation_id: nil, dedupe_across_targets: nil, dedupe_mode: nil, exact_phrase: nil, exclude_original_author: nil, exclude_source: nil, exclude_words: nil, from_user: nil, geocode: nil, hashtags: nil, has_location: nil, has_media_only: nil, has_website: nil, include_original_post: nil, include_search_terms: nil, include_target_metadata: nil, in_reply_to_tweet_id: nil, language: nil, list_id: nil, location_contains: nil, max_depth: nil, max_followers: nil, max_following: nil, max_id: nil, max_items_per_target: nil, max_likes: nil, max_pages_per_target: nil, max_posts: nil, max_quotes: nil, max_replies: nil, max_retweets: nil, media_type: nil, mentioning: nil, min_account_age_days: nil, min_bookmarks: nil, min_faves: nil, min_followers: nil, min_following: nil, min_posts: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, min_views: nil, native_retweets: nil, near: nil, news: nil, overlap_mode: nil, place: nil, place_country: nil, point_radius: nil, query_type: nil, quotes: nil, quotes_of_tweet_id: nil, relation_targets: nil, replies: nil, results_limit: nil, retweets: nil, retweets_of_tweet_id: nil, safe: nil, scope: nil, search_queries: nil, search_query: nil, since_date: nil, since_id: nil, since_time: nil, sort: nil, source: nil, start_cursor: nil, target_community_id: nil, target_community_ids: nil, target_list_id: nil, target_list_ids: nil, targets: nil, target_space_id: nil, target_tweet_id: nil, target_tweet_ids: nil, target_username: nil, target_usernames: nil, to_user: nil, until_date: nil, until_time: nil, url: nil, username_contains: nil, verified_only: nil, verified_type: nil, within: nil, within_time: nil, request_options: {})
|
|
251
626
|
# Some parameter documentations has been truncated, see
|
|
252
627
|
# {XTwitterScraper::Models::ExtractionRunParams} for more details.
|
|
253
628
|
#
|
|
254
629
|
# @param tool_type [Symbol, XTwitterScraper::Models::ExtractionRunParams::ToolType] Identifier for the extraction tool used to run a job.
|
|
255
630
|
#
|
|
631
|
+
# @param dry_run [Boolean] Estimate cost without creating an extraction.
|
|
632
|
+
#
|
|
256
633
|
# @param advanced_query [String] Raw advanced search query appended as-is (tweet_search_extractor)
|
|
257
634
|
#
|
|
258
635
|
# @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
|
|
259
636
|
#
|
|
637
|
+
# @param bio_contains [String] Bio terms separated by commas or lines.
|
|
638
|
+
#
|
|
639
|
+
# @param blue_verified_only [Boolean] Return only Blue-verified Tweet authors.
|
|
640
|
+
#
|
|
260
641
|
# @param bounding_box [String] Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
|
|
261
642
|
#
|
|
643
|
+
# @param card_name [String] Match the Tweet card name.
|
|
644
|
+
#
|
|
262
645
|
# @param cashtags [String] Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
263
646
|
#
|
|
647
|
+
# @param collection_strategy [Symbol, XTwitterScraper::Models::ExtractionRunParams::CollectionStrategy] Reply collection strategy.
|
|
648
|
+
#
|
|
264
649
|
# @param conversation_id [String] Conversation ID filter (tweet_search_extractor)
|
|
265
650
|
#
|
|
651
|
+
# @param dedupe_across_targets [Boolean] Merge duplicate results across collection targets.
|
|
652
|
+
#
|
|
653
|
+
# @param dedupe_mode [Symbol, XTwitterScraper::Models::ExtractionRunParams::DedupeMode] Keep target duplicates, first rows, or merged overlap.
|
|
654
|
+
#
|
|
266
655
|
# @param exact_phrase [String] Exact phrase to match (tweet_search_extractor)
|
|
267
656
|
#
|
|
657
|
+
# @param exclude_original_author [Boolean] Exclude replies from the source author.
|
|
658
|
+
#
|
|
659
|
+
# @param exclude_source [String] Exclude a source application.
|
|
660
|
+
#
|
|
268
661
|
# @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines. (twe
|
|
269
662
|
#
|
|
270
663
|
# @param from_user [String] Filter by author username (tweet_search_extractor)
|
|
271
664
|
#
|
|
665
|
+
# @param geocode [String] Match latitude, longitude, and radius.
|
|
666
|
+
#
|
|
272
667
|
# @param hashtags [String] Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
273
668
|
#
|
|
669
|
+
# @param has_location [Boolean] Require a profile location.
|
|
670
|
+
#
|
|
671
|
+
# @param has_media_only [Boolean] Return only replies with media.
|
|
672
|
+
#
|
|
673
|
+
# @param has_website [Boolean] Require a profile website.
|
|
674
|
+
#
|
|
675
|
+
# @param include_original_post [Boolean] Include the source post in reply results.
|
|
676
|
+
#
|
|
677
|
+
# @param include_search_terms [Boolean] Add matching search terms to collection metadata.
|
|
678
|
+
#
|
|
679
|
+
# @param include_target_metadata [Boolean] Add source target metadata to each result.
|
|
680
|
+
#
|
|
274
681
|
# @param in_reply_to_tweet_id [String] Only replies to this tweet ID (tweet_search_extractor)
|
|
275
682
|
#
|
|
276
683
|
# @param language [String] Language code filter (tweet_search_extractor)
|
|
277
684
|
#
|
|
278
685
|
# @param list_id [String] Search within a list ID (tweet_search_extractor)
|
|
279
686
|
#
|
|
687
|
+
# @param location_contains [String] Required profile location text.
|
|
688
|
+
#
|
|
689
|
+
# @param max_depth [Integer] Maximum nested reply depth.
|
|
690
|
+
#
|
|
691
|
+
# @param max_followers [Integer] Maximum follower count for profile results.
|
|
692
|
+
#
|
|
693
|
+
# @param max_following [Integer] Maximum following count for profile results.
|
|
694
|
+
#
|
|
695
|
+
# @param max_id [String] Return Tweets older than this Tweet ID.
|
|
696
|
+
#
|
|
697
|
+
# @param max_items_per_target [Integer] Maximum results collected for each target.
|
|
698
|
+
#
|
|
699
|
+
# @param max_likes [Integer] Maximum Tweet like count.
|
|
700
|
+
#
|
|
701
|
+
# @param max_pages_per_target [Integer] Reply pages collected for each target.
|
|
702
|
+
#
|
|
703
|
+
# @param max_posts [Integer] Maximum post count for profile results.
|
|
704
|
+
#
|
|
705
|
+
# @param max_quotes [Integer] Maximum Tweet quote count.
|
|
706
|
+
#
|
|
707
|
+
# @param max_replies [Integer] Maximum Tweet reply count.
|
|
708
|
+
#
|
|
709
|
+
# @param max_retweets [Integer] Maximum Tweet repost count.
|
|
710
|
+
#
|
|
280
711
|
# @param media_type [Symbol, XTwitterScraper::Models::ExtractionRunParams::MediaType] Media type filter (tweet_search_extractor)
|
|
281
712
|
#
|
|
282
713
|
# @param mentioning [String] Filter tweets mentioning a username (tweet_search_extractor)
|
|
283
714
|
#
|
|
715
|
+
# @param min_account_age_days [Integer] Minimum profile age in days.
|
|
716
|
+
#
|
|
717
|
+
# @param min_bookmarks [Integer] Minimum Tweet bookmark count.
|
|
718
|
+
#
|
|
284
719
|
# @param min_faves [Integer] Minimum likes threshold (tweet_search_extractor)
|
|
285
720
|
#
|
|
721
|
+
# @param min_followers [Integer] Minimum follower count for profile results.
|
|
722
|
+
#
|
|
723
|
+
# @param min_following [Integer] Minimum following count for profile results.
|
|
724
|
+
#
|
|
725
|
+
# @param min_posts [Integer] Minimum post count for profile results.
|
|
726
|
+
#
|
|
286
727
|
# @param min_quotes [Integer] Minimum quote count threshold (tweet_search_extractor)
|
|
287
728
|
#
|
|
288
729
|
# @param min_replies [Integer] Minimum replies threshold (tweet_search_extractor)
|
|
289
730
|
#
|
|
290
731
|
# @param min_retweets [Integer] Minimum retweets threshold (tweet_search_extractor)
|
|
291
732
|
#
|
|
733
|
+
# @param min_views [Integer] Minimum Tweet view count.
|
|
734
|
+
#
|
|
735
|
+
# @param native_retweets [Boolean] Only return native reposts.
|
|
736
|
+
#
|
|
737
|
+
# @param near [String] Match a place name.
|
|
738
|
+
#
|
|
739
|
+
# @param news [Boolean] Only return news results.
|
|
740
|
+
#
|
|
741
|
+
# @param overlap_mode [Boolean] Shortcut for dedupeMode=merge.
|
|
742
|
+
#
|
|
292
743
|
# @param place [String] Search within a place ID (tweet_search_extractor)
|
|
293
744
|
#
|
|
294
745
|
# @param place_country [String] Search within a country code (tweet_search_extractor)
|
|
295
746
|
#
|
|
296
747
|
# @param point_radius [String] Geo point radius, e.g. -73.99 40.73 25mi (tweet_search_extractor)
|
|
297
748
|
#
|
|
749
|
+
# @param query_type [Symbol, XTwitterScraper::Models::ExtractionRunParams::QueryType] Search ranking applied to every query.
|
|
750
|
+
#
|
|
298
751
|
# @param quotes [Symbol, XTwitterScraper::Models::ExtractionRunParams::Quotes] Quote mode (tweet_search_extractor)
|
|
299
752
|
#
|
|
300
753
|
# @param quotes_of_tweet_id [String] Only quotes of this tweet ID (tweet_search_extractor)
|
|
301
754
|
#
|
|
755
|
+
# @param relation_targets [Array<XTwitterScraper::Models::ExtractionRunParams::RelationTarget>] Profile relations processed within one job.
|
|
756
|
+
#
|
|
302
757
|
# @param replies [Symbol, XTwitterScraper::Models::ExtractionRunParams::Replies] Reply mode (tweet_search_extractor)
|
|
303
758
|
#
|
|
304
759
|
# @param results_limit [Integer] Maximum number of results to extract. When set, the extraction stops after reach
|
|
@@ -307,28 +762,64 @@ module XTwitterScraper
|
|
|
307
762
|
#
|
|
308
763
|
# @param retweets_of_tweet_id [String] Only retweets of this tweet ID (tweet_search_extractor)
|
|
309
764
|
#
|
|
765
|
+
# @param safe [Boolean] Enable the safe-search filter.
|
|
766
|
+
#
|
|
767
|
+
# @param scope [Symbol, XTwitterScraper::Models::ExtractionRunParams::Scope] Reply depth scope.
|
|
768
|
+
#
|
|
769
|
+
# @param search_queries [Array<String>] Search queries processed as one collection job.
|
|
770
|
+
#
|
|
310
771
|
# @param search_query [String] Required for tweet_search_extractor & community_search.
|
|
311
772
|
#
|
|
312
773
|
# @param since_date [Date] Start date YYYY-MM-DD (tweet_search_extractor)
|
|
313
774
|
#
|
|
775
|
+
# @param since_id [String] Return Tweets newer than this Tweet ID.
|
|
776
|
+
#
|
|
777
|
+
# @param since_time [Time, Integer] Reply start time as ISO 8601 or Unix seconds.
|
|
778
|
+
#
|
|
779
|
+
# @param sort [Symbol, XTwitterScraper::Models::ExtractionRunParams::Sort] Reply result order.
|
|
780
|
+
#
|
|
781
|
+
# @param source [String] Match the source application.
|
|
782
|
+
#
|
|
783
|
+
# @param start_cursor [String] Resume one reply target from this cursor.
|
|
784
|
+
#
|
|
314
785
|
# @param target_community_id [String] Required for community_post_extractor & community_search.
|
|
315
786
|
#
|
|
787
|
+
# @param target_community_ids [Array<String>] Community IDs processed as one collection job.
|
|
788
|
+
#
|
|
316
789
|
# @param target_list_id [String] Required for list_follower_explorer, list_member_extractor & list_post_extractor
|
|
317
790
|
#
|
|
791
|
+
# @param target_list_ids [Array<String>] List IDs processed as one collection job.
|
|
792
|
+
#
|
|
793
|
+
# @param targets [Array<String, XTwitterScraper::Models::ExtractionRunParams::Target::UnionMember1>] Mixed targets auto-routed within one job.
|
|
794
|
+
#
|
|
318
795
|
# @param target_space_id [String] Required for space_explorer.
|
|
319
796
|
#
|
|
320
797
|
# @param target_tweet_id [String]
|
|
321
798
|
#
|
|
799
|
+
# @param target_tweet_ids [Array<String>] Tweet IDs processed as one collection job.
|
|
800
|
+
#
|
|
322
801
|
# @param target_username [String]
|
|
323
802
|
#
|
|
803
|
+
# @param target_usernames [Array<String>] Usernames processed as one collection job.
|
|
804
|
+
#
|
|
324
805
|
# @param to_user [String] Filter replies sent to a username (tweet_search_extractor)
|
|
325
806
|
#
|
|
326
807
|
# @param until_date [Date] End date YYYY-MM-DD (tweet_search_extractor)
|
|
327
808
|
#
|
|
809
|
+
# @param until_time [Time, Integer] Reply end time as ISO 8601 or Unix seconds.
|
|
810
|
+
#
|
|
328
811
|
# @param url [String] URL substring or domain filter (tweet_search_extractor)
|
|
329
812
|
#
|
|
813
|
+
# @param username_contains [String] Required username text.
|
|
814
|
+
#
|
|
330
815
|
# @param verified_only [Boolean] Only verified authors (tweet_search_extractor)
|
|
331
816
|
#
|
|
817
|
+
# @param verified_type [String] Exact profile verification type.
|
|
818
|
+
#
|
|
819
|
+
# @param within [String] Set the radius for the near filter.
|
|
820
|
+
#
|
|
821
|
+
# @param within_time [String] Match Tweets inside a recent time window.
|
|
822
|
+
#
|
|
332
823
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
|
|
333
824
|
|
|
334
825
|
# Identifier for the extraction tool used to run a job.
|
|
@@ -363,6 +854,32 @@ module XTwitterScraper
|
|
|
363
854
|
# @return [Array<Symbol>]
|
|
364
855
|
end
|
|
365
856
|
|
|
857
|
+
# Reply collection strategy.
|
|
858
|
+
module CollectionStrategy
|
|
859
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
860
|
+
|
|
861
|
+
AUTO = :auto
|
|
862
|
+
COMPLETE = :complete
|
|
863
|
+
DIRECT = :direct
|
|
864
|
+
SEARCH = :search
|
|
865
|
+
THREAD = :thread
|
|
866
|
+
|
|
867
|
+
# @!method self.values
|
|
868
|
+
# @return [Array<Symbol>]
|
|
869
|
+
end
|
|
870
|
+
|
|
871
|
+
# Keep target duplicates, first rows, or merged overlap.
|
|
872
|
+
module DedupeMode
|
|
873
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
874
|
+
|
|
875
|
+
NONE = :none
|
|
876
|
+
FIRST = :first
|
|
877
|
+
MERGE = :merge
|
|
878
|
+
|
|
879
|
+
# @!method self.values
|
|
880
|
+
# @return [Array<Symbol>]
|
|
881
|
+
end
|
|
882
|
+
|
|
366
883
|
# Media type filter (tweet_search_extractor)
|
|
367
884
|
module MediaType
|
|
368
885
|
extend XTwitterScraper::Internal::Type::Enum
|
|
@@ -378,6 +895,18 @@ module XTwitterScraper
|
|
|
378
895
|
# @return [Array<Symbol>]
|
|
379
896
|
end
|
|
380
897
|
|
|
898
|
+
# Search ranking applied to every query.
|
|
899
|
+
module QueryType
|
|
900
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
901
|
+
|
|
902
|
+
LATEST = :Latest
|
|
903
|
+
TOP = :Top
|
|
904
|
+
BOTH = :Both
|
|
905
|
+
|
|
906
|
+
# @!method self.values
|
|
907
|
+
# @return [Array<Symbol>]
|
|
908
|
+
end
|
|
909
|
+
|
|
381
910
|
# Quote mode (tweet_search_extractor)
|
|
382
911
|
module Quotes
|
|
383
912
|
extend XTwitterScraper::Internal::Type::Enum
|
|
@@ -390,6 +919,39 @@ module XTwitterScraper
|
|
|
390
919
|
# @return [Array<Symbol>]
|
|
391
920
|
end
|
|
392
921
|
|
|
922
|
+
class RelationTarget < XTwitterScraper::Internal::Type::BaseModel
|
|
923
|
+
# @!attribute relation
|
|
924
|
+
#
|
|
925
|
+
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::RelationTarget::Relation]
|
|
926
|
+
required :relation, enum: -> { XTwitterScraper::ExtractionRunParams::RelationTarget::Relation }
|
|
927
|
+
|
|
928
|
+
# @!attribute value
|
|
929
|
+
#
|
|
930
|
+
# @return [String]
|
|
931
|
+
required :value, String
|
|
932
|
+
|
|
933
|
+
# @!method initialize(relation:, value:)
|
|
934
|
+
# One target and relation in a mixed profile collection.
|
|
935
|
+
#
|
|
936
|
+
# @param relation [Symbol, XTwitterScraper::Models::ExtractionRunParams::RelationTarget::Relation]
|
|
937
|
+
# @param value [String]
|
|
938
|
+
|
|
939
|
+
# @see XTwitterScraper::Models::ExtractionRunParams::RelationTarget#relation
|
|
940
|
+
module Relation
|
|
941
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
942
|
+
|
|
943
|
+
COMMUNITY_MEMBERS = :community_members
|
|
944
|
+
FOLLOWERS = :followers
|
|
945
|
+
FOLLOWING = :following
|
|
946
|
+
LIST_FOLLOWERS = :list_followers
|
|
947
|
+
LIST_MEMBERS = :list_members
|
|
948
|
+
VERIFIED_FOLLOWERS = :verified_followers
|
|
949
|
+
|
|
950
|
+
# @!method self.values
|
|
951
|
+
# @return [Array<Symbol>]
|
|
952
|
+
end
|
|
953
|
+
end
|
|
954
|
+
|
|
393
955
|
# Reply mode (tweet_search_extractor)
|
|
394
956
|
module Replies
|
|
395
957
|
extend XTwitterScraper::Internal::Type::Enum
|
|
@@ -413,6 +975,105 @@ module XTwitterScraper
|
|
|
413
975
|
# @!method self.values
|
|
414
976
|
# @return [Array<Symbol>]
|
|
415
977
|
end
|
|
978
|
+
|
|
979
|
+
# Reply depth scope.
|
|
980
|
+
module Scope
|
|
981
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
982
|
+
|
|
983
|
+
ALL = :all
|
|
984
|
+
DIRECT = :direct
|
|
985
|
+
NESTED = :nested
|
|
986
|
+
|
|
987
|
+
# @!method self.values
|
|
988
|
+
# @return [Array<Symbol>]
|
|
989
|
+
end
|
|
990
|
+
|
|
991
|
+
# Reply start time as ISO 8601 or Unix seconds.
|
|
992
|
+
module SinceTime
|
|
993
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
994
|
+
|
|
995
|
+
variant Time
|
|
996
|
+
|
|
997
|
+
variant Integer
|
|
998
|
+
|
|
999
|
+
# @!method self.variants
|
|
1000
|
+
# @return [Array(Time, Integer)]
|
|
1001
|
+
end
|
|
1002
|
+
|
|
1003
|
+
# Reply result order.
|
|
1004
|
+
module Sort
|
|
1005
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1006
|
+
|
|
1007
|
+
RELEVANCE = :relevance
|
|
1008
|
+
LATEST = :latest
|
|
1009
|
+
OLDEST = :oldest
|
|
1010
|
+
LIKES = :likes
|
|
1011
|
+
|
|
1012
|
+
# @!method self.values
|
|
1013
|
+
# @return [Array<Symbol>]
|
|
1014
|
+
end
|
|
1015
|
+
|
|
1016
|
+
# One auto-routed target in a mixed Tweet collection.
|
|
1017
|
+
module Target
|
|
1018
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
1019
|
+
|
|
1020
|
+
# X URL, numeric Tweet ID, @username, kind:value target, or search.
|
|
1021
|
+
variant String
|
|
1022
|
+
|
|
1023
|
+
variant -> { XTwitterScraper::ExtractionRunParams::Target::UnionMember1 }
|
|
1024
|
+
|
|
1025
|
+
class UnionMember1 < XTwitterScraper::Internal::Type::BaseModel
|
|
1026
|
+
# @!attribute kind
|
|
1027
|
+
#
|
|
1028
|
+
# @return [Symbol, XTwitterScraper::Models::ExtractionRunParams::Target::UnionMember1::Kind]
|
|
1029
|
+
required :kind, enum: -> { XTwitterScraper::ExtractionRunParams::Target::UnionMember1::Kind }
|
|
1030
|
+
|
|
1031
|
+
# @!attribute value
|
|
1032
|
+
#
|
|
1033
|
+
# @return [String]
|
|
1034
|
+
required :value, String
|
|
1035
|
+
|
|
1036
|
+
# @!method initialize(kind:, value:)
|
|
1037
|
+
# @param kind [Symbol, XTwitterScraper::Models::ExtractionRunParams::Target::UnionMember1::Kind]
|
|
1038
|
+
# @param value [String]
|
|
1039
|
+
|
|
1040
|
+
# @see XTwitterScraper::Models::ExtractionRunParams::Target::UnionMember1#kind
|
|
1041
|
+
module Kind
|
|
1042
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1043
|
+
|
|
1044
|
+
FAVORITERS = :favoriters
|
|
1045
|
+
LIST = :list
|
|
1046
|
+
PROFILE = :profile
|
|
1047
|
+
PROFILE_LIKES = :profile_likes
|
|
1048
|
+
PROFILE_MEDIA = :profile_media
|
|
1049
|
+
PROFILE_REPLIES = :profile_replies
|
|
1050
|
+
QUOTES = :quotes
|
|
1051
|
+
REPLIES = :replies
|
|
1052
|
+
RETWEETERS = :retweeters
|
|
1053
|
+
SEARCH = :search
|
|
1054
|
+
THREAD = :thread
|
|
1055
|
+
TWEET = :tweet
|
|
1056
|
+
|
|
1057
|
+
# @!method self.values
|
|
1058
|
+
# @return [Array<Symbol>]
|
|
1059
|
+
end
|
|
1060
|
+
end
|
|
1061
|
+
|
|
1062
|
+
# @!method self.variants
|
|
1063
|
+
# @return [Array(String, XTwitterScraper::Models::ExtractionRunParams::Target::UnionMember1)]
|
|
1064
|
+
end
|
|
1065
|
+
|
|
1066
|
+
# Reply end time as ISO 8601 or Unix seconds.
|
|
1067
|
+
module UntilTime
|
|
1068
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
1069
|
+
|
|
1070
|
+
variant Time
|
|
1071
|
+
|
|
1072
|
+
variant Integer
|
|
1073
|
+
|
|
1074
|
+
# @!method self.variants
|
|
1075
|
+
# @return [Array(Time, Integer)]
|
|
1076
|
+
end
|
|
416
1077
|
end
|
|
417
1078
|
end
|
|
418
1079
|
end
|