x-twitter-scraper 0.7.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +3 -3
  4. data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +5 -5
  5. data/lib/x_twitter_scraper/models/draw_export_params.rb +8 -3
  6. data/lib/x_twitter_scraper/models/draw_list_params.rb +2 -2
  7. data/lib/x_twitter_scraper/models/error.rb +8 -0
  8. data/lib/x_twitter_scraper/models/event_list_params.rb +13 -5
  9. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +731 -82
  10. data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +1 -0
  11. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +145 -1
  12. data/lib/x_twitter_scraper/models/extraction_list_params.rb +2 -2
  13. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +70 -3
  14. data/lib/x_twitter_scraper/models/extraction_run_params.rb +662 -1
  15. data/lib/x_twitter_scraper/models/extraction_run_response.rb +27 -48
  16. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +8 -8
  17. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +9 -9
  18. data/lib/x_twitter_scraper/models/monitor.rb +29 -1
  19. data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -4
  20. data/lib/x_twitter_scraper/models/paginated_users.rb +5 -5
  21. data/lib/x_twitter_scraper/models/support/attachment_download_params.rb +28 -0
  22. data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +113 -1
  23. data/lib/x_twitter_scraper/models/x/community_retrieve_moderators_params.rb +117 -1
  24. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +117 -6
  25. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +116 -1
  26. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +117 -6
  27. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +153 -1
  28. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +246 -16
  29. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +3 -2
  30. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +117 -6
  31. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +187 -14
  32. data/lib/x_twitter_scraper/models/x/tweet_search_response.rb +299 -0
  33. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +143 -10
  34. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_response.rb +241 -0
  35. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +117 -6
  36. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +143 -10
  37. data/lib/x_twitter_scraper/models/x/user_retrieve_following_response.rb +241 -0
  38. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +153 -1
  39. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +153 -1
  40. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +153 -1
  41. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +159 -7
  42. data/lib/x_twitter_scraper/models/x/user_retrieve_search_params.rb +116 -1
  43. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +159 -7
  44. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +157 -8
  45. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rb +245 -0
  46. data/lib/x_twitter_scraper/models/x/x_account.rb +7 -11
  47. data/lib/x_twitter_scraper/resources/credits.rb +2 -2
  48. data/lib/x_twitter_scraper/resources/draws.rb +5 -2
  49. data/lib/x_twitter_scraper/resources/events.rb +10 -4
  50. data/lib/x_twitter_scraper/resources/extractions.rb +383 -84
  51. data/lib/x_twitter_scraper/resources/guest_wallets.rb +9 -13
  52. data/lib/x_twitter_scraper/resources/support/attachments.rb +42 -0
  53. data/lib/x_twitter_scraper/resources/support.rb +5 -0
  54. data/lib/x_twitter_scraper/resources/x/communities.rb +95 -4
  55. data/lib/x_twitter_scraper/resources/x/lists.rb +96 -5
  56. data/lib/x_twitter_scraper/resources/x/tweets.rb +286 -28
  57. data/lib/x_twitter_scraper/resources/x/users.rb +531 -41
  58. data/lib/x_twitter_scraper/version.rb +1 -1
  59. data/lib/x_twitter_scraper.rb +7 -1
  60. data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +6 -6
  61. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +6 -3
  62. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +2 -2
  63. data/rbi/x_twitter_scraper/models/error.rbi +40 -0
  64. data/rbi/x_twitter_scraper/models/event_list_params.rbi +15 -4
  65. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +1338 -86
  66. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +5 -0
  67. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +198 -0
  68. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +2 -2
  69. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +194 -2
  70. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +1221 -0
  71. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +35 -162
  72. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +8 -6
  73. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +9 -7
  74. data/rbi/x_twitter_scraper/models/monitor.rbi +54 -3
  75. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -4
  76. data/rbi/x_twitter_scraper/models/paginated_users.rbi +5 -5
  77. data/rbi/x_twitter_scraper/models/support/attachment_download_params.rbi +51 -0
  78. data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +154 -0
  79. data/rbi/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbi +154 -0
  80. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +160 -8
  81. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +154 -0
  82. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +160 -8
  83. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +209 -0
  84. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +403 -20
  85. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +3 -2
  86. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +160 -8
  87. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +279 -16
  88. data/rbi/x_twitter_scraper/models/x/tweet_search_response.rbi +543 -0
  89. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +228 -12
  90. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_response.rbi +440 -0
  91. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +160 -8
  92. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +228 -12
  93. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_response.rbi +440 -0
  94. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +209 -0
  95. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +209 -0
  96. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +209 -0
  97. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +217 -8
  98. data/rbi/x_twitter_scraper/models/x/user_retrieve_search_params.rbi +154 -0
  99. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +217 -8
  100. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +248 -10
  101. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbi +440 -0
  102. data/rbi/x_twitter_scraper/models/x/x_account.rbi +9 -15
  103. data/rbi/x_twitter_scraper/resources/credits.rbi +2 -2
  104. data/rbi/x_twitter_scraper/resources/draws.rbi +3 -2
  105. data/rbi/x_twitter_scraper/resources/events.rbi +5 -2
  106. data/rbi/x_twitter_scraper/resources/extractions.rbi +525 -83
  107. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +9 -13
  108. data/rbi/x_twitter_scraper/resources/support/attachments.rbi +35 -0
  109. data/rbi/x_twitter_scraper/resources/support.rbi +4 -0
  110. data/rbi/x_twitter_scraper/resources/x/communities.rbi +84 -0
  111. data/rbi/x_twitter_scraper/resources/x/lists.rbi +87 -4
  112. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +307 -31
  113. data/rbi/x_twitter_scraper/resources/x/users.rbi +558 -34
  114. data/sig/x_twitter_scraper/models/error.rbs +16 -0
  115. data/sig/x_twitter_scraper/models/event_list_params.rbs +7 -0
  116. data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +605 -1
  117. data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +2 -0
  118. data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +127 -1
  119. data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +74 -1
  120. data/sig/x_twitter_scraper/models/extraction_run_params.rbs +611 -1
  121. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +29 -67
  122. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +4 -4
  123. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +4 -4
  124. data/sig/x_twitter_scraper/models/monitor.rbs +29 -3
  125. data/sig/x_twitter_scraper/models/support/attachment_download_params.rbs +32 -0
  126. data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +103 -1
  127. data/sig/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbs +102 -1
  128. data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +103 -1
  129. data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +103 -1
  130. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +103 -1
  131. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +134 -1
  132. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +207 -2
  133. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +103 -1
  134. data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +154 -1
  135. data/sig/x_twitter_scraper/models/x/tweet_search_response.rbs +258 -0
  136. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +119 -1
  137. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_response.rbs +216 -0
  138. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +103 -1
  139. data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +119 -1
  140. data/sig/x_twitter_scraper/models/x/user_retrieve_following_response.rbs +216 -0
  141. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +134 -1
  142. data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +134 -1
  143. data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +134 -1
  144. data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +134 -1
  145. data/sig/x_twitter_scraper/models/x/user_retrieve_search_params.rbs +102 -1
  146. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +134 -1
  147. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +137 -1
  148. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbs +216 -0
  149. data/sig/x_twitter_scraper/resources/events.rbs +1 -0
  150. data/sig/x_twitter_scraper/resources/extractions.rbs +137 -0
  151. data/sig/x_twitter_scraper/resources/support/attachments.rbs +15 -0
  152. data/sig/x_twitter_scraper/resources/support.rbs +2 -0
  153. data/sig/x_twitter_scraper/resources/x/communities.rbs +28 -0
  154. data/sig/x_twitter_scraper/resources/x/lists.rbs +28 -0
  155. data/sig/x_twitter_scraper/resources/x/tweets.rbs +93 -1
  156. data/sig/x_twitter_scraper/resources/x/users.rbs +173 -3
  157. metadata +19 -1
