x-twitter-scraper 0.4.2 → 0.4.4

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 (522) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/LICENSE +201 -0
  4. data/README.md +10 -12
  5. data/lib/x_twitter_scraper/client.rb +30 -26
  6. data/lib/x_twitter_scraper/internal/transport/base_client.rb +5 -0
  7. data/lib/x_twitter_scraper/internal/type/base_model.rb +4 -3
  8. data/lib/x_twitter_scraper/internal/util.rb +3 -1
  9. data/lib/x_twitter_scraper/models/account_retrieve_response.rb +138 -23
  10. data/lib/x_twitter_scraper/models/content_disclosure.rb +66 -0
  11. data/lib/x_twitter_scraper/models/credit_redirect_topup_checkout_params.rb +22 -0
  12. data/lib/x_twitter_scraper/models/credit_retrieve_balance_response.rb +37 -10
  13. data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_params.rb +22 -0
  14. data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_response.rb +45 -0
  15. data/lib/x_twitter_scraper/models/credit_topup_balance_params.rb +13 -5
  16. data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +18 -5
  17. data/lib/x_twitter_scraper/models/draft_list_params.rb +8 -2
  18. data/lib/x_twitter_scraper/models/draw_detail.rb +15 -1
  19. data/lib/x_twitter_scraper/models/draw_export_params.rb +3 -3
  20. data/lib/x_twitter_scraper/models/draw_list_item.rb +8 -1
  21. data/lib/x_twitter_scraper/models/draw_list_params.rb +13 -7
  22. data/lib/x_twitter_scraper/models/draw_run_response.rb +13 -2
  23. data/lib/x_twitter_scraper/models/embedded_tweet.rb +202 -0
  24. data/lib/x_twitter_scraper/models/error.rb +203 -34
  25. data/lib/x_twitter_scraper/models/event.rb +48 -6
  26. data/lib/x_twitter_scraper/models/event_detail.rb +46 -7
  27. data/lib/x_twitter_scraper/models/event_list_params.rb +13 -7
  28. data/lib/x_twitter_scraper/models/event_type.rb +17 -2
  29. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +308 -7
  30. data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +38 -14
  31. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +3 -3
  32. data/lib/x_twitter_scraper/models/extraction_job.rb +3 -0
  33. data/lib/x_twitter_scraper/models/extraction_list_params.rb +16 -7
  34. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +5 -5
  35. data/lib/x_twitter_scraper/models/extraction_retrieve_response.rb +2 -2
  36. data/lib/x_twitter_scraper/models/extraction_run_params.rb +304 -7
  37. data/lib/x_twitter_scraper/models/extraction_run_response.rb +3 -0
  38. data/lib/x_twitter_scraper/models/guest_wallet_amount.rb +25 -0
  39. data/lib/x_twitter_scraper/models/guest_wallet_create_params.rb +36 -0
  40. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +161 -0
  41. data/lib/x_twitter_scraper/models/{integration_list_params.rb → guest_wallet_retrieve_status_params.rb} +2 -2
  42. data/lib/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rb +196 -0
  43. data/lib/x_twitter_scraper/models/guest_wallet_topup_params.rb +36 -0
  44. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +172 -0
  45. data/lib/x_twitter_scraper/models/monitor.rb +9 -1
  46. data/lib/x_twitter_scraper/models/monitor_create_response.rb +16 -1
  47. data/lib/x_twitter_scraper/models/monitors/keyword_create_params.rb +34 -0
  48. data/lib/x_twitter_scraper/models/monitors/keyword_create_response.rb +59 -0
  49. data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_params.rb +22 -0
  50. data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_response.rb +18 -0
  51. data/lib/x_twitter_scraper/models/monitors/keyword_list_params.rb +16 -0
  52. data/lib/x_twitter_scraper/models/monitors/keyword_list_response.rb +76 -0
  53. data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_params.rb +22 -0
  54. data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_response.rb +59 -0
  55. data/lib/x_twitter_scraper/models/monitors/keyword_update_params.rb +40 -0
  56. data/lib/x_twitter_scraper/models/monitors/keyword_update_response.rb +59 -0
  57. data/lib/x_twitter_scraper/models/paginated_tweets.rb +8 -4
  58. data/lib/x_twitter_scraper/models/paginated_users.rb +8 -4
  59. data/lib/x_twitter_scraper/models/radar_item.rb +99 -6
  60. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rb +39 -14
  61. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rb +14 -5
  62. data/lib/x_twitter_scraper/models/search_tweet.rb +236 -0
  63. data/lib/x_twitter_scraper/models/subscribe_create_params.rb +21 -1
  64. data/lib/x_twitter_scraper/models/subscribe_create_response.rb +10 -10
  65. data/lib/x_twitter_scraper/models/trend_list_params.rb +7 -4
  66. data/lib/x_twitter_scraper/models/tweet_media.rb +77 -0
  67. data/lib/x_twitter_scraper/models/user_profile.rb +258 -0
  68. data/lib/x_twitter_scraper/models/webhook.rb +46 -1
  69. data/lib/x_twitter_scraper/models/webhook_create_response.rb +2 -1
  70. data/lib/x_twitter_scraper/models/{api_key_revoke_params.rb → webhook_resume_params.rb} +2 -2
  71. data/lib/x_twitter_scraper/models/webhook_resume_response.rb +31 -0
  72. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rb +31 -0
  73. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rb +66 -0
  74. data/lib/x_twitter_scraper/models/x/account_create_params.rb +1 -9
  75. data/lib/x_twitter_scraper/models/x/account_create_response.rb +30 -1
  76. data/lib/x_twitter_scraper/models/x/account_reauth_params.rb +9 -1
  77. data/lib/x_twitter_scraper/models/x/account_reauth_response.rb +36 -1
  78. data/lib/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rb +6 -2
  79. data/lib/x_twitter_scraper/models/x/communities/join_create_response.rb +20 -0
  80. data/lib/x_twitter_scraper/models/x/communities/join_delete_all_response.rb +20 -0
  81. data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +17 -1
  82. data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +43 -9
  83. data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +69 -1
  84. data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +14 -1
  85. data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +38 -4
  86. data/lib/x_twitter_scraper/models/x/dm_retrieve_history_params.rb +13 -1
  87. data/lib/x_twitter_scraper/models/x/dm_retrieve_history_response.rb +26 -9
  88. data/lib/x_twitter_scraper/models/x/dm_send_params.rb +3 -9
  89. data/lib/x_twitter_scraper/models/x/follower_check_params.rb +4 -4
  90. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +15 -1
  91. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +9 -1
  92. data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +16 -1
  93. data/lib/x_twitter_scraper/models/x/media_download_params.rb +19 -3
  94. data/lib/x_twitter_scraper/models/x/media_upload_params.rb +8 -15
  95. data/lib/x_twitter_scraper/models/x/media_upload_response.rb +10 -1
  96. data/lib/x_twitter_scraper/models/x/profile_update_avatar_params.rb +8 -8
  97. data/lib/x_twitter_scraper/models/x/profile_update_banner_params.rb +8 -8
  98. data/lib/x_twitter_scraper/models/x/tweet_author.rb +4 -21
  99. data/lib/x_twitter_scraper/models/x/tweet_create_params.rb +18 -11
  100. data/lib/x_twitter_scraper/models/x/tweet_create_response.rb +28 -1
  101. data/lib/x_twitter_scraper/models/x/tweet_detail.rb +109 -43
  102. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +15 -1
  103. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +268 -1
  104. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +268 -1
  105. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +15 -1
  106. data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +16 -1
  107. data/lib/x_twitter_scraper/models/x/tweet_retrieve_response.rb +9 -4
  108. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +314 -8
  109. data/lib/x_twitter_scraper/models/x/user_remove_follower_params.rb +31 -0
  110. data/lib/x_twitter_scraper/models/x/user_remove_follower_response.rb +18 -0
  111. data/lib/x_twitter_scraper/models/x/user_retrieve_batch_params.rb +6 -2
  112. data/lib/x_twitter_scraper/models/x/user_retrieve_batch_response.rb +83 -0
  113. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +25 -3
  114. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +16 -1
  115. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +25 -3
  116. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +268 -1
  117. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +268 -1
  118. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +268 -1
  119. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +306 -0
  120. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +268 -1
  121. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +16 -1
  122. data/lib/x_twitter_scraper/models/x/write_action_retrieve_params.rb +22 -0
  123. data/lib/x_twitter_scraper/models/x/write_action_retrieve_response.rb +173 -0
  124. data/lib/x_twitter_scraper/models/x/x_account.rb +56 -2
  125. data/lib/x_twitter_scraper/models/x/x_account_detail.rb +23 -8
  126. data/lib/x_twitter_scraper/models/x_get_article_response.rb +189 -11
  127. data/lib/x_twitter_scraper/models/x_get_home_timeline_params.rb +2 -2
  128. data/lib/x_twitter_scraper/models/x_get_notifications_params.rb +3 -3
  129. data/lib/x_twitter_scraper/models/x_get_trends_params.rb +17 -1
  130. data/lib/x_twitter_scraper/models.rb +21 -21
  131. data/lib/x_twitter_scraper/resources/account.rb +1 -3
  132. data/lib/x_twitter_scraper/resources/compose.rb +1 -1
  133. data/lib/x_twitter_scraper/resources/credits.rb +54 -4
  134. data/lib/x_twitter_scraper/resources/drafts.rb +7 -4
  135. data/lib/x_twitter_scraper/resources/draws.rb +14 -8
  136. data/lib/x_twitter_scraper/resources/events.rb +7 -5
  137. data/lib/x_twitter_scraper/resources/extractions.rb +145 -20
  138. data/lib/x_twitter_scraper/resources/guest_wallets.rb +108 -0
  139. data/lib/x_twitter_scraper/resources/monitors/keywords.rb +128 -0
  140. data/lib/x_twitter_scraper/resources/monitors.rb +13 -5
  141. data/lib/x_twitter_scraper/resources/radar.rb +8 -6
  142. data/lib/x_twitter_scraper/resources/styles.rb +1 -1
  143. data/lib/x_twitter_scraper/resources/subscribe.rb +9 -4
  144. data/lib/x_twitter_scraper/resources/support/tickets.rb +3 -3
  145. data/lib/x_twitter_scraper/resources/trends.rb +7 -4
  146. data/lib/x_twitter_scraper/resources/webhooks.rb +25 -5
  147. data/lib/x_twitter_scraper/resources/x/account_connection_challenges.rb +41 -0
  148. data/lib/x_twitter_scraper/resources/x/accounts.rb +7 -13
  149. data/lib/x_twitter_scraper/resources/x/bookmarks.rb +1 -1
  150. data/lib/x_twitter_scraper/resources/x/communities/join.rb +6 -6
  151. data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +27 -10
  152. data/lib/x_twitter_scraper/resources/x/communities.rb +27 -11
  153. data/lib/x_twitter_scraper/resources/x/dm.rb +9 -6
  154. data/lib/x_twitter_scraper/resources/x/followers.rb +4 -4
  155. data/lib/x_twitter_scraper/resources/x/lists.rb +22 -9
  156. data/lib/x_twitter_scraper/resources/x/media.rb +11 -9
  157. data/lib/x_twitter_scraper/resources/x/profile.rb +6 -6
  158. data/lib/x_twitter_scraper/resources/x/tweets.rb +282 -28
  159. data/lib/x_twitter_scraper/resources/x/users.rb +485 -34
  160. data/lib/x_twitter_scraper/resources/x/write_actions.rb +37 -0
  161. data/lib/x_twitter_scraper/resources/x.rb +33 -13
  162. data/lib/x_twitter_scraper/version.rb +1 -1
  163. data/lib/x_twitter_scraper.rb +41 -27
  164. data/rbi/x_twitter_scraper/client.rbi +14 -22
  165. data/rbi/x_twitter_scraper/models/account_retrieve_response.rbi +181 -23
  166. data/rbi/x_twitter_scraper/models/content_disclosure.rbi +149 -0
  167. data/rbi/x_twitter_scraper/models/{integration_retrieve_params.rbi → credit_redirect_topup_checkout_params.rbi} +14 -6
  168. data/rbi/x_twitter_scraper/models/credit_retrieve_balance_response.rbi +35 -9
  169. data/rbi/x_twitter_scraper/models/{integration_list_deliveries_params.rbi → credit_retrieve_topup_status_params.rbi} +8 -17
  170. data/rbi/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbi +107 -0
  171. data/rbi/x_twitter_scraper/models/credit_topup_balance_params.rbi +20 -6
  172. data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +19 -5
  173. data/rbi/x_twitter_scraper/models/draft_list_params.rbi +8 -2
  174. data/rbi/x_twitter_scraper/models/draw_detail.rbi +2 -0
  175. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +3 -12
  176. data/rbi/x_twitter_scraper/models/draw_list_item.rbi +2 -0
  177. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +16 -10
  178. data/rbi/x_twitter_scraper/models/draw_run_response.rbi +15 -1
  179. data/rbi/x_twitter_scraper/models/embedded_tweet.rbi +255 -0
  180. data/rbi/x_twitter_scraper/models/error.rbi +865 -87
  181. data/rbi/x_twitter_scraper/models/event.rbi +63 -4
  182. data/rbi/x_twitter_scraper/models/event_detail.rbi +73 -5
  183. data/rbi/x_twitter_scraper/models/event_list_params.rbi +16 -10
  184. data/rbi/x_twitter_scraper/models/event_type.rbi +58 -4
  185. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +580 -2
  186. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +98 -14
  187. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +3 -13
  188. data/rbi/x_twitter_scraper/models/extraction_job.rbi +15 -0
  189. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +31 -10
  190. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +8 -8
  191. data/rbi/x_twitter_scraper/models/extraction_retrieve_response.rbi +2 -2
  192. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +546 -2
  193. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +15 -0
  194. data/rbi/x_twitter_scraper/models/guest_wallet_amount.rbi +39 -0
  195. data/rbi/x_twitter_scraper/models/guest_wallet_create_params.rbi +58 -0
  196. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +243 -0
  197. data/rbi/x_twitter_scraper/models/{integration_list_params.rbi → guest_wallet_retrieve_status_params.rbi} +2 -2
  198. data/rbi/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbi +402 -0
  199. data/rbi/x_twitter_scraper/models/guest_wallet_topup_params.rbi +58 -0
  200. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +293 -0
  201. data/rbi/x_twitter_scraper/models/monitor.rbi +8 -0
  202. data/rbi/x_twitter_scraper/models/monitor_create_response.rbi +14 -0
  203. data/rbi/x_twitter_scraper/models/monitors/keyword_create_params.rbi +56 -0
  204. data/rbi/x_twitter_scraper/models/monitors/keyword_create_response.rbi +75 -0
  205. data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbi +40 -0
  206. data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbi +28 -0
  207. data/rbi/x_twitter_scraper/models/monitors/keyword_list_params.rbi +34 -0
  208. data/rbi/x_twitter_scraper/models/monitors/keyword_list_response.rbi +123 -0
  209. data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbi +40 -0
  210. data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbi +75 -0
  211. data/rbi/x_twitter_scraper/models/monitors/keyword_update_params.rbi +72 -0
  212. data/rbi/x_twitter_scraper/models/monitors/keyword_update_response.rbi +75 -0
  213. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +8 -4
  214. data/rbi/x_twitter_scraper/models/paginated_users.rbi +8 -4
  215. data/rbi/x_twitter_scraper/models/radar_item.rbi +131 -6
  216. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbi +109 -20
  217. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbi +22 -5
  218. data/rbi/x_twitter_scraper/models/search_tweet.rbi +316 -0
  219. data/rbi/x_twitter_scraper/models/subscribe_create_params.rbi +62 -2
  220. data/rbi/x_twitter_scraper/models/subscribe_create_response.rbi +10 -23
  221. data/rbi/x_twitter_scraper/models/trend_list_params.rbi +4 -4
  222. data/rbi/x_twitter_scraper/models/tweet_media.rbi +130 -0
  223. data/rbi/x_twitter_scraper/models/user_profile.rbi +346 -0
  224. data/rbi/x_twitter_scraper/models/webhook.rbi +57 -0
  225. data/rbi/x_twitter_scraper/models/webhook_create_response.rbi +2 -0
  226. data/rbi/x_twitter_scraper/models/{api_key_revoke_params.rbi → webhook_resume_params.rbi} +2 -2
  227. data/rbi/x_twitter_scraper/models/webhook_resume_response.rbi +55 -0
  228. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbi +54 -0
  229. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbi +131 -0
  230. data/rbi/x_twitter_scraper/models/x/account_create_params.rbi +0 -11
  231. data/rbi/x_twitter_scraper/models/x/account_create_response.rbi +79 -1
  232. data/rbi/x_twitter_scraper/models/x/account_reauth_params.rbi +11 -0
  233. data/rbi/x_twitter_scraper/models/x/account_reauth_response.rbi +96 -5
  234. data/rbi/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rbi +9 -1
  235. data/rbi/x_twitter_scraper/models/x/communities/join_create_response.rbi +30 -0
  236. data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_response.rbi +30 -0
  237. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +19 -0
  238. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +85 -10
  239. data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +115 -0
  240. data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +15 -0
  241. data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +79 -4
  242. data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_params.rbi +10 -0
  243. data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_response.rbi +20 -13
  244. data/rbi/x_twitter_scraper/models/x/dm_send_params.rbi +2 -9
  245. data/rbi/x_twitter_scraper/models/x/follower_check_params.rbi +4 -4
  246. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +17 -0
  247. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +11 -0
  248. data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +19 -0
  249. data/rbi/x_twitter_scraper/models/x/media_download_params.rbi +24 -2
  250. data/rbi/x_twitter_scraper/models/x/media_upload_params.rbi +9 -18
  251. data/rbi/x_twitter_scraper/models/x/media_upload_response.rbi +20 -5
  252. data/rbi/x_twitter_scraper/models/x/profile_update_avatar_params.rbi +9 -9
  253. data/rbi/x_twitter_scraper/models/x/profile_update_banner_params.rbi +9 -9
  254. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +8 -39
  255. data/rbi/x_twitter_scraper/models/x/tweet_create_params.rbi +23 -12
  256. data/rbi/x_twitter_scraper/models/x/tweet_create_response.rbi +41 -5
  257. data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +156 -115
  258. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +17 -0
  259. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +508 -0
  260. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +512 -0
  261. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +17 -0
  262. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +19 -0
  263. data/rbi/x_twitter_scraper/models/x/tweet_retrieve_response.rbi +8 -4
  264. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +557 -7
  265. data/rbi/x_twitter_scraper/models/x/user_remove_follower_params.rbi +54 -0
  266. data/rbi/x_twitter_scraper/models/x/user_remove_follower_response.rbi +28 -0
  267. data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_params.rbi +4 -2
  268. data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_response.rbi +102 -0
  269. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +30 -2
  270. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +17 -0
  271. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +30 -2
  272. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +520 -0
  273. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +520 -0
  274. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +523 -0
  275. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +591 -0
  276. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +523 -0
  277. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +17 -0
  278. data/rbi/x_twitter_scraper/models/x/write_action_retrieve_params.rbi +40 -0
  279. data/rbi/x_twitter_scraper/models/x/write_action_retrieve_response.rbi +313 -0
  280. data/rbi/x_twitter_scraper/models/x/x_account.rbi +87 -4
  281. data/rbi/x_twitter_scraper/models/x/x_account_detail.rbi +58 -10
  282. data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +308 -12
  283. data/rbi/x_twitter_scraper/models/x_get_home_timeline_params.rbi +2 -2
  284. data/rbi/x_twitter_scraper/models/x_get_notifications_params.rbi +3 -3
  285. data/rbi/x_twitter_scraper/models/x_get_trends_params.rbi +30 -2
  286. data/rbi/x_twitter_scraper/models.rbi +24 -22
  287. data/rbi/x_twitter_scraper/resources/account.rbi +1 -1
  288. data/rbi/x_twitter_scraper/resources/compose.rbi +1 -1
  289. data/rbi/x_twitter_scraper/resources/credits.rbi +37 -5
  290. data/rbi/x_twitter_scraper/resources/drafts.rbi +7 -4
  291. data/rbi/x_twitter_scraper/resources/draws.rbi +14 -8
  292. data/rbi/x_twitter_scraper/resources/events.rbi +8 -5
  293. data/rbi/x_twitter_scraper/resources/extractions.rbi +210 -11
  294. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +76 -0
  295. data/rbi/x_twitter_scraper/resources/monitors/keywords.rbi +95 -0
  296. data/rbi/x_twitter_scraper/resources/monitors.rbi +12 -5
  297. data/rbi/x_twitter_scraper/resources/radar.rbi +12 -8
  298. data/rbi/x_twitter_scraper/resources/styles.rbi +1 -1
  299. data/rbi/x_twitter_scraper/resources/subscribe.rbi +9 -3
  300. data/rbi/x_twitter_scraper/resources/support/tickets.rbi +3 -3
  301. data/rbi/x_twitter_scraper/resources/trends.rbi +4 -4
  302. data/rbi/x_twitter_scraper/resources/webhooks.rbi +19 -5
  303. data/rbi/x_twitter_scraper/resources/x/account_connection_challenges.rbi +36 -0
  304. data/rbi/x_twitter_scraper/resources/x/accounts.rbi +6 -6
  305. data/rbi/x_twitter_scraper/resources/x/bookmarks.rbi +1 -1
  306. data/rbi/x_twitter_scraper/resources/x/communities/join.rbi +8 -4
  307. data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +25 -7
  308. data/rbi/x_twitter_scraper/resources/x/communities.rbi +23 -7
  309. data/rbi/x_twitter_scraper/resources/x/dm.rbi +5 -2
  310. data/rbi/x_twitter_scraper/resources/x/followers.rbi +4 -4
  311. data/rbi/x_twitter_scraper/resources/x/lists.rbi +20 -4
  312. data/rbi/x_twitter_scraper/resources/x/media.rbi +13 -9
  313. data/rbi/x_twitter_scraper/resources/x/profile.rbi +8 -8
  314. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +309 -16
  315. data/rbi/x_twitter_scraper/resources/x/users.rbi +520 -18
  316. data/rbi/x_twitter_scraper/resources/x/write_actions.rbi +31 -0
  317. data/rbi/x_twitter_scraper/resources/x.rbi +30 -12
  318. data/sig/x_twitter_scraper/client.rbs +2 -6
  319. data/sig/x_twitter_scraper/models/account_retrieve_response.rbs +106 -19
  320. data/sig/x_twitter_scraper/models/content_disclosure.rbs +78 -0
  321. data/sig/x_twitter_scraper/models/{api_key_create_params.rbs → credit_redirect_topup_checkout_params.rbs} +7 -8
  322. data/sig/x_twitter_scraper/models/credit_retrieve_balance_response.rbs +22 -12
  323. data/sig/x_twitter_scraper/models/{integration_list_deliveries_params.rbs → credit_retrieve_topup_status_params.rbs} +6 -12
  324. data/sig/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbs +45 -0
  325. data/sig/x_twitter_scraper/models/credit_topup_balance_params.rbs +11 -4
  326. data/sig/x_twitter_scraper/models/credit_topup_balance_response.rbs +6 -4
  327. data/sig/x_twitter_scraper/models/draw_export_params.rbs +2 -6
  328. data/sig/x_twitter_scraper/models/draw_list_params.rbs +5 -5
  329. data/sig/x_twitter_scraper/models/embedded_tweet.rbs +187 -0
  330. data/sig/x_twitter_scraper/models/error.rbs +341 -54
  331. data/sig/x_twitter_scraper/models/event.rbs +34 -2
  332. data/sig/x_twitter_scraper/models/event_detail.rbs +34 -2
  333. data/sig/x_twitter_scraper/models/event_list_params.rbs +5 -5
  334. data/sig/x_twitter_scraper/models/event_type.rbs +34 -4
  335. data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +269 -1
  336. data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +46 -12
  337. data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +2 -6
  338. data/sig/x_twitter_scraper/models/extraction_job.rbs +6 -0
  339. data/sig/x_twitter_scraper/models/extraction_list_params.rbs +11 -5
  340. data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +5 -5
  341. data/sig/x_twitter_scraper/models/extraction_run_params.rbs +269 -1
  342. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +6 -0
  343. data/sig/x_twitter_scraper/models/guest_wallet_amount.rbs +15 -0
  344. data/sig/x_twitter_scraper/models/guest_wallet_create_params.rbs +32 -0
  345. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +125 -0
  346. data/sig/x_twitter_scraper/models/{api_key_list_params.rbs → guest_wallet_retrieve_status_params.rbs} +2 -2
  347. data/sig/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbs +163 -0
  348. data/sig/x_twitter_scraper/models/guest_wallet_topup_params.rbs +32 -0
  349. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +146 -0
  350. data/sig/x_twitter_scraper/models/monitor.rbs +5 -0
  351. data/sig/x_twitter_scraper/models/monitor_create_response.rbs +10 -0
  352. data/sig/x_twitter_scraper/models/monitors/keyword_create_params.rbs +33 -0
  353. data/sig/x_twitter_scraper/models/monitors/keyword_create_response.rbs +47 -0
  354. data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbs +25 -0
  355. data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbs +15 -0
  356. data/sig/x_twitter_scraper/models/monitors/keyword_list_params.rbs +19 -0
  357. data/sig/x_twitter_scraper/models/monitors/keyword_list_response.rbs +69 -0
  358. data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbs +25 -0
  359. data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbs +47 -0
  360. data/sig/x_twitter_scraper/models/monitors/keyword_update_params.rbs +44 -0
  361. data/sig/x_twitter_scraper/models/monitors/keyword_update_response.rbs +47 -0
  362. data/sig/x_twitter_scraper/models/paginated_tweets.rbs +4 -4
  363. data/sig/x_twitter_scraper/models/paginated_users.rbs +4 -4
  364. data/sig/x_twitter_scraper/models/radar_item.rbs +81 -8
  365. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbs +44 -10
  366. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbs +14 -4
  367. data/sig/x_twitter_scraper/models/search_tweet.rbs +205 -0
  368. data/sig/x_twitter_scraper/models/subscribe_create_params.rbs +28 -3
  369. data/sig/x_twitter_scraper/models/subscribe_create_response.rbs +10 -16
  370. data/sig/x_twitter_scraper/models/tweet_media.rbs +72 -0
  371. data/sig/x_twitter_scraper/models/user_profile.rbs +247 -0
  372. data/sig/x_twitter_scraper/models/webhook.rbs +27 -0
  373. data/sig/x_twitter_scraper/models/{api_key_revoke_params.rbs → webhook_resume_params.rbs} +2 -2
  374. data/sig/x_twitter_scraper/models/webhook_resume_response.rbs +26 -0
  375. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbs +30 -0
  376. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbs +68 -0
  377. data/sig/x_twitter_scraper/models/x/account_create_params.rbs +0 -7
  378. data/sig/x_twitter_scraper/models/x/account_create_response.rbs +37 -1
  379. data/sig/x_twitter_scraper/models/x/account_reauth_params.rbs +7 -1
  380. data/sig/x_twitter_scraper/models/x/account_reauth_response.rbs +51 -3
  381. data/sig/x_twitter_scraper/models/x/communities/join_create_response.rbs +17 -0
  382. data/sig/x_twitter_scraper/models/x/communities/join_delete_all_response.rbs +17 -0
  383. data/sig/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbs +7 -1
  384. data/sig/x_twitter_scraper/models/x/communities/tweet_list_params.rbs +34 -5
  385. data/sig/x_twitter_scraper/models/x/community_retrieve_info_response.rbs +66 -0
  386. data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +7 -1
  387. data/sig/x_twitter_scraper/models/x/community_retrieve_search_params.rbs +34 -5
  388. data/sig/x_twitter_scraper/models/x/dm_retrieve_history_params.rbs +5 -1
  389. data/sig/x_twitter_scraper/models/x/dm_retrieve_history_response.rbs +13 -10
  390. data/sig/x_twitter_scraper/models/x/dm_send_params.rbs +1 -8
  391. data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +7 -1
  392. data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +7 -1
  393. data/sig/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbs +7 -0
  394. data/sig/x_twitter_scraper/models/x/media_download_params.rbs +18 -1
  395. data/sig/x_twitter_scraper/models/x/media_upload_params.rbs +4 -14
  396. data/sig/x_twitter_scraper/models/x/media_upload_response.rbs +10 -3
  397. data/sig/x_twitter_scraper/models/x/profile_update_avatar_params.rbs +4 -4
  398. data/sig/x_twitter_scraper/models/x/profile_update_banner_params.rbs +4 -4
  399. data/sig/x_twitter_scraper/models/x/tweet_author.rbs +8 -31
  400. data/sig/x_twitter_scraper/models/x/tweet_create_params.rbs +13 -11
  401. data/sig/x_twitter_scraper/models/x/tweet_create_response.rbs +30 -3
  402. data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +99 -61
  403. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +7 -1
  404. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +242 -1
  405. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +247 -1
  406. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +7 -1
  407. data/sig/x_twitter_scraper/models/x/tweet_get_thread_params.rbs +7 -1
  408. data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +277 -1
  409. data/sig/x_twitter_scraper/models/x/user_remove_follower_params.rbs +30 -0
  410. data/sig/x_twitter_scraper/models/x/user_remove_follower_response.rbs +15 -0
  411. data/sig/x_twitter_scraper/models/x/user_retrieve_batch_response.rbs +57 -0
  412. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +19 -1
  413. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +7 -1
  414. data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +19 -1
  415. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +245 -1
  416. data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +245 -1
  417. data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +247 -1
  418. data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +283 -0
  419. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +242 -1
  420. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +7 -1
  421. data/sig/x_twitter_scraper/models/x/write_action_retrieve_params.rbs +25 -0
  422. data/sig/x_twitter_scraper/models/x/write_action_retrieve_response.rbs +177 -0
  423. data/sig/x_twitter_scraper/models/x/x_account.rbs +41 -3
  424. data/sig/x_twitter_scraper/models/x/x_account_detail.rbs +26 -7
  425. data/sig/x_twitter_scraper/models/x_get_article_response.rbs +193 -6
  426. data/sig/x_twitter_scraper/models/x_get_trends_params.rbs +20 -3
  427. data/sig/x_twitter_scraper/models.rbs +21 -21
  428. data/sig/x_twitter_scraper/resources/credits.rbs +12 -1
  429. data/sig/x_twitter_scraper/resources/draws.rbs +2 -2
  430. data/sig/x_twitter_scraper/resources/events.rbs +1 -1
  431. data/sig/x_twitter_scraper/resources/extractions.rbs +61 -3
  432. data/sig/x_twitter_scraper/resources/guest_wallets.rbs +25 -0
  433. data/sig/x_twitter_scraper/resources/monitors/keywords.rbs +36 -0
  434. data/sig/x_twitter_scraper/resources/monitors.rbs +2 -0
  435. data/sig/x_twitter_scraper/resources/radar.rbs +3 -2
  436. data/sig/x_twitter_scraper/resources/subscribe.rbs +1 -0
  437. data/sig/x_twitter_scraper/resources/webhooks.rbs +5 -0
  438. data/sig/x_twitter_scraper/resources/x/account_connection_challenges.rbs +15 -0
  439. data/sig/x_twitter_scraper/resources/x/accounts.rbs +1 -1
  440. data/sig/x_twitter_scraper/resources/x/communities/join.rbs +2 -2
  441. data/sig/x_twitter_scraper/resources/x/communities/tweets.rbs +4 -1
  442. data/sig/x_twitter_scraper/resources/x/communities.rbs +4 -1
  443. data/sig/x_twitter_scraper/resources/x/dm.rbs +1 -1
  444. data/sig/x_twitter_scraper/resources/x/lists.rbs +3 -0
  445. data/sig/x_twitter_scraper/resources/x/media.rbs +3 -2
  446. data/sig/x_twitter_scraper/resources/x/profile.rbs +2 -2
  447. data/sig/x_twitter_scraper/resources/x/tweets.rbs +88 -2
  448. data/sig/x_twitter_scraper/resources/x/users.rbs +151 -2
  449. data/sig/x_twitter_scraper/resources/x/write_actions.rbs +14 -0
  450. data/sig/x_twitter_scraper/resources/x.rbs +6 -0
  451. metadata +141 -84
  452. data/lib/x_twitter_scraper/models/api_key.rb +0 -47
  453. data/lib/x_twitter_scraper/models/api_key_create_params.rb +0 -20
  454. data/lib/x_twitter_scraper/models/api_key_create_response.rb +0 -40
  455. data/lib/x_twitter_scraper/models/api_key_list_params.rb +0 -14
  456. data/lib/x_twitter_scraper/models/api_key_list_response.rb +0 -16
  457. data/lib/x_twitter_scraper/models/api_key_revoke_response.rb +0 -16
  458. data/lib/x_twitter_scraper/models/integration.rb +0 -93
  459. data/lib/x_twitter_scraper/models/integration_create_params.rb +0 -58
  460. data/lib/x_twitter_scraper/models/integration_delete_params.rb +0 -20
  461. data/lib/x_twitter_scraper/models/integration_delete_response.rb +0 -16
  462. data/lib/x_twitter_scraper/models/integration_delivery.rb +0 -71
  463. data/lib/x_twitter_scraper/models/integration_list_deliveries_params.rb +0 -29
  464. data/lib/x_twitter_scraper/models/integration_list_deliveries_response.rb +0 -17
  465. data/lib/x_twitter_scraper/models/integration_list_response.rb +0 -16
  466. data/lib/x_twitter_scraper/models/integration_retrieve_params.rb +0 -20
  467. data/lib/x_twitter_scraper/models/integration_send_test_params.rb +0 -20
  468. data/lib/x_twitter_scraper/models/integration_send_test_response.rb +0 -16
  469. data/lib/x_twitter_scraper/models/integration_update_params.rb +0 -77
  470. data/lib/x_twitter_scraper/models/x/community_action_result.rb +0 -31
  471. data/lib/x_twitter_scraper/models/x/search_tweet.rb +0 -119
  472. data/lib/x_twitter_scraper/models/x/user_profile.rb +0 -80
  473. data/lib/x_twitter_scraper/resources/api_keys.rb +0 -77
  474. data/lib/x_twitter_scraper/resources/bot/platform_links.rb +0 -16
  475. data/lib/x_twitter_scraper/resources/bot.rb +0 -18
  476. data/lib/x_twitter_scraper/resources/integrations.rb +0 -182
  477. data/rbi/x_twitter_scraper/models/api_key.rbi +0 -69
  478. data/rbi/x_twitter_scraper/models/api_key_create_params.rbi +0 -41
  479. data/rbi/x_twitter_scraper/models/api_key_create_response.rbi +0 -56
  480. data/rbi/x_twitter_scraper/models/api_key_list_params.rbi +0 -32
  481. data/rbi/x_twitter_scraper/models/api_key_list_response.rbi +0 -30
  482. data/rbi/x_twitter_scraper/models/api_key_revoke_response.rbi +0 -26
  483. data/rbi/x_twitter_scraper/models/integration.rbi +0 -117
  484. data/rbi/x_twitter_scraper/models/integration_create_params.rbi +0 -95
  485. data/rbi/x_twitter_scraper/models/integration_delete_params.rbi +0 -38
  486. data/rbi/x_twitter_scraper/models/integration_delete_response.rbi +0 -26
  487. data/rbi/x_twitter_scraper/models/integration_delivery.rbi +0 -108
  488. data/rbi/x_twitter_scraper/models/integration_list_deliveries_response.rbi +0 -34
  489. data/rbi/x_twitter_scraper/models/integration_list_response.rbi +0 -34
  490. data/rbi/x_twitter_scraper/models/integration_send_test_params.rbi +0 -38
  491. data/rbi/x_twitter_scraper/models/integration_send_test_response.rbi +0 -26
  492. data/rbi/x_twitter_scraper/models/integration_update_params.rbi +0 -115
  493. data/rbi/x_twitter_scraper/models/x/community_action_result.rbi +0 -49
  494. data/rbi/x_twitter_scraper/models/x/search_tweet.rbi +0 -181
  495. data/rbi/x_twitter_scraper/models/x/user_profile.rbi +0 -125
  496. data/rbi/x_twitter_scraper/resources/api_keys.rbi +0 -46
  497. data/rbi/x_twitter_scraper/resources/bot/platform_links.rbi +0 -16
  498. data/rbi/x_twitter_scraper/resources/bot.rbi +0 -15
  499. data/rbi/x_twitter_scraper/resources/integrations.rbi +0 -133
  500. data/sig/x_twitter_scraper/models/api_key.rbs +0 -47
  501. data/sig/x_twitter_scraper/models/api_key_create_response.rbs +0 -40
  502. data/sig/x_twitter_scraper/models/api_key_list_response.rbs +0 -13
  503. data/sig/x_twitter_scraper/models/api_key_revoke_response.rbs +0 -13
  504. data/sig/x_twitter_scraper/models/integration.rbs +0 -78
  505. data/sig/x_twitter_scraper/models/integration_create_params.rbs +0 -51
  506. data/sig/x_twitter_scraper/models/integration_delete_params.rbs +0 -23
  507. data/sig/x_twitter_scraper/models/integration_delete_response.rbs +0 -13
  508. data/sig/x_twitter_scraper/models/integration_delivery.rbs +0 -75
  509. data/sig/x_twitter_scraper/models/integration_list_deliveries_response.rbs +0 -18
  510. data/sig/x_twitter_scraper/models/integration_list_params.rbs +0 -15
  511. data/sig/x_twitter_scraper/models/integration_list_response.rbs +0 -16
  512. data/sig/x_twitter_scraper/models/integration_retrieve_params.rbs +0 -23
  513. data/sig/x_twitter_scraper/models/integration_send_test_params.rbs +0 -23
  514. data/sig/x_twitter_scraper/models/integration_send_test_response.rbs +0 -13
  515. data/sig/x_twitter_scraper/models/integration_update_params.rbs +0 -77
  516. data/sig/x_twitter_scraper/models/x/community_action_result.rbs +0 -28
  517. data/sig/x_twitter_scraper/models/x/search_tweet.rbs +0 -121
  518. data/sig/x_twitter_scraper/models/x/user_profile.rbs +0 -88
  519. data/sig/x_twitter_scraper/resources/api_keys.rbs +0 -21
  520. data/sig/x_twitter_scraper/resources/bot/platform_links.rbs +0 -9
  521. data/sig/x_twitter_scraper/resources/bot.rbs +0 -9
  522. data/sig/x_twitter_scraper/resources/integrations.rbs +0 -52
