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
|
@@ -26,94 +26,304 @@ module XTwitterScraper
|
|
|
26
26
|
end
|
|
27
27
|
attr_accessor :tool_type
|
|
28
28
|
|
|
29
|
-
# Raw advanced query
|
|
29
|
+
# Raw advanced search query appended as-is (tweet_search_extractor)
|
|
30
30
|
sig { returns(T.nilable(String)) }
|
|
31
31
|
attr_reader :advanced_query
|
|
32
32
|
|
|
33
33
|
sig { params(advanced_query: String).void }
|
|
34
34
|
attr_writer :advanced_query
|
|
35
35
|
|
|
36
|
-
#
|
|
37
|
-
#
|
|
36
|
+
# Words or quoted phrases where any one can match. Separate with spaces, commas,
|
|
37
|
+
# or lines. (tweet_search_extractor)
|
|
38
38
|
sig { returns(T.nilable(String)) }
|
|
39
39
|
attr_reader :any_words
|
|
40
40
|
|
|
41
41
|
sig { params(any_words: String).void }
|
|
42
42
|
attr_writer :any_words
|
|
43
43
|
|
|
44
|
-
#
|
|
45
|
-
|
|
44
|
+
# Bio terms separated by commas or lines.
|
|
45
|
+
sig { returns(T.nilable(String)) }
|
|
46
|
+
attr_reader :bio_contains
|
|
47
|
+
|
|
48
|
+
sig { params(bio_contains: String).void }
|
|
49
|
+
attr_writer :bio_contains
|
|
50
|
+
|
|
51
|
+
# Return only Blue-verified Tweet authors.
|
|
52
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
53
|
+
attr_reader :blue_verified_only
|
|
54
|
+
|
|
55
|
+
sig { params(blue_verified_only: T::Boolean).void }
|
|
56
|
+
attr_writer :blue_verified_only
|
|
57
|
+
|
|
58
|
+
# Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
|
|
46
59
|
sig { returns(T.nilable(String)) }
|
|
47
60
|
attr_reader :bounding_box
|
|
48
61
|
|
|
49
62
|
sig { params(bounding_box: String).void }
|
|
50
63
|
attr_writer :bounding_box
|
|
51
64
|
|
|
52
|
-
#
|
|
65
|
+
# Match the Tweet card name.
|
|
66
|
+
sig { returns(T.nilable(String)) }
|
|
67
|
+
attr_reader :card_name
|
|
68
|
+
|
|
69
|
+
sig { params(card_name: String).void }
|
|
70
|
+
attr_writer :card_name
|
|
71
|
+
|
|
72
|
+
# Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
53
73
|
sig { returns(T.nilable(String)) }
|
|
54
74
|
attr_reader :cashtags
|
|
55
75
|
|
|
56
76
|
sig { params(cashtags: String).void }
|
|
57
77
|
attr_writer :cashtags
|
|
58
78
|
|
|
59
|
-
#
|
|
79
|
+
# Reply collection strategy.
|
|
80
|
+
sig do
|
|
81
|
+
returns(
|
|
82
|
+
T.nilable(
|
|
83
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::OrSymbol
|
|
84
|
+
)
|
|
85
|
+
)
|
|
86
|
+
end
|
|
87
|
+
attr_reader :collection_strategy
|
|
88
|
+
|
|
89
|
+
sig do
|
|
90
|
+
params(
|
|
91
|
+
collection_strategy:
|
|
92
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::OrSymbol
|
|
93
|
+
).void
|
|
94
|
+
end
|
|
95
|
+
attr_writer :collection_strategy
|
|
96
|
+
|
|
97
|
+
# Conversation ID filter (tweet_search_extractor)
|
|
60
98
|
sig { returns(T.nilable(String)) }
|
|
61
99
|
attr_reader :conversation_id
|
|
62
100
|
|
|
63
101
|
sig { params(conversation_id: String).void }
|
|
64
102
|
attr_writer :conversation_id
|
|
65
103
|
|
|
66
|
-
#
|
|
104
|
+
# Merge duplicate results across collection targets.
|
|
105
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
106
|
+
attr_reader :dedupe_across_targets
|
|
107
|
+
|
|
108
|
+
sig { params(dedupe_across_targets: T::Boolean).void }
|
|
109
|
+
attr_writer :dedupe_across_targets
|
|
110
|
+
|
|
111
|
+
# Keep target duplicates, first rows, or merged overlap.
|
|
112
|
+
sig do
|
|
113
|
+
returns(
|
|
114
|
+
T.nilable(
|
|
115
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::OrSymbol
|
|
116
|
+
)
|
|
117
|
+
)
|
|
118
|
+
end
|
|
119
|
+
attr_reader :dedupe_mode
|
|
120
|
+
|
|
121
|
+
sig do
|
|
122
|
+
params(
|
|
123
|
+
dedupe_mode:
|
|
124
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::OrSymbol
|
|
125
|
+
).void
|
|
126
|
+
end
|
|
127
|
+
attr_writer :dedupe_mode
|
|
128
|
+
|
|
129
|
+
# Exact phrase to match (tweet_search_extractor)
|
|
67
130
|
sig { returns(T.nilable(String)) }
|
|
68
131
|
attr_reader :exact_phrase
|
|
69
132
|
|
|
70
133
|
sig { params(exact_phrase: String).void }
|
|
71
134
|
attr_writer :exact_phrase
|
|
72
135
|
|
|
73
|
-
#
|
|
74
|
-
|
|
136
|
+
# Exclude replies from the source author.
|
|
137
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
138
|
+
attr_reader :exclude_original_author
|
|
139
|
+
|
|
140
|
+
sig { params(exclude_original_author: T::Boolean).void }
|
|
141
|
+
attr_writer :exclude_original_author
|
|
142
|
+
|
|
143
|
+
# Exclude a source application.
|
|
144
|
+
sig { returns(T.nilable(String)) }
|
|
145
|
+
attr_reader :exclude_source
|
|
146
|
+
|
|
147
|
+
sig { params(exclude_source: String).void }
|
|
148
|
+
attr_writer :exclude_source
|
|
149
|
+
|
|
150
|
+
# Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
|
|
151
|
+
# (tweet_search_extractor)
|
|
75
152
|
sig { returns(T.nilable(String)) }
|
|
76
153
|
attr_reader :exclude_words
|
|
77
154
|
|
|
78
155
|
sig { params(exclude_words: String).void }
|
|
79
156
|
attr_writer :exclude_words
|
|
80
157
|
|
|
81
|
-
#
|
|
158
|
+
# Filter by author username (tweet_search_extractor)
|
|
82
159
|
sig { returns(T.nilable(String)) }
|
|
83
160
|
attr_reader :from_user
|
|
84
161
|
|
|
85
162
|
sig { params(from_user: String).void }
|
|
86
163
|
attr_writer :from_user
|
|
87
164
|
|
|
88
|
-
#
|
|
165
|
+
# Match latitude, longitude, and radius.
|
|
166
|
+
sig { returns(T.nilable(String)) }
|
|
167
|
+
attr_reader :geocode
|
|
168
|
+
|
|
169
|
+
sig { params(geocode: String).void }
|
|
170
|
+
attr_writer :geocode
|
|
171
|
+
|
|
172
|
+
# Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
89
173
|
sig { returns(T.nilable(String)) }
|
|
90
174
|
attr_reader :hashtags
|
|
91
175
|
|
|
92
176
|
sig { params(hashtags: String).void }
|
|
93
177
|
attr_writer :hashtags
|
|
94
178
|
|
|
95
|
-
#
|
|
179
|
+
# Require a profile location.
|
|
180
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
181
|
+
attr_reader :has_location
|
|
182
|
+
|
|
183
|
+
sig { params(has_location: T::Boolean).void }
|
|
184
|
+
attr_writer :has_location
|
|
185
|
+
|
|
186
|
+
# Return only replies with media.
|
|
187
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
188
|
+
attr_reader :has_media_only
|
|
189
|
+
|
|
190
|
+
sig { params(has_media_only: T::Boolean).void }
|
|
191
|
+
attr_writer :has_media_only
|
|
192
|
+
|
|
193
|
+
# Require a profile website.
|
|
194
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
195
|
+
attr_reader :has_website
|
|
196
|
+
|
|
197
|
+
sig { params(has_website: T::Boolean).void }
|
|
198
|
+
attr_writer :has_website
|
|
199
|
+
|
|
200
|
+
# Include the source post in reply results.
|
|
201
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
202
|
+
attr_reader :include_original_post
|
|
203
|
+
|
|
204
|
+
sig { params(include_original_post: T::Boolean).void }
|
|
205
|
+
attr_writer :include_original_post
|
|
206
|
+
|
|
207
|
+
# Add matching search terms to collection metadata.
|
|
208
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
209
|
+
attr_reader :include_search_terms
|
|
210
|
+
|
|
211
|
+
sig { params(include_search_terms: T::Boolean).void }
|
|
212
|
+
attr_writer :include_search_terms
|
|
213
|
+
|
|
214
|
+
# Add source target metadata to each result.
|
|
215
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
216
|
+
attr_reader :include_target_metadata
|
|
217
|
+
|
|
218
|
+
sig { params(include_target_metadata: T::Boolean).void }
|
|
219
|
+
attr_writer :include_target_metadata
|
|
220
|
+
|
|
221
|
+
# Only replies to this tweet ID (tweet_search_extractor)
|
|
96
222
|
sig { returns(T.nilable(String)) }
|
|
97
223
|
attr_reader :in_reply_to_tweet_id
|
|
98
224
|
|
|
99
225
|
sig { params(in_reply_to_tweet_id: String).void }
|
|
100
226
|
attr_writer :in_reply_to_tweet_id
|
|
101
227
|
|
|
102
|
-
# Language code
|
|
228
|
+
# Language code filter (tweet_search_extractor)
|
|
103
229
|
sig { returns(T.nilable(String)) }
|
|
104
230
|
attr_reader :language
|
|
105
231
|
|
|
106
232
|
sig { params(language: String).void }
|
|
107
233
|
attr_writer :language
|
|
108
234
|
|
|
109
|
-
#
|
|
235
|
+
# Search within a list ID (tweet_search_extractor)
|
|
110
236
|
sig { returns(T.nilable(String)) }
|
|
111
237
|
attr_reader :list_id
|
|
112
238
|
|
|
113
239
|
sig { params(list_id: String).void }
|
|
114
240
|
attr_writer :list_id
|
|
115
241
|
|
|
116
|
-
#
|
|
242
|
+
# Required profile location text.
|
|
243
|
+
sig { returns(T.nilable(String)) }
|
|
244
|
+
attr_reader :location_contains
|
|
245
|
+
|
|
246
|
+
sig { params(location_contains: String).void }
|
|
247
|
+
attr_writer :location_contains
|
|
248
|
+
|
|
249
|
+
# Maximum nested reply depth.
|
|
250
|
+
sig { returns(T.nilable(Integer)) }
|
|
251
|
+
attr_reader :max_depth
|
|
252
|
+
|
|
253
|
+
sig { params(max_depth: Integer).void }
|
|
254
|
+
attr_writer :max_depth
|
|
255
|
+
|
|
256
|
+
# Maximum follower count for profile results.
|
|
257
|
+
sig { returns(T.nilable(Integer)) }
|
|
258
|
+
attr_reader :max_followers
|
|
259
|
+
|
|
260
|
+
sig { params(max_followers: Integer).void }
|
|
261
|
+
attr_writer :max_followers
|
|
262
|
+
|
|
263
|
+
# Maximum following count for profile results.
|
|
264
|
+
sig { returns(T.nilable(Integer)) }
|
|
265
|
+
attr_reader :max_following
|
|
266
|
+
|
|
267
|
+
sig { params(max_following: Integer).void }
|
|
268
|
+
attr_writer :max_following
|
|
269
|
+
|
|
270
|
+
# Return Tweets older than this Tweet ID.
|
|
271
|
+
sig { returns(T.nilable(String)) }
|
|
272
|
+
attr_reader :max_id
|
|
273
|
+
|
|
274
|
+
sig { params(max_id: String).void }
|
|
275
|
+
attr_writer :max_id
|
|
276
|
+
|
|
277
|
+
# Maximum results collected for each target.
|
|
278
|
+
sig { returns(T.nilable(Integer)) }
|
|
279
|
+
attr_reader :max_items_per_target
|
|
280
|
+
|
|
281
|
+
sig { params(max_items_per_target: Integer).void }
|
|
282
|
+
attr_writer :max_items_per_target
|
|
283
|
+
|
|
284
|
+
# Maximum Tweet like count.
|
|
285
|
+
sig { returns(T.nilable(Integer)) }
|
|
286
|
+
attr_reader :max_likes
|
|
287
|
+
|
|
288
|
+
sig { params(max_likes: Integer).void }
|
|
289
|
+
attr_writer :max_likes
|
|
290
|
+
|
|
291
|
+
# Reply pages collected for each target.
|
|
292
|
+
sig { returns(T.nilable(Integer)) }
|
|
293
|
+
attr_reader :max_pages_per_target
|
|
294
|
+
|
|
295
|
+
sig { params(max_pages_per_target: Integer).void }
|
|
296
|
+
attr_writer :max_pages_per_target
|
|
297
|
+
|
|
298
|
+
# Maximum post count for profile results.
|
|
299
|
+
sig { returns(T.nilable(Integer)) }
|
|
300
|
+
attr_reader :max_posts
|
|
301
|
+
|
|
302
|
+
sig { params(max_posts: Integer).void }
|
|
303
|
+
attr_writer :max_posts
|
|
304
|
+
|
|
305
|
+
# Maximum Tweet quote count.
|
|
306
|
+
sig { returns(T.nilable(Integer)) }
|
|
307
|
+
attr_reader :max_quotes
|
|
308
|
+
|
|
309
|
+
sig { params(max_quotes: Integer).void }
|
|
310
|
+
attr_writer :max_quotes
|
|
311
|
+
|
|
312
|
+
# Maximum Tweet reply count.
|
|
313
|
+
sig { returns(T.nilable(Integer)) }
|
|
314
|
+
attr_reader :max_replies
|
|
315
|
+
|
|
316
|
+
sig { params(max_replies: Integer).void }
|
|
317
|
+
attr_writer :max_replies
|
|
318
|
+
|
|
319
|
+
# Maximum Tweet repost count.
|
|
320
|
+
sig { returns(T.nilable(Integer)) }
|
|
321
|
+
attr_reader :max_retweets
|
|
322
|
+
|
|
323
|
+
sig { params(max_retweets: Integer).void }
|
|
324
|
+
attr_writer :max_retweets
|
|
325
|
+
|
|
326
|
+
# Media type filter (tweet_search_extractor)
|
|
117
327
|
sig do
|
|
118
328
|
returns(
|
|
119
329
|
T.nilable(
|
|
@@ -131,64 +341,151 @@ module XTwitterScraper
|
|
|
131
341
|
end
|
|
132
342
|
attr_writer :media_type
|
|
133
343
|
|
|
134
|
-
#
|
|
344
|
+
# Filter tweets mentioning a username (tweet_search_extractor)
|
|
135
345
|
sig { returns(T.nilable(String)) }
|
|
136
346
|
attr_reader :mentioning
|
|
137
347
|
|
|
138
348
|
sig { params(mentioning: String).void }
|
|
139
349
|
attr_writer :mentioning
|
|
140
350
|
|
|
141
|
-
# Minimum
|
|
351
|
+
# Minimum profile age in days.
|
|
352
|
+
sig { returns(T.nilable(Integer)) }
|
|
353
|
+
attr_reader :min_account_age_days
|
|
354
|
+
|
|
355
|
+
sig { params(min_account_age_days: Integer).void }
|
|
356
|
+
attr_writer :min_account_age_days
|
|
357
|
+
|
|
358
|
+
# Minimum Tweet bookmark count.
|
|
359
|
+
sig { returns(T.nilable(Integer)) }
|
|
360
|
+
attr_reader :min_bookmarks
|
|
361
|
+
|
|
362
|
+
sig { params(min_bookmarks: Integer).void }
|
|
363
|
+
attr_writer :min_bookmarks
|
|
364
|
+
|
|
365
|
+
# Minimum likes threshold (tweet_search_extractor)
|
|
142
366
|
sig { returns(T.nilable(Integer)) }
|
|
143
367
|
attr_reader :min_faves
|
|
144
368
|
|
|
145
369
|
sig { params(min_faves: Integer).void }
|
|
146
370
|
attr_writer :min_faves
|
|
147
371
|
|
|
148
|
-
# Minimum
|
|
372
|
+
# Minimum follower count for profile results.
|
|
373
|
+
sig { returns(T.nilable(Integer)) }
|
|
374
|
+
attr_reader :min_followers
|
|
375
|
+
|
|
376
|
+
sig { params(min_followers: Integer).void }
|
|
377
|
+
attr_writer :min_followers
|
|
378
|
+
|
|
379
|
+
# Minimum following count for profile results.
|
|
380
|
+
sig { returns(T.nilable(Integer)) }
|
|
381
|
+
attr_reader :min_following
|
|
382
|
+
|
|
383
|
+
sig { params(min_following: Integer).void }
|
|
384
|
+
attr_writer :min_following
|
|
385
|
+
|
|
386
|
+
# Minimum post count for profile results.
|
|
387
|
+
sig { returns(T.nilable(Integer)) }
|
|
388
|
+
attr_reader :min_posts
|
|
389
|
+
|
|
390
|
+
sig { params(min_posts: Integer).void }
|
|
391
|
+
attr_writer :min_posts
|
|
392
|
+
|
|
393
|
+
# Minimum quote count threshold (tweet_search_extractor)
|
|
149
394
|
sig { returns(T.nilable(Integer)) }
|
|
150
395
|
attr_reader :min_quotes
|
|
151
396
|
|
|
152
397
|
sig { params(min_quotes: Integer).void }
|
|
153
398
|
attr_writer :min_quotes
|
|
154
399
|
|
|
155
|
-
# Minimum replies threshold
|
|
400
|
+
# Minimum replies threshold (tweet_search_extractor)
|
|
156
401
|
sig { returns(T.nilable(Integer)) }
|
|
157
402
|
attr_reader :min_replies
|
|
158
403
|
|
|
159
404
|
sig { params(min_replies: Integer).void }
|
|
160
405
|
attr_writer :min_replies
|
|
161
406
|
|
|
162
|
-
# Minimum retweets threshold
|
|
407
|
+
# Minimum retweets threshold (tweet_search_extractor)
|
|
163
408
|
sig { returns(T.nilable(Integer)) }
|
|
164
409
|
attr_reader :min_retweets
|
|
165
410
|
|
|
166
411
|
sig { params(min_retweets: Integer).void }
|
|
167
412
|
attr_writer :min_retweets
|
|
168
413
|
|
|
169
|
-
#
|
|
414
|
+
# Minimum Tweet view count.
|
|
415
|
+
sig { returns(T.nilable(Integer)) }
|
|
416
|
+
attr_reader :min_views
|
|
417
|
+
|
|
418
|
+
sig { params(min_views: Integer).void }
|
|
419
|
+
attr_writer :min_views
|
|
420
|
+
|
|
421
|
+
# Only return native reposts.
|
|
422
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
423
|
+
attr_reader :native_retweets
|
|
424
|
+
|
|
425
|
+
sig { params(native_retweets: T::Boolean).void }
|
|
426
|
+
attr_writer :native_retweets
|
|
427
|
+
|
|
428
|
+
# Match a place name.
|
|
429
|
+
sig { returns(T.nilable(String)) }
|
|
430
|
+
attr_reader :near
|
|
431
|
+
|
|
432
|
+
sig { params(near: String).void }
|
|
433
|
+
attr_writer :near
|
|
434
|
+
|
|
435
|
+
# Only return news results.
|
|
436
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
437
|
+
attr_reader :news
|
|
438
|
+
|
|
439
|
+
sig { params(news: T::Boolean).void }
|
|
440
|
+
attr_writer :news
|
|
441
|
+
|
|
442
|
+
# Shortcut for dedupeMode=merge.
|
|
443
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
444
|
+
attr_reader :overlap_mode
|
|
445
|
+
|
|
446
|
+
sig { params(overlap_mode: T::Boolean).void }
|
|
447
|
+
attr_writer :overlap_mode
|
|
448
|
+
|
|
449
|
+
# Search within a place ID (tweet_search_extractor)
|
|
170
450
|
sig { returns(T.nilable(String)) }
|
|
171
451
|
attr_reader :place
|
|
172
452
|
|
|
173
453
|
sig { params(place: String).void }
|
|
174
454
|
attr_writer :place
|
|
175
455
|
|
|
176
|
-
#
|
|
456
|
+
# Search within a country code (tweet_search_extractor)
|
|
177
457
|
sig { returns(T.nilable(String)) }
|
|
178
458
|
attr_reader :place_country
|
|
179
459
|
|
|
180
460
|
sig { params(place_country: String).void }
|
|
181
461
|
attr_writer :place_country
|
|
182
462
|
|
|
183
|
-
# Geo point radius
|
|
184
|
-
# (tweet_search_extractor)
|
|
463
|
+
# Geo point radius, e.g. -73.99 40.73 25mi (tweet_search_extractor)
|
|
185
464
|
sig { returns(T.nilable(String)) }
|
|
186
465
|
attr_reader :point_radius
|
|
187
466
|
|
|
188
467
|
sig { params(point_radius: String).void }
|
|
189
468
|
attr_writer :point_radius
|
|
190
469
|
|
|
191
|
-
#
|
|
470
|
+
# Search ranking applied to every query.
|
|
471
|
+
sig do
|
|
472
|
+
returns(
|
|
473
|
+
T.nilable(
|
|
474
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::OrSymbol
|
|
475
|
+
)
|
|
476
|
+
)
|
|
477
|
+
end
|
|
478
|
+
attr_reader :query_type
|
|
479
|
+
|
|
480
|
+
sig do
|
|
481
|
+
params(
|
|
482
|
+
query_type:
|
|
483
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::OrSymbol
|
|
484
|
+
).void
|
|
485
|
+
end
|
|
486
|
+
attr_writer :query_type
|
|
487
|
+
|
|
488
|
+
# Quote mode (tweet_search_extractor)
|
|
192
489
|
sig do
|
|
193
490
|
returns(
|
|
194
491
|
T.nilable(
|
|
@@ -206,14 +503,36 @@ module XTwitterScraper
|
|
|
206
503
|
end
|
|
207
504
|
attr_writer :quotes
|
|
208
505
|
|
|
209
|
-
#
|
|
506
|
+
# Only quotes of this tweet ID (tweet_search_extractor)
|
|
210
507
|
sig { returns(T.nilable(String)) }
|
|
211
508
|
attr_reader :quotes_of_tweet_id
|
|
212
509
|
|
|
213
510
|
sig { params(quotes_of_tweet_id: String).void }
|
|
214
511
|
attr_writer :quotes_of_tweet_id
|
|
215
512
|
|
|
216
|
-
#
|
|
513
|
+
# Profile relations processed within one job.
|
|
514
|
+
sig do
|
|
515
|
+
returns(
|
|
516
|
+
T.nilable(
|
|
517
|
+
T::Array[
|
|
518
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget
|
|
519
|
+
]
|
|
520
|
+
)
|
|
521
|
+
)
|
|
522
|
+
end
|
|
523
|
+
attr_reader :relation_targets
|
|
524
|
+
|
|
525
|
+
sig do
|
|
526
|
+
params(
|
|
527
|
+
relation_targets:
|
|
528
|
+
T::Array[
|
|
529
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::OrHash
|
|
530
|
+
]
|
|
531
|
+
).void
|
|
532
|
+
end
|
|
533
|
+
attr_writer :relation_targets
|
|
534
|
+
|
|
535
|
+
# Reply mode (tweet_search_extractor)
|
|
217
536
|
sig do
|
|
218
537
|
returns(
|
|
219
538
|
T.nilable(
|
|
@@ -231,15 +550,15 @@ module XTwitterScraper
|
|
|
231
550
|
end
|
|
232
551
|
attr_writer :replies
|
|
233
552
|
|
|
234
|
-
# Maximum number of results to
|
|
235
|
-
#
|
|
553
|
+
# Maximum number of results to extract. When set, the extraction stops after
|
|
554
|
+
# reaching this limit.
|
|
236
555
|
sig { returns(T.nilable(Integer)) }
|
|
237
556
|
attr_reader :results_limit
|
|
238
557
|
|
|
239
558
|
sig { params(results_limit: Integer).void }
|
|
240
559
|
attr_writer :results_limit
|
|
241
560
|
|
|
242
|
-
# Retweet mode
|
|
561
|
+
# Retweet mode (tweet_search_extractor)
|
|
243
562
|
sig do
|
|
244
563
|
returns(
|
|
245
564
|
T.nilable(
|
|
@@ -257,35 +576,129 @@ module XTwitterScraper
|
|
|
257
576
|
end
|
|
258
577
|
attr_writer :retweets
|
|
259
578
|
|
|
260
|
-
#
|
|
579
|
+
# Only retweets of this tweet ID (tweet_search_extractor)
|
|
261
580
|
sig { returns(T.nilable(String)) }
|
|
262
581
|
attr_reader :retweets_of_tweet_id
|
|
263
582
|
|
|
264
583
|
sig { params(retweets_of_tweet_id: String).void }
|
|
265
584
|
attr_writer :retweets_of_tweet_id
|
|
266
585
|
|
|
267
|
-
#
|
|
586
|
+
# Enable the safe-search filter.
|
|
587
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
588
|
+
attr_reader :safe
|
|
589
|
+
|
|
590
|
+
sig { params(safe: T::Boolean).void }
|
|
591
|
+
attr_writer :safe
|
|
592
|
+
|
|
593
|
+
# Reply depth scope.
|
|
594
|
+
sig do
|
|
595
|
+
returns(
|
|
596
|
+
T.nilable(
|
|
597
|
+
XTwitterScraper::ExtractionEstimateCostParams::Scope::OrSymbol
|
|
598
|
+
)
|
|
599
|
+
)
|
|
600
|
+
end
|
|
601
|
+
attr_reader :scope
|
|
602
|
+
|
|
603
|
+
sig do
|
|
604
|
+
params(
|
|
605
|
+
scope: XTwitterScraper::ExtractionEstimateCostParams::Scope::OrSymbol
|
|
606
|
+
).void
|
|
607
|
+
end
|
|
608
|
+
attr_writer :scope
|
|
609
|
+
|
|
610
|
+
# Search queries processed as one collection job.
|
|
611
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
612
|
+
attr_reader :search_queries
|
|
613
|
+
|
|
614
|
+
sig { params(search_queries: T::Array[String]).void }
|
|
615
|
+
attr_writer :search_queries
|
|
616
|
+
|
|
617
|
+
# Required for tweet_search_extractor & community_search.
|
|
268
618
|
sig { returns(T.nilable(String)) }
|
|
269
619
|
attr_reader :search_query
|
|
270
620
|
|
|
271
621
|
sig { params(search_query: String).void }
|
|
272
622
|
attr_writer :search_query
|
|
273
623
|
|
|
274
|
-
#
|
|
624
|
+
# Start date YYYY-MM-DD (tweet_search_extractor)
|
|
275
625
|
sig { returns(T.nilable(Date)) }
|
|
276
626
|
attr_reader :since_date
|
|
277
627
|
|
|
278
628
|
sig { params(since_date: Date).void }
|
|
279
629
|
attr_writer :since_date
|
|
280
630
|
|
|
281
|
-
#
|
|
631
|
+
# Return Tweets newer than this Tweet ID.
|
|
632
|
+
sig { returns(T.nilable(String)) }
|
|
633
|
+
attr_reader :since_id
|
|
634
|
+
|
|
635
|
+
sig { params(since_id: String).void }
|
|
636
|
+
attr_writer :since_id
|
|
637
|
+
|
|
638
|
+
# Reply start time as ISO 8601 or Unix seconds.
|
|
639
|
+
sig do
|
|
640
|
+
returns(
|
|
641
|
+
T.nilable(
|
|
642
|
+
XTwitterScraper::ExtractionEstimateCostParams::SinceTime::Variants
|
|
643
|
+
)
|
|
644
|
+
)
|
|
645
|
+
end
|
|
646
|
+
attr_reader :since_time
|
|
647
|
+
|
|
648
|
+
sig do
|
|
649
|
+
params(
|
|
650
|
+
since_time:
|
|
651
|
+
XTwitterScraper::ExtractionEstimateCostParams::SinceTime::Variants
|
|
652
|
+
).void
|
|
653
|
+
end
|
|
654
|
+
attr_writer :since_time
|
|
655
|
+
|
|
656
|
+
# Reply result order.
|
|
657
|
+
sig do
|
|
658
|
+
returns(
|
|
659
|
+
T.nilable(
|
|
660
|
+
XTwitterScraper::ExtractionEstimateCostParams::Sort::OrSymbol
|
|
661
|
+
)
|
|
662
|
+
)
|
|
663
|
+
end
|
|
664
|
+
attr_reader :sort
|
|
665
|
+
|
|
666
|
+
sig do
|
|
667
|
+
params(
|
|
668
|
+
sort: XTwitterScraper::ExtractionEstimateCostParams::Sort::OrSymbol
|
|
669
|
+
).void
|
|
670
|
+
end
|
|
671
|
+
attr_writer :sort
|
|
672
|
+
|
|
673
|
+
# Match the source application.
|
|
674
|
+
sig { returns(T.nilable(String)) }
|
|
675
|
+
attr_reader :source
|
|
676
|
+
|
|
677
|
+
sig { params(source: String).void }
|
|
678
|
+
attr_writer :source
|
|
679
|
+
|
|
680
|
+
# Resume one reply target from this cursor.
|
|
681
|
+
sig { returns(T.nilable(String)) }
|
|
682
|
+
attr_reader :start_cursor
|
|
683
|
+
|
|
684
|
+
sig { params(start_cursor: String).void }
|
|
685
|
+
attr_writer :start_cursor
|
|
686
|
+
|
|
687
|
+
# Required for community_post_extractor & community_search.
|
|
282
688
|
sig { returns(T.nilable(String)) }
|
|
283
689
|
attr_reader :target_community_id
|
|
284
690
|
|
|
285
691
|
sig { params(target_community_id: String).void }
|
|
286
692
|
attr_writer :target_community_id
|
|
287
693
|
|
|
288
|
-
#
|
|
694
|
+
# Community IDs processed as one collection job.
|
|
695
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
696
|
+
attr_reader :target_community_ids
|
|
697
|
+
|
|
698
|
+
sig { params(target_community_ids: T::Array[String]).void }
|
|
699
|
+
attr_writer :target_community_ids
|
|
700
|
+
|
|
701
|
+
# Required for list_follower_explorer, list_member_extractor &
|
|
289
702
|
# list_post_extractor.
|
|
290
703
|
sig { returns(T.nilable(String)) }
|
|
291
704
|
attr_reader :target_list_id
|
|
@@ -293,7 +706,42 @@ module XTwitterScraper
|
|
|
293
706
|
sig { params(target_list_id: String).void }
|
|
294
707
|
attr_writer :target_list_id
|
|
295
708
|
|
|
296
|
-
#
|
|
709
|
+
# List IDs processed as one collection job.
|
|
710
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
711
|
+
attr_reader :target_list_ids
|
|
712
|
+
|
|
713
|
+
sig { params(target_list_ids: T::Array[String]).void }
|
|
714
|
+
attr_writer :target_list_ids
|
|
715
|
+
|
|
716
|
+
# Mixed targets auto-routed within one job.
|
|
717
|
+
sig do
|
|
718
|
+
returns(
|
|
719
|
+
T.nilable(
|
|
720
|
+
T::Array[
|
|
721
|
+
T.any(
|
|
722
|
+
String,
|
|
723
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1
|
|
724
|
+
)
|
|
725
|
+
]
|
|
726
|
+
)
|
|
727
|
+
)
|
|
728
|
+
end
|
|
729
|
+
attr_reader :targets
|
|
730
|
+
|
|
731
|
+
sig do
|
|
732
|
+
params(
|
|
733
|
+
targets:
|
|
734
|
+
T::Array[
|
|
735
|
+
T.any(
|
|
736
|
+
String,
|
|
737
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::OrHash
|
|
738
|
+
)
|
|
739
|
+
]
|
|
740
|
+
).void
|
|
741
|
+
end
|
|
742
|
+
attr_writer :targets
|
|
743
|
+
|
|
744
|
+
# Required for space_explorer.
|
|
297
745
|
sig { returns(T.nilable(String)) }
|
|
298
746
|
attr_reader :target_space_id
|
|
299
747
|
|
|
@@ -306,172 +754,415 @@ module XTwitterScraper
|
|
|
306
754
|
sig { params(target_tweet_id: String).void }
|
|
307
755
|
attr_writer :target_tweet_id
|
|
308
756
|
|
|
757
|
+
# Tweet IDs processed as one collection job.
|
|
758
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
759
|
+
attr_reader :target_tweet_ids
|
|
760
|
+
|
|
761
|
+
sig { params(target_tweet_ids: T::Array[String]).void }
|
|
762
|
+
attr_writer :target_tweet_ids
|
|
763
|
+
|
|
309
764
|
sig { returns(T.nilable(String)) }
|
|
310
765
|
attr_reader :target_username
|
|
311
766
|
|
|
312
767
|
sig { params(target_username: String).void }
|
|
313
768
|
attr_writer :target_username
|
|
314
769
|
|
|
315
|
-
#
|
|
770
|
+
# Usernames processed as one collection job.
|
|
771
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
772
|
+
attr_reader :target_usernames
|
|
773
|
+
|
|
774
|
+
sig { params(target_usernames: T::Array[String]).void }
|
|
775
|
+
attr_writer :target_usernames
|
|
776
|
+
|
|
777
|
+
# Filter replies sent to a username (tweet_search_extractor)
|
|
316
778
|
sig { returns(T.nilable(String)) }
|
|
317
779
|
attr_reader :to_user
|
|
318
780
|
|
|
319
781
|
sig { params(to_user: String).void }
|
|
320
782
|
attr_writer :to_user
|
|
321
783
|
|
|
322
|
-
#
|
|
784
|
+
# End date YYYY-MM-DD (tweet_search_extractor)
|
|
323
785
|
sig { returns(T.nilable(Date)) }
|
|
324
786
|
attr_reader :until_date
|
|
325
787
|
|
|
326
788
|
sig { params(until_date: Date).void }
|
|
327
789
|
attr_writer :until_date
|
|
328
790
|
|
|
329
|
-
#
|
|
791
|
+
# Reply end time as ISO 8601 or Unix seconds.
|
|
792
|
+
sig do
|
|
793
|
+
returns(
|
|
794
|
+
T.nilable(
|
|
795
|
+
XTwitterScraper::ExtractionEstimateCostParams::UntilTime::Variants
|
|
796
|
+
)
|
|
797
|
+
)
|
|
798
|
+
end
|
|
799
|
+
attr_reader :until_time
|
|
800
|
+
|
|
801
|
+
sig do
|
|
802
|
+
params(
|
|
803
|
+
until_time:
|
|
804
|
+
XTwitterScraper::ExtractionEstimateCostParams::UntilTime::Variants
|
|
805
|
+
).void
|
|
806
|
+
end
|
|
807
|
+
attr_writer :until_time
|
|
808
|
+
|
|
809
|
+
# URL substring or domain filter (tweet_search_extractor)
|
|
330
810
|
sig { returns(T.nilable(String)) }
|
|
331
811
|
attr_reader :url
|
|
332
812
|
|
|
333
813
|
sig { params(url: String).void }
|
|
334
814
|
attr_writer :url
|
|
335
815
|
|
|
336
|
-
#
|
|
816
|
+
# Required username text.
|
|
817
|
+
sig { returns(T.nilable(String)) }
|
|
818
|
+
attr_reader :username_contains
|
|
819
|
+
|
|
820
|
+
sig { params(username_contains: String).void }
|
|
821
|
+
attr_writer :username_contains
|
|
822
|
+
|
|
823
|
+
# Only verified authors (tweet_search_extractor)
|
|
337
824
|
sig { returns(T.nilable(T::Boolean)) }
|
|
338
825
|
attr_reader :verified_only
|
|
339
826
|
|
|
340
827
|
sig { params(verified_only: T::Boolean).void }
|
|
341
828
|
attr_writer :verified_only
|
|
342
829
|
|
|
830
|
+
# Exact profile verification type.
|
|
831
|
+
sig { returns(T.nilable(String)) }
|
|
832
|
+
attr_reader :verified_type
|
|
833
|
+
|
|
834
|
+
sig { params(verified_type: String).void }
|
|
835
|
+
attr_writer :verified_type
|
|
836
|
+
|
|
837
|
+
# Set the radius for the near filter.
|
|
838
|
+
sig { returns(T.nilable(String)) }
|
|
839
|
+
attr_reader :within
|
|
840
|
+
|
|
841
|
+
sig { params(within: String).void }
|
|
842
|
+
attr_writer :within
|
|
843
|
+
|
|
844
|
+
# Match Tweets inside a recent time window.
|
|
845
|
+
sig { returns(T.nilable(String)) }
|
|
846
|
+
attr_reader :within_time
|
|
847
|
+
|
|
848
|
+
sig { params(within_time: String).void }
|
|
849
|
+
attr_writer :within_time
|
|
850
|
+
|
|
343
851
|
sig do
|
|
344
852
|
params(
|
|
345
853
|
tool_type:
|
|
346
854
|
XTwitterScraper::ExtractionEstimateCostParams::ToolType::OrSymbol,
|
|
347
855
|
advanced_query: String,
|
|
348
856
|
any_words: String,
|
|
857
|
+
bio_contains: String,
|
|
858
|
+
blue_verified_only: T::Boolean,
|
|
349
859
|
bounding_box: String,
|
|
860
|
+
card_name: String,
|
|
350
861
|
cashtags: String,
|
|
862
|
+
collection_strategy:
|
|
863
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::OrSymbol,
|
|
351
864
|
conversation_id: String,
|
|
865
|
+
dedupe_across_targets: T::Boolean,
|
|
866
|
+
dedupe_mode:
|
|
867
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::OrSymbol,
|
|
352
868
|
exact_phrase: String,
|
|
869
|
+
exclude_original_author: T::Boolean,
|
|
870
|
+
exclude_source: String,
|
|
353
871
|
exclude_words: String,
|
|
354
872
|
from_user: String,
|
|
873
|
+
geocode: String,
|
|
355
874
|
hashtags: String,
|
|
875
|
+
has_location: T::Boolean,
|
|
876
|
+
has_media_only: T::Boolean,
|
|
877
|
+
has_website: T::Boolean,
|
|
878
|
+
include_original_post: T::Boolean,
|
|
879
|
+
include_search_terms: T::Boolean,
|
|
880
|
+
include_target_metadata: T::Boolean,
|
|
356
881
|
in_reply_to_tweet_id: String,
|
|
357
882
|
language: String,
|
|
358
883
|
list_id: String,
|
|
884
|
+
location_contains: String,
|
|
885
|
+
max_depth: Integer,
|
|
886
|
+
max_followers: Integer,
|
|
887
|
+
max_following: Integer,
|
|
888
|
+
max_id: String,
|
|
889
|
+
max_items_per_target: Integer,
|
|
890
|
+
max_likes: Integer,
|
|
891
|
+
max_pages_per_target: Integer,
|
|
892
|
+
max_posts: Integer,
|
|
893
|
+
max_quotes: Integer,
|
|
894
|
+
max_replies: Integer,
|
|
895
|
+
max_retweets: Integer,
|
|
359
896
|
media_type:
|
|
360
897
|
XTwitterScraper::ExtractionEstimateCostParams::MediaType::OrSymbol,
|
|
361
898
|
mentioning: String,
|
|
899
|
+
min_account_age_days: Integer,
|
|
900
|
+
min_bookmarks: Integer,
|
|
362
901
|
min_faves: Integer,
|
|
902
|
+
min_followers: Integer,
|
|
903
|
+
min_following: Integer,
|
|
904
|
+
min_posts: Integer,
|
|
363
905
|
min_quotes: Integer,
|
|
364
906
|
min_replies: Integer,
|
|
365
907
|
min_retweets: Integer,
|
|
908
|
+
min_views: Integer,
|
|
909
|
+
native_retweets: T::Boolean,
|
|
910
|
+
near: String,
|
|
911
|
+
news: T::Boolean,
|
|
912
|
+
overlap_mode: T::Boolean,
|
|
366
913
|
place: String,
|
|
367
914
|
place_country: String,
|
|
368
915
|
point_radius: String,
|
|
916
|
+
query_type:
|
|
917
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::OrSymbol,
|
|
369
918
|
quotes:
|
|
370
919
|
XTwitterScraper::ExtractionEstimateCostParams::Quotes::OrSymbol,
|
|
371
920
|
quotes_of_tweet_id: String,
|
|
921
|
+
relation_targets:
|
|
922
|
+
T::Array[
|
|
923
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::OrHash
|
|
924
|
+
],
|
|
372
925
|
replies:
|
|
373
926
|
XTwitterScraper::ExtractionEstimateCostParams::Replies::OrSymbol,
|
|
374
927
|
results_limit: Integer,
|
|
375
928
|
retweets:
|
|
376
929
|
XTwitterScraper::ExtractionEstimateCostParams::Retweets::OrSymbol,
|
|
377
930
|
retweets_of_tweet_id: String,
|
|
931
|
+
safe: T::Boolean,
|
|
932
|
+
scope: XTwitterScraper::ExtractionEstimateCostParams::Scope::OrSymbol,
|
|
933
|
+
search_queries: T::Array[String],
|
|
378
934
|
search_query: String,
|
|
379
935
|
since_date: Date,
|
|
936
|
+
since_id: String,
|
|
937
|
+
since_time:
|
|
938
|
+
XTwitterScraper::ExtractionEstimateCostParams::SinceTime::Variants,
|
|
939
|
+
sort: XTwitterScraper::ExtractionEstimateCostParams::Sort::OrSymbol,
|
|
940
|
+
source: String,
|
|
941
|
+
start_cursor: String,
|
|
380
942
|
target_community_id: String,
|
|
943
|
+
target_community_ids: T::Array[String],
|
|
381
944
|
target_list_id: String,
|
|
945
|
+
target_list_ids: T::Array[String],
|
|
946
|
+
targets:
|
|
947
|
+
T::Array[
|
|
948
|
+
T.any(
|
|
949
|
+
String,
|
|
950
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::OrHash
|
|
951
|
+
)
|
|
952
|
+
],
|
|
382
953
|
target_space_id: String,
|
|
383
954
|
target_tweet_id: String,
|
|
955
|
+
target_tweet_ids: T::Array[String],
|
|
384
956
|
target_username: String,
|
|
957
|
+
target_usernames: T::Array[String],
|
|
385
958
|
to_user: String,
|
|
386
959
|
until_date: Date,
|
|
960
|
+
until_time:
|
|
961
|
+
XTwitterScraper::ExtractionEstimateCostParams::UntilTime::Variants,
|
|
387
962
|
url: String,
|
|
963
|
+
username_contains: String,
|
|
388
964
|
verified_only: T::Boolean,
|
|
965
|
+
verified_type: String,
|
|
966
|
+
within: String,
|
|
967
|
+
within_time: String,
|
|
389
968
|
request_options: XTwitterScraper::RequestOptions::OrHash
|
|
390
969
|
).returns(T.attached_class)
|
|
391
970
|
end
|
|
392
971
|
def self.new(
|
|
393
972
|
# Identifier for the extraction tool used to run a job.
|
|
394
973
|
tool_type:,
|
|
395
|
-
# Raw advanced query
|
|
974
|
+
# Raw advanced search query appended as-is (tweet_search_extractor)
|
|
396
975
|
advanced_query: nil,
|
|
397
|
-
#
|
|
398
|
-
#
|
|
976
|
+
# Words or quoted phrases where any one can match. Separate with spaces, commas,
|
|
977
|
+
# or lines. (tweet_search_extractor)
|
|
399
978
|
any_words: nil,
|
|
400
|
-
#
|
|
401
|
-
|
|
979
|
+
# Bio terms separated by commas or lines.
|
|
980
|
+
bio_contains: nil,
|
|
981
|
+
# Return only Blue-verified Tweet authors.
|
|
982
|
+
blue_verified_only: nil,
|
|
983
|
+
# Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
|
|
402
984
|
bounding_box: nil,
|
|
403
|
-
#
|
|
985
|
+
# Match the Tweet card name.
|
|
986
|
+
card_name: nil,
|
|
987
|
+
# Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
404
988
|
cashtags: nil,
|
|
405
|
-
#
|
|
989
|
+
# Reply collection strategy.
|
|
990
|
+
collection_strategy: nil,
|
|
991
|
+
# Conversation ID filter (tweet_search_extractor)
|
|
406
992
|
conversation_id: nil,
|
|
407
|
-
#
|
|
993
|
+
# Merge duplicate results across collection targets.
|
|
994
|
+
dedupe_across_targets: nil,
|
|
995
|
+
# Keep target duplicates, first rows, or merged overlap.
|
|
996
|
+
dedupe_mode: nil,
|
|
997
|
+
# Exact phrase to match (tweet_search_extractor)
|
|
408
998
|
exact_phrase: nil,
|
|
409
|
-
#
|
|
410
|
-
|
|
999
|
+
# Exclude replies from the source author.
|
|
1000
|
+
exclude_original_author: nil,
|
|
1001
|
+
# Exclude a source application.
|
|
1002
|
+
exclude_source: nil,
|
|
1003
|
+
# Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
|
|
1004
|
+
# (tweet_search_extractor)
|
|
411
1005
|
exclude_words: nil,
|
|
412
|
-
#
|
|
1006
|
+
# Filter by author username (tweet_search_extractor)
|
|
413
1007
|
from_user: nil,
|
|
414
|
-
#
|
|
1008
|
+
# Match latitude, longitude, and radius.
|
|
1009
|
+
geocode: nil,
|
|
1010
|
+
# Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
|
|
415
1011
|
hashtags: nil,
|
|
416
|
-
#
|
|
1012
|
+
# Require a profile location.
|
|
1013
|
+
has_location: nil,
|
|
1014
|
+
# Return only replies with media.
|
|
1015
|
+
has_media_only: nil,
|
|
1016
|
+
# Require a profile website.
|
|
1017
|
+
has_website: nil,
|
|
1018
|
+
# Include the source post in reply results.
|
|
1019
|
+
include_original_post: nil,
|
|
1020
|
+
# Add matching search terms to collection metadata.
|
|
1021
|
+
include_search_terms: nil,
|
|
1022
|
+
# Add source target metadata to each result.
|
|
1023
|
+
include_target_metadata: nil,
|
|
1024
|
+
# Only replies to this tweet ID (tweet_search_extractor)
|
|
417
1025
|
in_reply_to_tweet_id: nil,
|
|
418
|
-
# Language code
|
|
1026
|
+
# Language code filter (tweet_search_extractor)
|
|
419
1027
|
language: nil,
|
|
420
|
-
#
|
|
1028
|
+
# Search within a list ID (tweet_search_extractor)
|
|
421
1029
|
list_id: nil,
|
|
422
|
-
#
|
|
1030
|
+
# Required profile location text.
|
|
1031
|
+
location_contains: nil,
|
|
1032
|
+
# Maximum nested reply depth.
|
|
1033
|
+
max_depth: nil,
|
|
1034
|
+
# Maximum follower count for profile results.
|
|
1035
|
+
max_followers: nil,
|
|
1036
|
+
# Maximum following count for profile results.
|
|
1037
|
+
max_following: nil,
|
|
1038
|
+
# Return Tweets older than this Tweet ID.
|
|
1039
|
+
max_id: nil,
|
|
1040
|
+
# Maximum results collected for each target.
|
|
1041
|
+
max_items_per_target: nil,
|
|
1042
|
+
# Maximum Tweet like count.
|
|
1043
|
+
max_likes: nil,
|
|
1044
|
+
# Reply pages collected for each target.
|
|
1045
|
+
max_pages_per_target: nil,
|
|
1046
|
+
# Maximum post count for profile results.
|
|
1047
|
+
max_posts: nil,
|
|
1048
|
+
# Maximum Tweet quote count.
|
|
1049
|
+
max_quotes: nil,
|
|
1050
|
+
# Maximum Tweet reply count.
|
|
1051
|
+
max_replies: nil,
|
|
1052
|
+
# Maximum Tweet repost count.
|
|
1053
|
+
max_retweets: nil,
|
|
1054
|
+
# Media type filter (tweet_search_extractor)
|
|
423
1055
|
media_type: nil,
|
|
424
|
-
#
|
|
1056
|
+
# Filter tweets mentioning a username (tweet_search_extractor)
|
|
425
1057
|
mentioning: nil,
|
|
426
|
-
# Minimum
|
|
1058
|
+
# Minimum profile age in days.
|
|
1059
|
+
min_account_age_days: nil,
|
|
1060
|
+
# Minimum Tweet bookmark count.
|
|
1061
|
+
min_bookmarks: nil,
|
|
1062
|
+
# Minimum likes threshold (tweet_search_extractor)
|
|
427
1063
|
min_faves: nil,
|
|
428
|
-
# Minimum
|
|
1064
|
+
# Minimum follower count for profile results.
|
|
1065
|
+
min_followers: nil,
|
|
1066
|
+
# Minimum following count for profile results.
|
|
1067
|
+
min_following: nil,
|
|
1068
|
+
# Minimum post count for profile results.
|
|
1069
|
+
min_posts: nil,
|
|
1070
|
+
# Minimum quote count threshold (tweet_search_extractor)
|
|
429
1071
|
min_quotes: nil,
|
|
430
|
-
# Minimum replies threshold
|
|
1072
|
+
# Minimum replies threshold (tweet_search_extractor)
|
|
431
1073
|
min_replies: nil,
|
|
432
|
-
# Minimum retweets threshold
|
|
1074
|
+
# Minimum retweets threshold (tweet_search_extractor)
|
|
433
1075
|
min_retweets: nil,
|
|
434
|
-
#
|
|
1076
|
+
# Minimum Tweet view count.
|
|
1077
|
+
min_views: nil,
|
|
1078
|
+
# Only return native reposts.
|
|
1079
|
+
native_retweets: nil,
|
|
1080
|
+
# Match a place name.
|
|
1081
|
+
near: nil,
|
|
1082
|
+
# Only return news results.
|
|
1083
|
+
news: nil,
|
|
1084
|
+
# Shortcut for dedupeMode=merge.
|
|
1085
|
+
overlap_mode: nil,
|
|
1086
|
+
# Search within a place ID (tweet_search_extractor)
|
|
435
1087
|
place: nil,
|
|
436
|
-
#
|
|
1088
|
+
# Search within a country code (tweet_search_extractor)
|
|
437
1089
|
place_country: nil,
|
|
438
|
-
# Geo point radius
|
|
439
|
-
# (tweet_search_extractor)
|
|
1090
|
+
# Geo point radius, e.g. -73.99 40.73 25mi (tweet_search_extractor)
|
|
440
1091
|
point_radius: nil,
|
|
441
|
-
#
|
|
1092
|
+
# Search ranking applied to every query.
|
|
1093
|
+
query_type: nil,
|
|
1094
|
+
# Quote mode (tweet_search_extractor)
|
|
442
1095
|
quotes: nil,
|
|
443
|
-
#
|
|
1096
|
+
# Only quotes of this tweet ID (tweet_search_extractor)
|
|
444
1097
|
quotes_of_tweet_id: nil,
|
|
445
|
-
#
|
|
1098
|
+
# Profile relations processed within one job.
|
|
1099
|
+
relation_targets: nil,
|
|
1100
|
+
# Reply mode (tweet_search_extractor)
|
|
446
1101
|
replies: nil,
|
|
447
|
-
# Maximum number of results to
|
|
448
|
-
#
|
|
1102
|
+
# Maximum number of results to extract. When set, the extraction stops after
|
|
1103
|
+
# reaching this limit.
|
|
449
1104
|
results_limit: nil,
|
|
450
|
-
# Retweet mode
|
|
1105
|
+
# Retweet mode (tweet_search_extractor)
|
|
451
1106
|
retweets: nil,
|
|
452
|
-
#
|
|
1107
|
+
# Only retweets of this tweet ID (tweet_search_extractor)
|
|
453
1108
|
retweets_of_tweet_id: nil,
|
|
454
|
-
#
|
|
1109
|
+
# Enable the safe-search filter.
|
|
1110
|
+
safe: nil,
|
|
1111
|
+
# Reply depth scope.
|
|
1112
|
+
scope: nil,
|
|
1113
|
+
# Search queries processed as one collection job.
|
|
1114
|
+
search_queries: nil,
|
|
1115
|
+
# Required for tweet_search_extractor & community_search.
|
|
455
1116
|
search_query: nil,
|
|
456
|
-
#
|
|
1117
|
+
# Start date YYYY-MM-DD (tweet_search_extractor)
|
|
457
1118
|
since_date: nil,
|
|
458
|
-
#
|
|
1119
|
+
# Return Tweets newer than this Tweet ID.
|
|
1120
|
+
since_id: nil,
|
|
1121
|
+
# Reply start time as ISO 8601 or Unix seconds.
|
|
1122
|
+
since_time: nil,
|
|
1123
|
+
# Reply result order.
|
|
1124
|
+
sort: nil,
|
|
1125
|
+
# Match the source application.
|
|
1126
|
+
source: nil,
|
|
1127
|
+
# Resume one reply target from this cursor.
|
|
1128
|
+
start_cursor: nil,
|
|
1129
|
+
# Required for community_post_extractor & community_search.
|
|
459
1130
|
target_community_id: nil,
|
|
460
|
-
#
|
|
1131
|
+
# Community IDs processed as one collection job.
|
|
1132
|
+
target_community_ids: nil,
|
|
1133
|
+
# Required for list_follower_explorer, list_member_extractor &
|
|
461
1134
|
# list_post_extractor.
|
|
462
1135
|
target_list_id: nil,
|
|
463
|
-
#
|
|
1136
|
+
# List IDs processed as one collection job.
|
|
1137
|
+
target_list_ids: nil,
|
|
1138
|
+
# Mixed targets auto-routed within one job.
|
|
1139
|
+
targets: nil,
|
|
1140
|
+
# Required for space_explorer.
|
|
464
1141
|
target_space_id: nil,
|
|
465
1142
|
target_tweet_id: nil,
|
|
1143
|
+
# Tweet IDs processed as one collection job.
|
|
1144
|
+
target_tweet_ids: nil,
|
|
466
1145
|
target_username: nil,
|
|
467
|
-
#
|
|
1146
|
+
# Usernames processed as one collection job.
|
|
1147
|
+
target_usernames: nil,
|
|
1148
|
+
# Filter replies sent to a username (tweet_search_extractor)
|
|
468
1149
|
to_user: nil,
|
|
469
|
-
#
|
|
1150
|
+
# End date YYYY-MM-DD (tweet_search_extractor)
|
|
470
1151
|
until_date: nil,
|
|
471
|
-
#
|
|
1152
|
+
# Reply end time as ISO 8601 or Unix seconds.
|
|
1153
|
+
until_time: nil,
|
|
1154
|
+
# URL substring or domain filter (tweet_search_extractor)
|
|
472
1155
|
url: nil,
|
|
473
|
-
#
|
|
1156
|
+
# Required username text.
|
|
1157
|
+
username_contains: nil,
|
|
1158
|
+
# Only verified authors (tweet_search_extractor)
|
|
474
1159
|
verified_only: nil,
|
|
1160
|
+
# Exact profile verification type.
|
|
1161
|
+
verified_type: nil,
|
|
1162
|
+
# Set the radius for the near filter.
|
|
1163
|
+
within: nil,
|
|
1164
|
+
# Match Tweets inside a recent time window.
|
|
1165
|
+
within_time: nil,
|
|
475
1166
|
request_options: {}
|
|
476
1167
|
)
|
|
477
1168
|
end
|
|
@@ -483,46 +1174,118 @@ module XTwitterScraper
|
|
|
483
1174
|
XTwitterScraper::ExtractionEstimateCostParams::ToolType::OrSymbol,
|
|
484
1175
|
advanced_query: String,
|
|
485
1176
|
any_words: String,
|
|
1177
|
+
bio_contains: String,
|
|
1178
|
+
blue_verified_only: T::Boolean,
|
|
486
1179
|
bounding_box: String,
|
|
1180
|
+
card_name: String,
|
|
487
1181
|
cashtags: String,
|
|
1182
|
+
collection_strategy:
|
|
1183
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::OrSymbol,
|
|
488
1184
|
conversation_id: String,
|
|
1185
|
+
dedupe_across_targets: T::Boolean,
|
|
1186
|
+
dedupe_mode:
|
|
1187
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::OrSymbol,
|
|
489
1188
|
exact_phrase: String,
|
|
1189
|
+
exclude_original_author: T::Boolean,
|
|
1190
|
+
exclude_source: String,
|
|
490
1191
|
exclude_words: String,
|
|
491
1192
|
from_user: String,
|
|
1193
|
+
geocode: String,
|
|
492
1194
|
hashtags: String,
|
|
1195
|
+
has_location: T::Boolean,
|
|
1196
|
+
has_media_only: T::Boolean,
|
|
1197
|
+
has_website: T::Boolean,
|
|
1198
|
+
include_original_post: T::Boolean,
|
|
1199
|
+
include_search_terms: T::Boolean,
|
|
1200
|
+
include_target_metadata: T::Boolean,
|
|
493
1201
|
in_reply_to_tweet_id: String,
|
|
494
1202
|
language: String,
|
|
495
1203
|
list_id: String,
|
|
1204
|
+
location_contains: String,
|
|
1205
|
+
max_depth: Integer,
|
|
1206
|
+
max_followers: Integer,
|
|
1207
|
+
max_following: Integer,
|
|
1208
|
+
max_id: String,
|
|
1209
|
+
max_items_per_target: Integer,
|
|
1210
|
+
max_likes: Integer,
|
|
1211
|
+
max_pages_per_target: Integer,
|
|
1212
|
+
max_posts: Integer,
|
|
1213
|
+
max_quotes: Integer,
|
|
1214
|
+
max_replies: Integer,
|
|
1215
|
+
max_retweets: Integer,
|
|
496
1216
|
media_type:
|
|
497
1217
|
XTwitterScraper::ExtractionEstimateCostParams::MediaType::OrSymbol,
|
|
498
1218
|
mentioning: String,
|
|
1219
|
+
min_account_age_days: Integer,
|
|
1220
|
+
min_bookmarks: Integer,
|
|
499
1221
|
min_faves: Integer,
|
|
1222
|
+
min_followers: Integer,
|
|
1223
|
+
min_following: Integer,
|
|
1224
|
+
min_posts: Integer,
|
|
500
1225
|
min_quotes: Integer,
|
|
501
1226
|
min_replies: Integer,
|
|
502
1227
|
min_retweets: Integer,
|
|
1228
|
+
min_views: Integer,
|
|
1229
|
+
native_retweets: T::Boolean,
|
|
1230
|
+
near: String,
|
|
1231
|
+
news: T::Boolean,
|
|
1232
|
+
overlap_mode: T::Boolean,
|
|
503
1233
|
place: String,
|
|
504
1234
|
place_country: String,
|
|
505
1235
|
point_radius: String,
|
|
1236
|
+
query_type:
|
|
1237
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::OrSymbol,
|
|
506
1238
|
quotes:
|
|
507
1239
|
XTwitterScraper::ExtractionEstimateCostParams::Quotes::OrSymbol,
|
|
508
1240
|
quotes_of_tweet_id: String,
|
|
1241
|
+
relation_targets:
|
|
1242
|
+
T::Array[
|
|
1243
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget
|
|
1244
|
+
],
|
|
509
1245
|
replies:
|
|
510
1246
|
XTwitterScraper::ExtractionEstimateCostParams::Replies::OrSymbol,
|
|
511
1247
|
results_limit: Integer,
|
|
512
1248
|
retweets:
|
|
513
1249
|
XTwitterScraper::ExtractionEstimateCostParams::Retweets::OrSymbol,
|
|
514
1250
|
retweets_of_tweet_id: String,
|
|
1251
|
+
safe: T::Boolean,
|
|
1252
|
+
scope:
|
|
1253
|
+
XTwitterScraper::ExtractionEstimateCostParams::Scope::OrSymbol,
|
|
1254
|
+
search_queries: T::Array[String],
|
|
515
1255
|
search_query: String,
|
|
516
1256
|
since_date: Date,
|
|
1257
|
+
since_id: String,
|
|
1258
|
+
since_time:
|
|
1259
|
+
XTwitterScraper::ExtractionEstimateCostParams::SinceTime::Variants,
|
|
1260
|
+
sort: XTwitterScraper::ExtractionEstimateCostParams::Sort::OrSymbol,
|
|
1261
|
+
source: String,
|
|
1262
|
+
start_cursor: String,
|
|
517
1263
|
target_community_id: String,
|
|
1264
|
+
target_community_ids: T::Array[String],
|
|
518
1265
|
target_list_id: String,
|
|
1266
|
+
target_list_ids: T::Array[String],
|
|
1267
|
+
targets:
|
|
1268
|
+
T::Array[
|
|
1269
|
+
T.any(
|
|
1270
|
+
String,
|
|
1271
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1
|
|
1272
|
+
)
|
|
1273
|
+
],
|
|
519
1274
|
target_space_id: String,
|
|
520
1275
|
target_tweet_id: String,
|
|
1276
|
+
target_tweet_ids: T::Array[String],
|
|
521
1277
|
target_username: String,
|
|
1278
|
+
target_usernames: T::Array[String],
|
|
522
1279
|
to_user: String,
|
|
523
1280
|
until_date: Date,
|
|
1281
|
+
until_time:
|
|
1282
|
+
XTwitterScraper::ExtractionEstimateCostParams::UntilTime::Variants,
|
|
524
1283
|
url: String,
|
|
1284
|
+
username_contains: String,
|
|
525
1285
|
verified_only: T::Boolean,
|
|
1286
|
+
verified_type: String,
|
|
1287
|
+
within: String,
|
|
1288
|
+
within_time: String,
|
|
526
1289
|
request_options: XTwitterScraper::RequestOptions
|
|
527
1290
|
}
|
|
528
1291
|
)
|
|
@@ -670,7 +1433,97 @@ module XTwitterScraper
|
|
|
670
1433
|
end
|
|
671
1434
|
end
|
|
672
1435
|
|
|
673
|
-
#
|
|
1436
|
+
# Reply collection strategy.
|
|
1437
|
+
module CollectionStrategy
|
|
1438
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1439
|
+
|
|
1440
|
+
TaggedSymbol =
|
|
1441
|
+
T.type_alias do
|
|
1442
|
+
T.all(
|
|
1443
|
+
Symbol,
|
|
1444
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy
|
|
1445
|
+
)
|
|
1446
|
+
end
|
|
1447
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1448
|
+
|
|
1449
|
+
AUTO =
|
|
1450
|
+
T.let(
|
|
1451
|
+
:auto,
|
|
1452
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::TaggedSymbol
|
|
1453
|
+
)
|
|
1454
|
+
COMPLETE =
|
|
1455
|
+
T.let(
|
|
1456
|
+
:complete,
|
|
1457
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::TaggedSymbol
|
|
1458
|
+
)
|
|
1459
|
+
DIRECT =
|
|
1460
|
+
T.let(
|
|
1461
|
+
:direct,
|
|
1462
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::TaggedSymbol
|
|
1463
|
+
)
|
|
1464
|
+
SEARCH =
|
|
1465
|
+
T.let(
|
|
1466
|
+
:search,
|
|
1467
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::TaggedSymbol
|
|
1468
|
+
)
|
|
1469
|
+
THREAD =
|
|
1470
|
+
T.let(
|
|
1471
|
+
:thread,
|
|
1472
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::TaggedSymbol
|
|
1473
|
+
)
|
|
1474
|
+
|
|
1475
|
+
sig do
|
|
1476
|
+
override.returns(
|
|
1477
|
+
T::Array[
|
|
1478
|
+
XTwitterScraper::ExtractionEstimateCostParams::CollectionStrategy::TaggedSymbol
|
|
1479
|
+
]
|
|
1480
|
+
)
|
|
1481
|
+
end
|
|
1482
|
+
def self.values
|
|
1483
|
+
end
|
|
1484
|
+
end
|
|
1485
|
+
|
|
1486
|
+
# Keep target duplicates, first rows, or merged overlap.
|
|
1487
|
+
module DedupeMode
|
|
1488
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1489
|
+
|
|
1490
|
+
TaggedSymbol =
|
|
1491
|
+
T.type_alias do
|
|
1492
|
+
T.all(
|
|
1493
|
+
Symbol,
|
|
1494
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode
|
|
1495
|
+
)
|
|
1496
|
+
end
|
|
1497
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1498
|
+
|
|
1499
|
+
NONE =
|
|
1500
|
+
T.let(
|
|
1501
|
+
:none,
|
|
1502
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::TaggedSymbol
|
|
1503
|
+
)
|
|
1504
|
+
FIRST =
|
|
1505
|
+
T.let(
|
|
1506
|
+
:first,
|
|
1507
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::TaggedSymbol
|
|
1508
|
+
)
|
|
1509
|
+
MERGE =
|
|
1510
|
+
T.let(
|
|
1511
|
+
:merge,
|
|
1512
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::TaggedSymbol
|
|
1513
|
+
)
|
|
1514
|
+
|
|
1515
|
+
sig do
|
|
1516
|
+
override.returns(
|
|
1517
|
+
T::Array[
|
|
1518
|
+
XTwitterScraper::ExtractionEstimateCostParams::DedupeMode::TaggedSymbol
|
|
1519
|
+
]
|
|
1520
|
+
)
|
|
1521
|
+
end
|
|
1522
|
+
def self.values
|
|
1523
|
+
end
|
|
1524
|
+
end
|
|
1525
|
+
|
|
1526
|
+
# Media type filter (tweet_search_extractor)
|
|
674
1527
|
module MediaType
|
|
675
1528
|
extend XTwitterScraper::Internal::Type::Enum
|
|
676
1529
|
|
|
@@ -725,7 +1578,47 @@ module XTwitterScraper
|
|
|
725
1578
|
end
|
|
726
1579
|
end
|
|
727
1580
|
|
|
728
|
-
#
|
|
1581
|
+
# Search ranking applied to every query.
|
|
1582
|
+
module QueryType
|
|
1583
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1584
|
+
|
|
1585
|
+
TaggedSymbol =
|
|
1586
|
+
T.type_alias do
|
|
1587
|
+
T.all(
|
|
1588
|
+
Symbol,
|
|
1589
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType
|
|
1590
|
+
)
|
|
1591
|
+
end
|
|
1592
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1593
|
+
|
|
1594
|
+
LATEST =
|
|
1595
|
+
T.let(
|
|
1596
|
+
:Latest,
|
|
1597
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::TaggedSymbol
|
|
1598
|
+
)
|
|
1599
|
+
TOP =
|
|
1600
|
+
T.let(
|
|
1601
|
+
:Top,
|
|
1602
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::TaggedSymbol
|
|
1603
|
+
)
|
|
1604
|
+
BOTH =
|
|
1605
|
+
T.let(
|
|
1606
|
+
:Both,
|
|
1607
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::TaggedSymbol
|
|
1608
|
+
)
|
|
1609
|
+
|
|
1610
|
+
sig do
|
|
1611
|
+
override.returns(
|
|
1612
|
+
T::Array[
|
|
1613
|
+
XTwitterScraper::ExtractionEstimateCostParams::QueryType::TaggedSymbol
|
|
1614
|
+
]
|
|
1615
|
+
)
|
|
1616
|
+
end
|
|
1617
|
+
def self.values
|
|
1618
|
+
end
|
|
1619
|
+
end
|
|
1620
|
+
|
|
1621
|
+
# Quote mode (tweet_search_extractor)
|
|
729
1622
|
module Quotes
|
|
730
1623
|
extend XTwitterScraper::Internal::Type::Enum
|
|
731
1624
|
|
|
@@ -762,7 +1655,104 @@ module XTwitterScraper
|
|
|
762
1655
|
end
|
|
763
1656
|
end
|
|
764
1657
|
|
|
765
|
-
|
|
1658
|
+
class RelationTarget < XTwitterScraper::Internal::Type::BaseModel
|
|
1659
|
+
OrHash =
|
|
1660
|
+
T.type_alias do
|
|
1661
|
+
T.any(
|
|
1662
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget,
|
|
1663
|
+
XTwitterScraper::Internal::AnyHash
|
|
1664
|
+
)
|
|
1665
|
+
end
|
|
1666
|
+
|
|
1667
|
+
sig do
|
|
1668
|
+
returns(
|
|
1669
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::OrSymbol
|
|
1670
|
+
)
|
|
1671
|
+
end
|
|
1672
|
+
attr_accessor :relation
|
|
1673
|
+
|
|
1674
|
+
sig { returns(String) }
|
|
1675
|
+
attr_accessor :value
|
|
1676
|
+
|
|
1677
|
+
# One target and relation in a mixed profile collection.
|
|
1678
|
+
sig do
|
|
1679
|
+
params(
|
|
1680
|
+
relation:
|
|
1681
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::OrSymbol,
|
|
1682
|
+
value: String
|
|
1683
|
+
).returns(T.attached_class)
|
|
1684
|
+
end
|
|
1685
|
+
def self.new(relation:, value:)
|
|
1686
|
+
end
|
|
1687
|
+
|
|
1688
|
+
sig do
|
|
1689
|
+
override.returns(
|
|
1690
|
+
{
|
|
1691
|
+
relation:
|
|
1692
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::OrSymbol,
|
|
1693
|
+
value: String
|
|
1694
|
+
}
|
|
1695
|
+
)
|
|
1696
|
+
end
|
|
1697
|
+
def to_hash
|
|
1698
|
+
end
|
|
1699
|
+
|
|
1700
|
+
module Relation
|
|
1701
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1702
|
+
|
|
1703
|
+
TaggedSymbol =
|
|
1704
|
+
T.type_alias do
|
|
1705
|
+
T.all(
|
|
1706
|
+
Symbol,
|
|
1707
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation
|
|
1708
|
+
)
|
|
1709
|
+
end
|
|
1710
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1711
|
+
|
|
1712
|
+
COMMUNITY_MEMBERS =
|
|
1713
|
+
T.let(
|
|
1714
|
+
:community_members,
|
|
1715
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::TaggedSymbol
|
|
1716
|
+
)
|
|
1717
|
+
FOLLOWERS =
|
|
1718
|
+
T.let(
|
|
1719
|
+
:followers,
|
|
1720
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::TaggedSymbol
|
|
1721
|
+
)
|
|
1722
|
+
FOLLOWING =
|
|
1723
|
+
T.let(
|
|
1724
|
+
:following,
|
|
1725
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::TaggedSymbol
|
|
1726
|
+
)
|
|
1727
|
+
LIST_FOLLOWERS =
|
|
1728
|
+
T.let(
|
|
1729
|
+
:list_followers,
|
|
1730
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::TaggedSymbol
|
|
1731
|
+
)
|
|
1732
|
+
LIST_MEMBERS =
|
|
1733
|
+
T.let(
|
|
1734
|
+
:list_members,
|
|
1735
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::TaggedSymbol
|
|
1736
|
+
)
|
|
1737
|
+
VERIFIED_FOLLOWERS =
|
|
1738
|
+
T.let(
|
|
1739
|
+
:verified_followers,
|
|
1740
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::TaggedSymbol
|
|
1741
|
+
)
|
|
1742
|
+
|
|
1743
|
+
sig do
|
|
1744
|
+
override.returns(
|
|
1745
|
+
T::Array[
|
|
1746
|
+
XTwitterScraper::ExtractionEstimateCostParams::RelationTarget::Relation::TaggedSymbol
|
|
1747
|
+
]
|
|
1748
|
+
)
|
|
1749
|
+
end
|
|
1750
|
+
def self.values
|
|
1751
|
+
end
|
|
1752
|
+
end
|
|
1753
|
+
end
|
|
1754
|
+
|
|
1755
|
+
# Reply mode (tweet_search_extractor)
|
|
766
1756
|
module Replies
|
|
767
1757
|
extend XTwitterScraper::Internal::Type::Enum
|
|
768
1758
|
|
|
@@ -802,7 +1792,7 @@ module XTwitterScraper
|
|
|
802
1792
|
end
|
|
803
1793
|
end
|
|
804
1794
|
|
|
805
|
-
# Retweet mode
|
|
1795
|
+
# Retweet mode (tweet_search_extractor)
|
|
806
1796
|
module Retweets
|
|
807
1797
|
extend XTwitterScraper::Internal::Type::Enum
|
|
808
1798
|
|
|
@@ -841,6 +1831,268 @@ module XTwitterScraper
|
|
|
841
1831
|
def self.values
|
|
842
1832
|
end
|
|
843
1833
|
end
|
|
1834
|
+
|
|
1835
|
+
# Reply depth scope.
|
|
1836
|
+
module Scope
|
|
1837
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1838
|
+
|
|
1839
|
+
TaggedSymbol =
|
|
1840
|
+
T.type_alias do
|
|
1841
|
+
T.all(Symbol, XTwitterScraper::ExtractionEstimateCostParams::Scope)
|
|
1842
|
+
end
|
|
1843
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1844
|
+
|
|
1845
|
+
ALL =
|
|
1846
|
+
T.let(
|
|
1847
|
+
:all,
|
|
1848
|
+
XTwitterScraper::ExtractionEstimateCostParams::Scope::TaggedSymbol
|
|
1849
|
+
)
|
|
1850
|
+
DIRECT =
|
|
1851
|
+
T.let(
|
|
1852
|
+
:direct,
|
|
1853
|
+
XTwitterScraper::ExtractionEstimateCostParams::Scope::TaggedSymbol
|
|
1854
|
+
)
|
|
1855
|
+
NESTED =
|
|
1856
|
+
T.let(
|
|
1857
|
+
:nested,
|
|
1858
|
+
XTwitterScraper::ExtractionEstimateCostParams::Scope::TaggedSymbol
|
|
1859
|
+
)
|
|
1860
|
+
|
|
1861
|
+
sig do
|
|
1862
|
+
override.returns(
|
|
1863
|
+
T::Array[
|
|
1864
|
+
XTwitterScraper::ExtractionEstimateCostParams::Scope::TaggedSymbol
|
|
1865
|
+
]
|
|
1866
|
+
)
|
|
1867
|
+
end
|
|
1868
|
+
def self.values
|
|
1869
|
+
end
|
|
1870
|
+
end
|
|
1871
|
+
|
|
1872
|
+
# Reply start time as ISO 8601 or Unix seconds.
|
|
1873
|
+
module SinceTime
|
|
1874
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
1875
|
+
|
|
1876
|
+
Variants = T.type_alias { T.any(Time, Integer) }
|
|
1877
|
+
|
|
1878
|
+
sig do
|
|
1879
|
+
override.returns(
|
|
1880
|
+
T::Array[
|
|
1881
|
+
XTwitterScraper::ExtractionEstimateCostParams::SinceTime::Variants
|
|
1882
|
+
]
|
|
1883
|
+
)
|
|
1884
|
+
end
|
|
1885
|
+
def self.variants
|
|
1886
|
+
end
|
|
1887
|
+
end
|
|
1888
|
+
|
|
1889
|
+
# Reply result order.
|
|
1890
|
+
module Sort
|
|
1891
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1892
|
+
|
|
1893
|
+
TaggedSymbol =
|
|
1894
|
+
T.type_alias do
|
|
1895
|
+
T.all(Symbol, XTwitterScraper::ExtractionEstimateCostParams::Sort)
|
|
1896
|
+
end
|
|
1897
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1898
|
+
|
|
1899
|
+
RELEVANCE =
|
|
1900
|
+
T.let(
|
|
1901
|
+
:relevance,
|
|
1902
|
+
XTwitterScraper::ExtractionEstimateCostParams::Sort::TaggedSymbol
|
|
1903
|
+
)
|
|
1904
|
+
LATEST =
|
|
1905
|
+
T.let(
|
|
1906
|
+
:latest,
|
|
1907
|
+
XTwitterScraper::ExtractionEstimateCostParams::Sort::TaggedSymbol
|
|
1908
|
+
)
|
|
1909
|
+
OLDEST =
|
|
1910
|
+
T.let(
|
|
1911
|
+
:oldest,
|
|
1912
|
+
XTwitterScraper::ExtractionEstimateCostParams::Sort::TaggedSymbol
|
|
1913
|
+
)
|
|
1914
|
+
LIKES =
|
|
1915
|
+
T.let(
|
|
1916
|
+
:likes,
|
|
1917
|
+
XTwitterScraper::ExtractionEstimateCostParams::Sort::TaggedSymbol
|
|
1918
|
+
)
|
|
1919
|
+
|
|
1920
|
+
sig do
|
|
1921
|
+
override.returns(
|
|
1922
|
+
T::Array[
|
|
1923
|
+
XTwitterScraper::ExtractionEstimateCostParams::Sort::TaggedSymbol
|
|
1924
|
+
]
|
|
1925
|
+
)
|
|
1926
|
+
end
|
|
1927
|
+
def self.values
|
|
1928
|
+
end
|
|
1929
|
+
end
|
|
1930
|
+
|
|
1931
|
+
# One auto-routed target in a mixed Tweet collection.
|
|
1932
|
+
module Target
|
|
1933
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
1934
|
+
|
|
1935
|
+
Variants =
|
|
1936
|
+
T.type_alias do
|
|
1937
|
+
T.any(
|
|
1938
|
+
String,
|
|
1939
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1
|
|
1940
|
+
)
|
|
1941
|
+
end
|
|
1942
|
+
|
|
1943
|
+
class UnionMember1 < XTwitterScraper::Internal::Type::BaseModel
|
|
1944
|
+
OrHash =
|
|
1945
|
+
T.type_alias do
|
|
1946
|
+
T.any(
|
|
1947
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1,
|
|
1948
|
+
XTwitterScraper::Internal::AnyHash
|
|
1949
|
+
)
|
|
1950
|
+
end
|
|
1951
|
+
|
|
1952
|
+
sig do
|
|
1953
|
+
returns(
|
|
1954
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::OrSymbol
|
|
1955
|
+
)
|
|
1956
|
+
end
|
|
1957
|
+
attr_accessor :kind
|
|
1958
|
+
|
|
1959
|
+
sig { returns(String) }
|
|
1960
|
+
attr_accessor :value
|
|
1961
|
+
|
|
1962
|
+
sig do
|
|
1963
|
+
params(
|
|
1964
|
+
kind:
|
|
1965
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::OrSymbol,
|
|
1966
|
+
value: String
|
|
1967
|
+
).returns(T.attached_class)
|
|
1968
|
+
end
|
|
1969
|
+
def self.new(kind:, value:)
|
|
1970
|
+
end
|
|
1971
|
+
|
|
1972
|
+
sig do
|
|
1973
|
+
override.returns(
|
|
1974
|
+
{
|
|
1975
|
+
kind:
|
|
1976
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::OrSymbol,
|
|
1977
|
+
value: String
|
|
1978
|
+
}
|
|
1979
|
+
)
|
|
1980
|
+
end
|
|
1981
|
+
def to_hash
|
|
1982
|
+
end
|
|
1983
|
+
|
|
1984
|
+
module Kind
|
|
1985
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
1986
|
+
|
|
1987
|
+
TaggedSymbol =
|
|
1988
|
+
T.type_alias do
|
|
1989
|
+
T.all(
|
|
1990
|
+
Symbol,
|
|
1991
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind
|
|
1992
|
+
)
|
|
1993
|
+
end
|
|
1994
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1995
|
+
|
|
1996
|
+
FAVORITERS =
|
|
1997
|
+
T.let(
|
|
1998
|
+
:favoriters,
|
|
1999
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2000
|
+
)
|
|
2001
|
+
LIST =
|
|
2002
|
+
T.let(
|
|
2003
|
+
:list,
|
|
2004
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2005
|
+
)
|
|
2006
|
+
PROFILE =
|
|
2007
|
+
T.let(
|
|
2008
|
+
:profile,
|
|
2009
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2010
|
+
)
|
|
2011
|
+
PROFILE_LIKES =
|
|
2012
|
+
T.let(
|
|
2013
|
+
:profile_likes,
|
|
2014
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2015
|
+
)
|
|
2016
|
+
PROFILE_MEDIA =
|
|
2017
|
+
T.let(
|
|
2018
|
+
:profile_media,
|
|
2019
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2020
|
+
)
|
|
2021
|
+
PROFILE_REPLIES =
|
|
2022
|
+
T.let(
|
|
2023
|
+
:profile_replies,
|
|
2024
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2025
|
+
)
|
|
2026
|
+
QUOTES =
|
|
2027
|
+
T.let(
|
|
2028
|
+
:quotes,
|
|
2029
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2030
|
+
)
|
|
2031
|
+
REPLIES =
|
|
2032
|
+
T.let(
|
|
2033
|
+
:replies,
|
|
2034
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2035
|
+
)
|
|
2036
|
+
RETWEETERS =
|
|
2037
|
+
T.let(
|
|
2038
|
+
:retweeters,
|
|
2039
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2040
|
+
)
|
|
2041
|
+
SEARCH =
|
|
2042
|
+
T.let(
|
|
2043
|
+
:search,
|
|
2044
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2045
|
+
)
|
|
2046
|
+
THREAD =
|
|
2047
|
+
T.let(
|
|
2048
|
+
:thread,
|
|
2049
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2050
|
+
)
|
|
2051
|
+
TWEET =
|
|
2052
|
+
T.let(
|
|
2053
|
+
:tweet,
|
|
2054
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2055
|
+
)
|
|
2056
|
+
|
|
2057
|
+
sig do
|
|
2058
|
+
override.returns(
|
|
2059
|
+
T::Array[
|
|
2060
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::UnionMember1::Kind::TaggedSymbol
|
|
2061
|
+
]
|
|
2062
|
+
)
|
|
2063
|
+
end
|
|
2064
|
+
def self.values
|
|
2065
|
+
end
|
|
2066
|
+
end
|
|
2067
|
+
end
|
|
2068
|
+
|
|
2069
|
+
sig do
|
|
2070
|
+
override.returns(
|
|
2071
|
+
T::Array[
|
|
2072
|
+
XTwitterScraper::ExtractionEstimateCostParams::Target::Variants
|
|
2073
|
+
]
|
|
2074
|
+
)
|
|
2075
|
+
end
|
|
2076
|
+
def self.variants
|
|
2077
|
+
end
|
|
2078
|
+
end
|
|
2079
|
+
|
|
2080
|
+
# Reply end time as ISO 8601 or Unix seconds.
|
|
2081
|
+
module UntilTime
|
|
2082
|
+
extend XTwitterScraper::Internal::Type::Union
|
|
2083
|
+
|
|
2084
|
+
Variants = T.type_alias { T.any(Time, Integer) }
|
|
2085
|
+
|
|
2086
|
+
sig do
|
|
2087
|
+
override.returns(
|
|
2088
|
+
T::Array[
|
|
2089
|
+
XTwitterScraper::ExtractionEstimateCostParams::UntilTime::Variants
|
|
2090
|
+
]
|
|
2091
|
+
)
|
|
2092
|
+
end
|
|
2093
|
+
def self.variants
|
|
2094
|
+
end
|
|
2095
|
+
end
|
|
844
2096
|
end
|
|
845
2097
|
end
|
|
846
2098
|
end
|