@@ -10,24 +10,39 @@ module XTwitterScraper
10
10
  q: String,
11
11
  advanced_query: String,
12
12
  any_words: String,
13
+ blue_verified_only: bool,
13
14
  bounding_box: String,
15
+ card_name: String,
14
16
  cashtags: String,
15
17
  conversation_id: String,
16
18
  cursor: String,
17
19
  exact_phrase: String,
20
+ exclude_source: String,
18
21
  exclude_words: String,
19
22
  from_user: String,
23
+ geocode: String,
20
24
  hashtags: String,
21
25
  in_reply_to_tweet_id: String,
22
26
  language: String,
23
27
  limit: Integer,
24
28
  list_id: String,
29
+ max_faves: Integer,
30
+ max_id: String,
31
+ max_quotes: Integer,
32
+ max_replies: Integer,
33
+ max_retweets: Integer,
25
34
  media_type: XTwitterScraper::Models::X::TweetSearchParams::media_type,
26
35
  mentioning: String,
36
+ min_bookmarks: Integer,
27
37
  min_faves: Integer,
28
38
  min_quotes: Integer,
29
39
  min_replies: Integer,
30
40
  min_retweets: Integer,
41
+ min_views: Integer,
42
+ mode: XTwitterScraper::Models::X::TweetSearchParams::mode,
43
+ native_retweets: bool,
44
+ near: String,
45
+ news: bool,
31
46
  place: String,