@@ -18,6 +18,28 @@ module XTwitterScraper
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
+ # Words or quoted phrases where any one can match. Separate with spaces, commas,
22
+ # or lines.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :any_words
25
+
26
+ sig { params(any_words: String).void }
27
+ attr_writer :any_words
28
+
29
+ # Cashtags separated by spaces, commas, or lines.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :cashtags
32
+
33
+ sig { params(cashtags: String).void }
34
+ attr_writer :cashtags
35
+
36
+ # Conversation ID filter.
37
+ sig { returns(T.nilable(String)) }
38
+ attr_reader :conversation_id
39
+
40
+ sig { params(conversation_id: String).void }
41
+ attr_writer :conversation_id
42
+
21
43
  # Pagination cursor for tweet replies
22
44
  sig { returns(T.nilable(String)) }
23
45
  attr_reader :cursor
@@ -25,6 +47,186 @@ module XTwitterScraper
25
47
  sig { params(cursor: String).void }
26
48
  attr_writer :cursor
27
49
 
50
+ # Exact phrase to match.
51
+ sig { returns(T.nilable(String)) }
52
+ attr_reader :exact_phrase
53
+
54
+ sig { params(exact_phrase: String).void }
55
+ attr_writer :exact_phrase
56
+
57
+ # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
58
+ sig { returns(T.nilable(String)) }
59
+ attr_reader :exclude_words
60
+
61
+ sig { params(exclude_words: String).void }
62
+ attr_writer :exclude_words
63
+
64
+ # Filter by author username.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_reader :from_user
67
+
68
+ sig { params(from_user: String).void }
69
+ attr_writer :from_user
70
+
71
+ # Hashtags separated by spaces, commas, or lines.
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :hashtags
74
+
75
+ sig { params(hashtags: String).void }
76
+ attr_writer :hashtags
77
+
78
+ # Only replies to this tweet ID.
79
+ sig { returns(T.nilable(String)) }
80
+ attr_reader :in_reply_to_tweet_id
81
+
82
+ sig { params(in_reply_to_tweet_id: String).void }
83
+ attr_writer :in_reply_to_tweet_id
84
+
85
+ # Language code filter, e.g. en or tr.
86
+ sig { returns(T.nilable(String)) }
87
+ attr_reader :language
88
+
89
+ sig { params(language: String).void }
90
+ attr_writer :language
91
+
92
+ # Filter by media type.
93
+ sig do
94
+ returns(
95
+ T.nilable(
96
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::OrSymbol
97
+ )
98
+ )
99
+ end
100
+ attr_reader :media_type
101
+
102
+ sig do
103
+ params(
104
+ media_type:
105
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::OrSymbol
106
+ ).void
107
+ end
108
+ attr_writer :media_type
109
+
110
+ # Filter tweets mentioning a username.
111
+ sig { returns(T.nilable(String)) }
112
+ attr_reader :mentioning
113
+
114
+ sig { params(mentioning: String).void }
115
+ attr_writer :mentioning
116
+
117
+ # Minimum likes threshold.
118
+ sig { returns(T.nilable(Integer)) }
119
+ attr_reader :min_faves
120
+
121
+ sig { params(min_faves: Integer).void }
122
+ attr_writer :min_faves
123
+
124
+ # Minimum quote count threshold.
125
+ sig { returns(T.nilable(Integer)) }
126
+ attr_reader :min_quotes
127
+
128
+ sig { params(min_quotes: Integer).void }
129
+ attr_writer :min_quotes
130
+
131
+ # Minimum replies threshold.
132
+ sig { returns(T.nilable(Integer)) }
133
+ attr_reader :min_replies
134
+
135
+ sig { params(min_replies: Integer).void }
136
+ attr_writer :min_replies
137
+
138
+ # Minimum retweets threshold.
139
+ sig { returns(T.nilable(Integer)) }
140
+ attr_reader :min_retweets
141
+
142
+ sig { params(min_retweets: Integer).void }
143
+ attr_writer :min_retweets
144
+
145
+ # Maximum items requested from this page (1-100, default 20). The response can
146
+ # contain fewer items because the source returned fewer, filters removed items, or
147
+ # remaining credits cover fewer results. Keep requesting next_cursor while
148
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
149
+ # aliases remain accepted.
150
+ sig { returns(T.nilable(Integer)) }
151
+ attr_reader :page_size
152
+
153
+ sig { params(page_size: Integer).void }
154
+ attr_writer :page_size
155
+
156
+ # Quote mode.
157
+ sig do
158
+ returns(
159
+ T.nilable(
160
+ XTwitterScraper::X::TweetGetRepliesParams::Quotes::OrSymbol
161
+ )
162
+ )
163
+ end
164
+ attr_reader :quotes
165
+
166
+ sig do
167
+ params(
168
+ quotes: XTwitterScraper::X::TweetGetRepliesParams::Quotes::OrSymbol
169
+ ).void
170
+ end
171
+ attr_writer :quotes
172
+
173
+ # Only quotes of this tweet ID.
174
+ sig { returns(T.nilable(String)) }
175
+ attr_reader :quotes_of_tweet_id
176
+
177
+ sig { params(quotes_of_tweet_id: String).void }
178
+ attr_writer :quotes_of_tweet_id
179
+
180
+ # Reply mode.
181
+ sig do
182
+ returns(
183
+ T.nilable(
184
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::OrSymbol
185
+ )
186
+ )
187
+ end
188
+ attr_reader :replies
189
+
190
+ sig do
191
+ params(
192
+ replies:
193
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::OrSymbol
194
+ ).void
195
+ end
196
+ attr_writer :replies
197
+
198
+ # Retweet mode.
199
+ sig do
200
+ returns(
201
+ T.nilable(
202
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::OrSymbol
203
+ )
204
+ )
205
+ end
206
+ attr_reader :retweets
207
+
208
+ sig do
209
+ params(
210
+ retweets:
211
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::OrSymbol
212
+ ).void
213
+ end
214
+ attr_writer :retweets
215
+
216
+ # Only retweets of this tweet ID.
217
+ sig { returns(T.nilable(String)) }
218
+ attr_reader :retweets_of_tweet_id
219
+
220
+ sig { params(retweets_of_tweet_id: String).void }
221
+ attr_writer :retweets_of_tweet_id
222
+
223
+ # Start date in YYYY-MM-DD format.
224
+ sig { returns(T.nilable(Date)) }
225
+ attr_reader :since_date
226
+
227
+ sig { params(since_date: Date).void }
228
+ attr_writer :since_date
229
+
28
230
  # Unix timestamp - return replies posted after this time
29
231
  sig { returns(T.nilable(String)) }
30
232
  attr_reader :since_time
@@ -32,6 +234,20 @@ module XTwitterScraper
32
234
  sig { params(since_time: String).void }
33
235
  attr_writer :since_time
34
236
 
237
+ # Filter replies sent to a username.
238
+ sig { returns(T.nilable(String)) }
239
+ attr_reader :to_user
240
+
241
+ sig { params(to_user: String).void }
242
+ attr_writer :to_user
243
+
244
+ # End date in YYYY-MM-DD format.
245
+ sig { returns(T.nilable(Date)) }
246
+ attr_reader :until_date
247
+
248
+ sig { params(until_date: Date).void }
249
+ attr_writer :until_date
250
+
35
251
  # Unix timestamp - return replies posted before this time
36
252
  sig { returns(T.nilable(String)) }
37
253
  attr_reader :until_time
@@ -39,23 +255,123 @@ module XTwitterScraper
39
255
  sig { params(until_time: String).void }
40
256
  attr_writer :until_time
41
257
 
258
+ # URL substring or domain filter.
259
+ sig { returns(T.nilable(String)) }
260
+ attr_reader :url
261
+
262
+ sig { params(url: String).void }
263
+ attr_writer :url
264
+
265
+ # Only return tweets from verified authors.
266
+ sig { returns(T.nilable(T::Boolean)) }
267
+ attr_reader :verified_only
268
+
269
+ sig { params(verified_only: T::Boolean).void }
270
+ attr_writer :verified_only
271
+
42
272
  sig do