32
47
  place_country: String,
33
48
  point_radius: String,
@@ -37,13 +52,18 @@ module XTwitterScraper
37
52
  replies: XTwitterScraper::Models::X::TweetSearchParams::replies,
38
53
  retweets: XTwitterScraper::Models::X::TweetSearchParams::retweets,
39
54
  retweets_of_tweet_id: String,
55
+ safe: bool,
40
56
  since_date: Date,
57
+ since_id: String,
41
58
  since_time: String,
59
+ source: String,
42
60
  to_user: String,
43
61
  until_date: Date,
44
62
  until_time: String,
45
63
  url: String,
46
- verified_only: bool
64
+ verified_only: bool,
65
+ within: String,
66
+ within_time: String
47
67
  }
48
68
  & XTwitterScraper::Internal::Type::request_parameters
49
69
 
@@ -61,10 +81,18 @@ module XTwitterScraper
61
81
 
62
82
  def any_words=: (String) -> String
63
83
 
84
+ attr_reader blue_verified_only: bool?
85
+
86
+ def blue_verified_only=: (bool) -> bool
87
+
64
88
  attr_reader bounding_box: String?
65
89
 
66
90
  def bounding_box=: (String) -> String
67
91
 
92
+ attr_reader card_name: String?
93
+
94
+ def card_name=: (String) -> String
95
+
68
96
  attr_reader cashtags: String?
69
97
 
70
98
  def cashtags=: (String) -> String
@@ -81,6 +109,10 @@ module XTwitterScraper
81
109
 
82
110
  def exact_phrase=: (String) -> String
83
111
 
112
+ attr_reader exclude_source: String?
113
+
114
+ def exclude_source=: (String) -> String
115
+
84
116
  attr_reader exclude_words: String?
85
117
 
86
118
  def exclude_words=: (String) -> String
@@ -89,6 +121,10 @@ module XTwitterScraper
89
121
 
90
122
  def from_user=: (String) -> String
91
123
 
124
+ attr_reader geocode: String?
125
+
126
+ def geocode=: (String) -> String
127
+
92
128
  attr_reader hashtags: String?
93
129
 
94
130
  def hashtags=: (String) -> String
@@ -109,6 +145,26 @@ module XTwitterScraper
109
145
 
110
146
  def list_id=: (String) -> String
111
147
 
148
+ attr_reader max_faves: Integer?
149
+
150
+ def max_faves=: (Integer) -> Integer
151
+
152
+ attr_reader max_id: String?
153
+
154
+ def max_id=: (String) -> String
155
+
156
+ attr_reader max_quotes: Integer?
157
+
158
+ def max_quotes=: (Integer) -> Integer
159
+
160
+ attr_reader max_replies: Integer?
161
+
162
+ def max_replies=: (Integer) -> Integer
163
+
164
+ attr_reader max_retweets: Integer?
165
+
166
+ def max_retweets=: (Integer) -> Integer
167
+
112
168
  attr_reader media_type: XTwitterScraper::Models::X::TweetSearchParams::media_type?