43
273
  params(
44
274
  id: String,
275
+ any_words: String,
276
+ cashtags: String,
277
+ conversation_id: String,
45
278
  cursor: String,
279
+ exact_phrase: String,
280
+ exclude_words: String,
281
+ from_user: String,
282
+ hashtags: String,
283
+ in_reply_to_tweet_id: String,
284
+ language: String,
285
+ media_type:
286
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::OrSymbol,
287
+ mentioning: String,
288
+ min_faves: Integer,
289
+ min_quotes: Integer,
290
+ min_replies: Integer,
291
+ min_retweets: Integer,
292
+ page_size: Integer,
293
+ quotes: XTwitterScraper::X::TweetGetRepliesParams::Quotes::OrSymbol,
294
+ quotes_of_tweet_id: String,
295
+ replies:
296
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::OrSymbol,
297
+ retweets:
298
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::OrSymbol,
299
+ retweets_of_tweet_id: String,
300
+ since_date: Date,
46
301
  since_time: String,
302
+ to_user: String,
303
+ until_date: Date,
47
304
  until_time: String,
305
+ url: String,
306
+ verified_only: T::Boolean,
48
307
  request_options: XTwitterScraper::RequestOptions::OrHash
49
308
  ).returns(T.attached_class)
50
309
  end