113
169
 
114
170
  def media_type=: (
@@ -119,6 +175,10 @@ module XTwitterScraper
119
175
 
120
176
  def mentioning=: (String) -> String
121
177
 
178
+ attr_reader min_bookmarks: Integer?
179
+
180
+ def min_bookmarks=: (Integer) -> Integer
181
+
122
182
  attr_reader min_faves: Integer?
123
183
 
124
184
  def min_faves=: (Integer) -> Integer
@@ -135,6 +195,28 @@ module XTwitterScraper
135
195
 
136
196
  def min_retweets=: (Integer) -> Integer
137
197
 
198
+ attr_reader min_views: Integer?
199
+
200
+ def min_views=: (Integer) -> Integer
201
+
202
+ attr_reader mode: XTwitterScraper::Models::X::TweetSearchParams::mode?
203
+
204
+ def mode=: (
205
+ XTwitterScraper::Models::X::TweetSearchParams::mode
206
+ ) -> XTwitterScraper::Models::X::TweetSearchParams::mode
207
+
208
+ attr_reader native_retweets: bool?
209
+
210
+ def native_retweets=: (bool) -> bool
211
+
212
+ attr_reader near: String?
213
+
214
+ def near=: (String) -> String
215
+
216
+ attr_reader news: bool?
217
+
218
+ def news=: (bool) -> bool
219
+
138
220
  attr_reader place: String?
139
221
 
140
222
  def place=: (String) -> String
@@ -179,14 +261,26 @@ module XTwitterScraper
179
261
 
180
262
  def retweets_of_tweet_id=: (String) -> String
181
263
 
264
+ attr_reader safe: bool?
265
+
266
+ def safe=: (bool) -> bool
267
+
182
268
  attr_reader since_date: Date?
183
269
 
184
270
  def since_date=: (Date) -> Date
185
271
 
272
+ attr_reader since_id: String?
273
+
274
+ def since_id=: (String) -> String
275
+
186
276
  attr_reader since_time: String?
187
277
 
188
278
  def since_time=: (String) -> String
189
279
 
280
+ attr_reader source: String?
281
+
282
+ def source=: (String) -> String
283
+
190
284
  attr_reader to_user: String?
191
285
 
192
286
  def to_user=: (String) -> String
@@ -207,28 +301,51 @@ module XTwitterScraper
207
301
 
208
302
  def verified_only=: (bool) -> bool
209
303
 
304
+ attr_reader within: String?
305
+
306
+ def within=: (String) -> String
307
+
308
+ attr_reader within_time: String?
309
+
310
+ def within_time=: (String) -> String
311
+
210
312
  def initialize: (
211
313
  q: String,
212
314
  ?advanced_query: String,
213
315
  ?any_words: String,
316
+ ?blue_verified_only: bool,
214
317
  ?bounding_box: String,
318
+ ?card_name: String,
215
319
  ?cashtags: String,
216
320
  ?conversation_id: String,
217
321
  ?cursor: String,
218
322
  ?exact_phrase: String,
323
+ ?exclude_source: String,
219
324
  ?exclude_words: String,
220
325
  ?from_user: String,
326
+ ?geocode: String,
221
327
  ?hashtags: String,
222
328
  ?in_reply_to_tweet_id: String,
223
329
  ?language: String,
224
330
  ?limit: Integer,
225
331
  ?list_id: String,
332
+ ?max_faves: Integer,
333
+ ?max_id: String,
334
+ ?max_quotes: Integer,
335
+ ?max_replies: Integer,
336
+ ?max_retweets: Integer,
226
337
  ?media_type: XTwitterScraper::Models::X::TweetSearchParams::media_type,
227
338
  ?mentioning: String,
339
+ ?min_bookmarks: Integer,
228
340
  ?min_faves: Integer,
229
341
  ?min_quotes: Integer,
230
342
  ?min_replies: Integer,
231
343
  ?min_retweets: Integer,
344
+ ?min_views: Integer,
345
+ ?mode: XTwitterScraper::Models::X::TweetSearchParams::mode,
346
+ ?native_retweets: bool,
347
+ ?near: String,
348
+ ?news: bool,
232
349
  ?place: String,
233
350
  ?place_country: String,
234
351
  ?point_radius: String,
@@ -238,13 +355,18 @@ module XTwitterScraper
238
355
  ?replies: XTwitterScraper::Models::X::TweetSearchParams::replies,
239
356
  ?retweets: XTwitterScraper::Models::X::TweetSearchParams::retweets,
240
357
  ?retweets_of_tweet_id: String,
358
+ ?safe: bool,
241
359
  ?since_date: Date,
360
+ ?since_id: String,
242
361
  ?since_time: String,
362
+ ?source: String,
243
363
  ?to_user: String,
244
364
  ?until_date: Date,
245
365
  ?until_time: String,
246
366
  ?url: String,
247
367
  ?verified_only: bool,
368
+ ?within: String,
369
+ ?within_time: String,
248
370
  ?request_options: XTwitterScraper::request_opts
249
371
  ) -> void
250
372
 
@@ -252,24 +374,39 @@ module XTwitterScraper
252
374
  q: String,
253
375
  advanced_query: String,
254
376
  any_words: String,
377
+ blue_verified_only: bool,
255
378
  bounding_box: String,
379
+ card_name: String,
256
380
  cashtags: String,
257
381
  conversation_id: String,
258
382
  cursor: String,
259
383
  exact_phrase: String,
384
+ exclude_source: String,
260
385
  exclude_words: String,
261
386
  from_user: String,
387
+ geocode: String,
262
388
  hashtags: String,
263
389
  in_reply_to_tweet_id: String,
264
390
  language: String,
265
391
  limit: Integer,
266
392
  list_id: String,
393
+ max_faves: Integer,
394
+ max_id: String,
395
+ max_quotes: Integer,
396
+ max_replies: Integer,
397
+ max_retweets: Integer,
267
398
  media_type: XTwitterScraper::Models::X::TweetSearchParams::media_type,
268
399
  mentioning: String,
400
+ min_bookmarks: Integer,
269
401
  min_faves: Integer,
270
402
  min_quotes: Integer,
271
403
  min_replies: Integer,
272
404
  min_retweets: Integer,
405
+ min_views: Integer,
406
+ mode: XTwitterScraper::Models::X::TweetSearchParams::mode,
407
+ native_retweets: bool,
408
+ near: String,
409
+ news: bool,
273
410
  place: String,
274
411
  place_country: String,
275
412
  point_radius: String,
@@ -279,13 +416,18 @@ module XTwitterScraper
279
416
  replies: XTwitterScraper::Models::X::TweetSearchParams::replies,
280
417
  retweets: XTwitterScraper::Models::X::TweetSearchParams::retweets,
281
418
  retweets_of_tweet_id: String,
419
+ safe: bool,
282
420
  since_date: Date,
421
+ since_id: String,
283
422
  since_time: String,
423
+ source: String,
284
424
  to_user: String,
285
425
  until_date: Date,
286
426
  until_time: String,
287
427
  url: String,
288
428
  verified_only: bool,
429
+ within: String,
430
+ within_time: String,
289
431
  request_options: XTwitterScraper::RequestOptions
290
432
  }