51
310
  def self.new(
52
311
  id:,
312
+ # Words or quoted phrases where any one can match. Separate with spaces, commas,
313
+ # or lines.
314
+ any_words: nil,
315
+ # Cashtags separated by spaces, commas, or lines.
316
+ cashtags: nil,
317
+ # Conversation ID filter.
318
+ conversation_id: nil,
53
319
  # Pagination cursor for tweet replies
54
320
  cursor: nil,
321
+ # Exact phrase to match.
322
+ exact_phrase: nil,
323
+ # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
324
+ exclude_words: nil,
325
+ # Filter by author username.
326
+ from_user: nil,
327
+ # Hashtags separated by spaces, commas, or lines.
328
+ hashtags: nil,
329
+ # Only replies to this tweet ID.
330
+ in_reply_to_tweet_id: nil,
331
+ # Language code filter, e.g. en or tr.
332
+ language: nil,
333
+ # Filter by media type.
334
+ media_type: nil,
335
+ # Filter tweets mentioning a username.
336
+ mentioning: nil,
337
+ # Minimum likes threshold.
338
+ min_faves: nil,
339
+ # Minimum quote count threshold.
340
+ min_quotes: nil,
341
+ # Minimum replies threshold.
342
+ min_replies: nil,
343
+ # Minimum retweets threshold.
344
+ min_retweets: nil,
345
+ # Maximum items requested from this page (1-100, default 20). The response can
346
+ # contain fewer items because the source returned fewer, filters removed items, or
347
+ # remaining credits cover fewer results. Keep requesting next_cursor while
348
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
349
+ # aliases remain accepted.
350
+ page_size: nil,
351
+ # Quote mode.
352
+ quotes: nil,
353
+ # Only quotes of this tweet ID.
354
+ quotes_of_tweet_id: nil,
355
+ # Reply mode.
356
+ replies: nil,
357
+ # Retweet mode.
358
+ retweets: nil,
359
+ # Only retweets of this tweet ID.
360
+ retweets_of_tweet_id: nil,
361
+ # Start date in YYYY-MM-DD format.
362
+ since_date: nil,
55
363
  # Unix timestamp - return replies posted after this time
56
364
  since_time: nil,
365
+ # Filter replies sent to a username.
366
+ to_user: nil,
367
+ # End date in YYYY-MM-DD format.
368
+ until_date: nil,
57
369
  # Unix timestamp - return replies posted before this time
58
370
  until_time: nil,
371
+ # URL substring or domain filter.
372
+ url: nil,
373
+ # Only return tweets from verified authors.
374
+ verified_only: nil,
59
375
  request_options: {}
60
376
  )
61
377
  end
@@ -64,15 +380,211 @@ module XTwitterScraper
64
380
  override.returns(
65
381
  {
66
382
  id: String,
383
+ any_words: String,
384
+ cashtags: String,
385
+ conversation_id: String,
67
386
  cursor: String,
387
+ exact_phrase: String,
388
+ exclude_words: String,
389
+ from_user: String,
390
+ hashtags: String,
391
+ in_reply_to_tweet_id: String,
392
+ language: String,
393
+ media_type:
394
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::OrSymbol,
395
+ mentioning: String,
396
+ min_faves: Integer,
397
+ min_quotes: Integer,
398
+ min_replies: Integer,
399
+ min_retweets: Integer,
400
+ page_size: Integer,
401
+ quotes:
402
+ XTwitterScraper::X::TweetGetRepliesParams::Quotes::OrSymbol,
403
+ quotes_of_tweet_id: String,
404
+ replies:
405
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::OrSymbol,
406
+ retweets:
407
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::OrSymbol,
408
+ retweets_of_tweet_id: String,
409
+ since_date: Date,
68
410
  since_time: String,
411
+ to_user: String,
412
+ until_date: Date,
69
413
  until_time: String,
414
+ url: String,
415
+ verified_only: T::Boolean,
70
416
  request_options: XTwitterScraper::RequestOptions
71
417
  }
72
418
  )