291
433
 
@@ -304,6 +446,17 @@ module XTwitterScraper
304
446
  def self?.values: -> ::Array[XTwitterScraper::Models::X::TweetSearchParams::media_type]
305
447
  end
306
448
 
449
+ type mode = :standard | :coverage
450
+
451
+ module Mode
452
+ extend XTwitterScraper::Internal::Type::Enum
453
+
454
+ STANDARD: :standard
455
+ COVERAGE: :coverage
456
+
457
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::TweetSearchParams::mode]
458
+ end
459
+
307
460
  type query_type = :Latest | :Top
308
461
 
309
462
  module QueryType
@@ -0,0 +1,258 @@
1
+ module XTwitterScraper
2
+ module Models
3
+ module X
4
+ type tweet_search_response =
5
+ XTwitterScraper::PaginatedTweets
6
+ | XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse
7
+
8
+ module TweetSearchResponse
9
+ extend XTwitterScraper::Internal::Type::Union
10
+
11
+ type tweet_search_coverage_response =
12
+ {
13
+ diagnostic: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic,
14
+ has_next_page: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::has_next_page,
15
+ next_cursor: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::next_cursor
16
+ }
17
+
18
+ class TweetSearchCoverageResponse < XTwitterScraper::Models::PaginatedTweets
19
+ def diagnostic: -> XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic
20
+
21
+ def diagnostic=: (
22
+ XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic _
23
+ ) -> XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic
24
+
25
+ def has_next_page: -> XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::has_next_page?
26
+
27
+ def has_next_page=: (
28
+ XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::has_next_page _
29
+ ) -> XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::has_next_page
30
+
31
+ def next_cursor: -> XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::next_cursor?
32
+
33
+ def next_cursor=: (
34
+ XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::next_cursor _
35
+ ) -> XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::next_cursor
36
+
37
+ def initialize: (
38
+ diagnostic: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic,
39
+ ?has_next_page: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::has_next_page,
40
+ ?next_cursor: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::next_cursor
41
+ ) -> void
42
+
43
+ def to_hash: -> {
44
+ diagnostic: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic,
45
+ has_next_page: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::has_next_page,
46
+ next_cursor: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::next_cursor
47
+ }
48
+
49
+ type diagnostic =
50
+ {
51
+ complete: bool,
52
+ cursor_failure_count: Integer,
53
+ deadline_reached: bool,
54
+ duplicate_count: Integer,
55
+ failed_strategy_count: Integer,
56
+ malformed_count: Integer,
57
+ pages_fetched: Integer,
58
+ partitioned: bool,
59
+ response_truncated: bool,
60
+ result_limit_reached: bool,
61
+ returned_tweets: Integer,
62
+ stalled_strategy_count: Integer,
63
+ strategies: ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy],
64
+ strategy_count: Integer,
65
+ unique_tweets: Integer
66
+ }
67
+
68
+ class Diagnostic < XTwitterScraper::Internal::Type::BaseModel
69
+ attr_accessor complete: bool
70
+
71
+ attr_accessor cursor_failure_count: Integer
72
+
73
+ attr_accessor deadline_reached: bool
74
+
75
+ attr_accessor duplicate_count: Integer
76
+
77
+ attr_accessor failed_strategy_count: Integer
78
+
79
+ attr_accessor malformed_count: Integer
80
+
81
+ attr_accessor pages_fetched: Integer
82
+
83
+ attr_accessor partitioned: bool
84
+
85
+ attr_accessor response_truncated: bool
86
+
87
+ attr_accessor result_limit_reached: bool
88
+
89
+ attr_accessor returned_tweets: Integer
90
+
91
+ attr_accessor stalled_strategy_count: Integer
92
+
93
+ attr_accessor strategies: ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy]
94
+
95
+ attr_accessor strategy_count: Integer
96
+
97
+ attr_accessor unique_tweets: Integer
98
+
99
+ def initialize: (
100
+ complete: bool,
101
+ cursor_failure_count: Integer,
102
+ deadline_reached: bool,
103
+ duplicate_count: Integer,
104
+ failed_strategy_count: Integer,
105
+ malformed_count: Integer,
106
+ pages_fetched: Integer,
107
+ partitioned: bool,
108
+ response_truncated: bool,
109
+ result_limit_reached: bool,
110
+ returned_tweets: Integer,
111
+ stalled_strategy_count: Integer,
112
+ strategies: ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy],
113
+ strategy_count: Integer,
114
+ unique_tweets: Integer
115
+ ) -> void
116
+
117
+ def to_hash: -> {
118
+ complete: bool,
119
+ cursor_failure_count: Integer,
120
+ deadline_reached: bool,
121
+ duplicate_count: Integer,
122
+ failed_strategy_count: Integer,
123
+ malformed_count: Integer,
124
+ pages_fetched: Integer,
125
+ partitioned: bool,
126
+ response_truncated: bool,
127
+ result_limit_reached: bool,
128
+ returned_tweets: Integer,
129
+ stalled_strategy_count: Integer,
130
+ strategies: ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy],
131
+ strategy_count: Integer,
132
+ unique_tweets: Integer
133
+ }
134
+
135
+ type strategy =
136
+ {
137
+ duplicate_count: Integer,
138
+ pages_fetched: Integer,
139
+ query_type: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::query_type,
140
+ stop_reason: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::stop_reason,
141
+ strategy: Integer,
142
+ unique_added: Integer,
143
+ window: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window
144
+ }
145
+
146
+ class Strategy < XTwitterScraper::Internal::Type::BaseModel
147
+ attr_accessor duplicate_count: Integer
148
+
149
+ attr_accessor pages_fetched: Integer
150
+
151
+ attr_accessor query_type: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::query_type
152
+
153
+ attr_accessor stop_reason: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::stop_reason
154
+
155
+ attr_accessor strategy: Integer
156
+
157
+ attr_accessor unique_added: Integer
158
+
159
+ attr_reader window: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window?
160
+
161
+ def window=: (
162
+ XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window
163
+ ) -> XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window
164
+
165
+ def initialize: (
166
+ duplicate_count: Integer,
167
+ pages_fetched: Integer,
168
+ query_type: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::query_type,
169
+ stop_reason: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::stop_reason,
170
+ strategy: Integer,
171
+ unique_added: Integer,
172
+ ?window: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window
173
+ ) -> void
174
+
175
+ def to_hash: -> {
176
+ duplicate_count: Integer,
177
+ pages_fetched: Integer,
178
+ query_type: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::query_type,
179
+ stop_reason: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::stop_reason,
180
+ strategy: Integer,
181
+ unique_added: Integer,
182
+ window: XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::Window
183
+ }
184
+
185
+ type query_type = :Latest | :Top
186
+
187
+ module QueryType
188
+ extend XTwitterScraper::Internal::Type::Enum
189
+
190
+ LATEST: :Latest
191
+ TOP: :Top
192
+
193
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::query_type]
194
+ end
195
+
196
+ type stop_reason =
197
+ :cursor_failure
198
+ | :deadline
199
+ | :exhausted
200
+ | :failed
201
+ | :page_limit
202
+ | :result_limit
203
+ | :stalled
204
+
205
+ module StopReason
206
+ extend XTwitterScraper::Internal::Type::Enum
207
+
208
+ CURSOR_FAILURE: :cursor_failure
209
+ DEADLINE: :deadline
210
+ EXHAUSTED: :exhausted
211
+ FAILED: :failed
212
+ PAGE_LIMIT: :page_limit
213
+ RESULT_LIMIT: :result_limit
214
+ STALLED: :stalled
215
+
216
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::stop_reason]
217
+ end
218
+
219
+ type window = { since_time: Time, until_time: Time }
220
+
221
+ class Window < XTwitterScraper::Internal::Type::BaseModel
222
+ attr_accessor since_time: Time
223
+
224
+ attr_accessor until_time: Time
225
+
226
+ def initialize: (since_time: Time, until_time: Time) -> void
227
+
228
+ def to_hash: -> { since_time: Time, until_time: Time }
229
+ end
230
+ end
231
+ end
232
+
233
+ type has_next_page = false
234
+
235
+ module HasNextPage
236
+ extend XTwitterScraper::Internal::Type::Enum
237
+
238
+ FALSE: false
239
+
240
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::has_next_page]
241
+ end
242
+
243
+ type next_cursor = :""
244
+
245
+ module NextCursor
246
+ extend XTwitterScraper::Internal::Type::Enum
247
+
248
+ EMPTY: :""
249
+
250
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::TweetSearchResponse::TweetSearchCoverageResponse::next_cursor]
251
+ end
252
+ end
253
+
254
+ def self?.variants: -> ::Array[XTwitterScraper::Models::X::tweet_search_response]
255
+ end
256
+ end
257
+ end
258
+ end