73
419
  end
74
420
  def to_hash
75
421
  end
422
+
423
+ # Filter by media type.
424
+ module MediaType
425
+ extend XTwitterScraper::Internal::Type::Enum
426
+
427
+ TaggedSymbol =
428
+ T.type_alias do
429
+ T.all(
430
+ Symbol,
431
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType
432
+ )
433
+ end
434
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
435
+
436
+ IMAGES =
437
+ T.let(
438
+ :images,
439
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::TaggedSymbol
440
+ )
441
+ VIDEOS =
442
+ T.let(
443
+ :videos,
444
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::TaggedSymbol
445
+ )
446
+ GIFS =
447
+ T.let(
448
+ :gifs,
449
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::TaggedSymbol
450
+ )
451
+ MEDIA =
452
+ T.let(
453
+ :media,
454
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::TaggedSymbol
455
+ )
456
+ LINKS =
457
+ T.let(
458
+ :links,
459
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::TaggedSymbol
460
+ )
461
+ NONE =
462
+ T.let(
463
+ :none,
464
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::TaggedSymbol
465
+ )
466
+
467
+ sig do
468
+ override.returns(
469
+ T::Array[
470
+ XTwitterScraper::X::TweetGetRepliesParams::MediaType::TaggedSymbol
471
+ ]
472
+ )
473
+ end
474
+ def self.values
475
+ end
476
+ end
477
+
478
+ # Quote mode.
479
+ module Quotes
480
+ extend XTwitterScraper::Internal::Type::Enum
481
+
482
+ TaggedSymbol =
483
+ T.type_alias do
484
+ T.all(Symbol, XTwitterScraper::X::TweetGetRepliesParams::Quotes)
485
+ end
486
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
487
+
488
+ INCLUDE =
489
+ T.let(
490
+ :include,
491
+ XTwitterScraper::X::TweetGetRepliesParams::Quotes::TaggedSymbol
492
+ )
493
+ EXCLUDE =
494
+ T.let(
495
+ :exclude,
496
+ XTwitterScraper::X::TweetGetRepliesParams::Quotes::TaggedSymbol
497
+ )
498
+ ONLY =
499
+ T.let(
500
+ :only,
501
+ XTwitterScraper::X::TweetGetRepliesParams::Quotes::TaggedSymbol
502
+ )
503
+
504
+ sig do
505
+ override.returns(
506
+ T::Array[
507
+ XTwitterScraper::X::TweetGetRepliesParams::Quotes::TaggedSymbol
508
+ ]
509
+ )
510
+ end
511
+ def self.values
512
+ end
513
+ end
514
+
515
+ # Reply mode.
516
+ module Replies
517
+ extend XTwitterScraper::Internal::Type::Enum
518
+
519
+ TaggedSymbol =
520
+ T.type_alias do
521
+ T.all(Symbol, XTwitterScraper::X::TweetGetRepliesParams::Replies)
522
+ end
523
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
524
+
525
+ INCLUDE =
526
+ T.let(
527
+ :include,
528
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::TaggedSymbol
529
+ )
530
+ EXCLUDE =
531
+ T.let(
532
+ :exclude,
533
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::TaggedSymbol
534
+ )
535
+ ONLY =
536
+ T.let(
537
+ :only,
538
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::TaggedSymbol
539
+ )
540
+
541
+ sig do
542
+ override.returns(
543
+ T::Array[
544
+ XTwitterScraper::X::TweetGetRepliesParams::Replies::TaggedSymbol
545
+ ]
546
+ )
547
+ end
548
+ def self.values
549
+ end
550
+ end
551
+
552
+ # Retweet mode.
553
+ module Retweets
554
+ extend XTwitterScraper::Internal::Type::Enum
555
+
556
+ TaggedSymbol =
557
+ T.type_alias do
558
+ T.all(Symbol, XTwitterScraper::X::TweetGetRepliesParams::Retweets)
559
+ end
560
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
561
+
562
+ INCLUDE =
563
+ T.let(
564
+ :include,
565
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::TaggedSymbol
566
+ )
567
+ EXCLUDE =
568
+ T.let(
569
+ :exclude,
570
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::TaggedSymbol
571
+ )
572
+ ONLY =
573
+ T.let(
574
+ :only,
575
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::TaggedSymbol
576
+ )
577
+
578
+ sig do
579
+ override.returns(
580
+ T::Array[
581
+ XTwitterScraper::X::TweetGetRepliesParams::Retweets::TaggedSymbol
582
+ ]
583
+ )
584
+ end
585
+ def self.values
586
+ end
587
+ end
76
588
  end
77
589
  end
78
590
  end
@@ -25,10 +25,21 @@ module XTwitterScraper
25
25
  sig { params(cursor: String).void }
26
26
  attr_writer :cursor
27
27
 
28
+ # Maximum user profiles requested from this page (20-200, default 200). The
29
+ # response can contain fewer profiles because the source returned fewer or
30
+ # remaining credits cover fewer results. Keep requesting next_cursor while
31
+ # has_next_page is true. The deprecated limit and count aliases remain accepted.
32
+ sig { returns(T.nilable(Integer)) }
33
+ attr_reader :page_size
34
+
35
+ sig { params(page_size: Integer).void }
36
+ attr_writer :page_size
37
+
28
38
  sig do
29
39
  params(
30
40
  id: String,
31
41
  cursor: String,
42
+ page_size: Integer,
32
43
  request_options: XTwitterScraper::RequestOptions::OrHash
33
44
  ).returns(T.attached_class)
34
45
  end
@@ -36,6 +47,11 @@ module XTwitterScraper
36
47
  id:,
37
48
  # Pagination cursor for retweeters
38
49
  cursor: nil,
50
+ # Maximum user profiles requested from this page (20-200, default 200). The
51
+ # response can contain fewer profiles because the source returned fewer or
52
+ # remaining credits cover fewer results. Keep requesting next_cursor while
53
+ # has_next_page is true. The deprecated limit and count aliases remain accepted.
54
+ page_size: nil,
39
55
  request_options: {}
40
56
  )
41
57
  end
@@ -45,6 +61,7 @@ module XTwitterScraper
45
61
  {
46
62
  id: String,
47
63
  cursor: String,
64
+ page_size: Integer,
48
65
  request_options: XTwitterScraper::RequestOptions
49
66
  }
50
67
  )
@@ -25,10 +25,22 @@ module XTwitterScraper
25
25
  sig { params(cursor: String).void }
26
26
  attr_writer :cursor
27
27
 
28
+ # Maximum items requested from this page (1-100, default 20). The response can
29
+ # contain fewer items because the source returned fewer, filters removed items, or
30
+ # remaining credits cover fewer results. Keep requesting next_cursor while
31
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
32
+ # aliases remain accepted.
33
+ sig { returns(T.nilable(Integer)) }
34
+ attr_reader :page_size
35
+
36
+ sig { params(page_size: Integer).void }
37
+ attr_writer :page_size
38
+
28
39
  sig do
29
40
  params(
30
41
  id: String,
31
42
  cursor: String,
43
+ page_size: Integer,
32
44
  request_options: XTwitterScraper::RequestOptions::OrHash
33
45
  ).returns(T.attached_class)
34
46
  end
@@ -36,6 +48,12 @@ module XTwitterScraper
36
48
  id:,
37
49
  # Pagination cursor for thread tweets
38
50
  cursor: nil,
51
+ # Maximum items requested from this page (1-100, default 20). The response can
52
+ # contain fewer items because the source returned fewer, filters removed items, or
53
+ # remaining credits cover fewer results. Keep requesting next_cursor while
54
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
55
+ # aliases remain accepted.
56
+ page_size: nil,
39
57
  request_options: {}
40
58
  )
41
59
  end
@@ -45,6 +63,7 @@ module XTwitterScraper
45
63
  {
46
64
  id: String,
47
65
  cursor: String,
66
+ page_size: Integer,
48
67
  request_options: XTwitterScraper::RequestOptions
49
68
  }
50
69
  )
@@ -12,14 +12,16 @@ module XTwitterScraper
12
12
  )
13
13
  end
14
14
 
15
- # Full tweet with text, engagement metrics, media, and metadata.
15
+ # Full tweet with text, engagement metrics, media, and metadata. A zero metric can
16
+ # mean X did not report the count.
16
17
  sig { returns(XTwitterScraper::X::TweetDetail) }
17
18
  attr_reader :tweet
18
19
 
19
20
  sig { params(tweet: XTwitterScraper::X::TweetDetail::OrHash).void }
20
21
  attr_writer :tweet
21
22
 
22
- # Author of a tweet with follower count and verification status.
23
+ # Tweet author profile. The lookup route always includes follower count and
24
+ # verification state. Other profile fields appear when available.
23
25
  sig { returns(T.nilable(XTwitterScraper::X::TweetAuthor)) }
24
26
  attr_reader :author
25
27
 
@@ -33,9 +35,11 @@ module XTwitterScraper
33
35
  ).returns(T.attached_class)
34
36
  end
35
37
  def self.new(
36
- # Full tweet with text, engagement metrics, media, and metadata.
38
+ # Full tweet with text, engagement metrics, media, and metadata. A zero metric can
39
+ # mean X did not report the count.
37
40
  tweet:,
38
- # Author of a tweet with follower count and verification status.
41
+ # Tweet author profile. The lookup route always includes follower count and
42
+ # verification state. Other profile fields appear when available.
39
43
  author: nil
40
44
  )
41
45
  end