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 user tweets
22
44
  sig { returns(T.nilable(String)) }
23
45
  attr_reader :cursor
@@ -25,6 +47,34 @@ 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
+
28
78
  # Include parent tweet for replies
29
79
  sig { returns(T.nilable(T::Boolean)) }
30
80
  attr_reader :include_parent_tweet
@@ -39,23 +89,291 @@ module XTwitterScraper
39
89
  sig { params(include_replies: T::Boolean).void }
40
90
  attr_writer :include_replies
41
91
 
92
+ # Only replies to this tweet ID.
93
+ sig { returns(T.nilable(String)) }
94
+ attr_reader :in_reply_to_tweet_id
95
+
96
+ sig { params(in_reply_to_tweet_id: String).void }
97
+ attr_writer :in_reply_to_tweet_id
98
+
99
+ # Language code filter, e.g. en or tr.
100
+ sig { returns(T.nilable(String)) }
101
+ attr_reader :language
102
+
103
+ sig { params(language: String).void }
104
+ attr_writer :language
105
+
106
+ # Filter by media type.
107
+ sig do
108
+ returns(
109
+ T.nilable(
110
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::OrSymbol
111
+ )
112
+ )
113
+ end
114
+ attr_reader :media_type
115
+
116
+ sig do
117
+ params(
118
+ media_type:
119
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::OrSymbol
120
+ ).void
121
+ end
122
+ attr_writer :media_type
123
+
124
+ # Filter tweets mentioning a username.
125
+ sig { returns(T.nilable(String)) }
126
+ attr_reader :mentioning
127
+
128
+ sig { params(mentioning: String).void }
129
+ attr_writer :mentioning
130
+
131
+ # Minimum likes threshold.
132
+ sig { returns(T.nilable(Integer)) }
133
+ attr_reader :min_faves
134
+
135
+ sig { params(min_faves: Integer).void }
136
+ attr_writer :min_faves
137
+
138
+ # Minimum quote count threshold.
139
+ sig { returns(T.nilable(Integer)) }
140
+ attr_reader :min_quotes
141
+
142
+ sig { params(min_quotes: Integer).void }
143
+ attr_writer :min_quotes
144
+
145
+ # Minimum replies threshold.
146
+ sig { returns(T.nilable(Integer)) }
147
+ attr_reader :min_replies
148
+
149
+ sig { params(min_replies: Integer).void }
150
+ attr_writer :min_replies
151
+
152
+ # Minimum retweets threshold.
153
+ sig { returns(T.nilable(Integer)) }
154
+ attr_reader :min_retweets
155
+
156
+ sig { params(min_retweets: Integer).void }
157
+ attr_writer :min_retweets
158
+
159
+ # Maximum items requested from this page (1-100, default 20). The response can
160
+ # contain fewer items because the source returned fewer, filters removed items, or
161
+ # remaining credits cover fewer results. Keep requesting next_cursor while
162
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
163
+ # aliases remain accepted.
164
+ sig { returns(T.nilable(Integer)) }
165
+ attr_reader :page_size
166
+
167
+ sig { params(page_size: Integer).void }
168
+ attr_writer :page_size
169
+
170
+ # Quote mode.
171
+ sig do
172
+ returns(
173
+ T.nilable(
174
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::OrSymbol
175
+ )
176
+ )
177
+ end
178
+ attr_reader :quotes
179
+
180
+ sig do
181
+ params(
182
+ quotes:
183
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::OrSymbol
184
+ ).void
185
+ end
186
+ attr_writer :quotes
187
+
188
+ # Only quotes of this tweet ID.
189
+ sig { returns(T.nilable(String)) }
190
+ attr_reader :quotes_of_tweet_id
191
+
192
+ sig { params(quotes_of_tweet_id: String).void }
193
+ attr_writer :quotes_of_tweet_id
194
+
195
+ # Reply mode.
196
+ sig do
197
+ returns(
198
+ T.nilable(
199
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::OrSymbol
200
+ )
201
+ )
202
+ end
203
+ attr_reader :replies
204
+
205
+ sig do
206
+ params(
207
+ replies:
208
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::OrSymbol
209
+ ).void
210
+ end
211
+ attr_writer :replies
212
+
213
+ # Retweet mode.
214
+ sig do
215
+ returns(
216
+ T.nilable(
217
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::OrSymbol
218
+ )
219
+ )
220
+ end
221
+ attr_reader :retweets
222
+
223
+ sig do
224
+ params(
225
+ retweets:
226
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::OrSymbol
227
+ ).void
228
+ end
229
+ attr_writer :retweets
230
+
231
+ # Only retweets of this tweet ID.
232
+ sig { returns(T.nilable(String)) }
233
+ attr_reader :retweets_of_tweet_id
234
+
235
+ sig { params(retweets_of_tweet_id: String).void }
236
+ attr_writer :retweets_of_tweet_id
237
+
238
+ # Start date in YYYY-MM-DD format.
239
+ sig { returns(T.nilable(Date)) }
240
+ attr_reader :since_date
241
+
242
+ sig { params(since_date: Date).void }
243
+ attr_writer :since_date
244
+
245
+ # Filter replies sent to a username.
246
+ sig { returns(T.nilable(String)) }
247
+ attr_reader :to_user
248
+
249
+ sig { params(to_user: String).void }
250
+ attr_writer :to_user
251
+
252
+ # End date in YYYY-MM-DD format.
253
+ sig { returns(T.nilable(Date)) }
254
+ attr_reader :until_date
255
+
256
+ sig { params(until_date: Date).void }
257
+ attr_writer :until_date
258
+
259
+ # URL substring or domain filter.
260
+ sig { returns(T.nilable(String)) }
261
+ attr_reader :url
262
+
263
+ sig { params(url: String).void }
264
+ attr_writer :url
265
+
266
+ # Only return tweets from verified authors.
267
+ sig { returns(T.nilable(T::Boolean)) }
268
+ attr_reader :verified_only
269
+
270
+ sig { params(verified_only: T::Boolean).void }
271
+ attr_writer :verified_only
272
+
42
273
  sig do
43
274
  params(
44
275
  id: String,
276
+ any_words: String,
277
+ cashtags: String,
278
+ conversation_id: String,
45
279
  cursor: String,
280
+ exact_phrase: String,
281
+ exclude_words: String,
282
+ from_user: String,
283
+ hashtags: String,
46
284
  include_parent_tweet: T::Boolean,
47
285
  include_replies: T::Boolean,
286
+ in_reply_to_tweet_id: String,
287
+ language: String,
288
+ media_type:
289
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::OrSymbol,
290
+ mentioning: String,
291
+ min_faves: Integer,
292
+ min_quotes: Integer,
293
+ min_replies: Integer,
294
+ min_retweets: Integer,
295
+ page_size: Integer,
296
+ quotes:
297
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::OrSymbol,
298
+ quotes_of_tweet_id: String,
299
+ replies:
300
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::OrSymbol,
301
+ retweets:
302
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::OrSymbol,
303
+ retweets_of_tweet_id: String,
304
+ since_date: Date,
305
+ to_user: String,
306
+ until_date: Date,
307
+ url: String,
308
+ verified_only: T::Boolean,
48
309
  request_options: XTwitterScraper::RequestOptions::OrHash
49
310
  ).returns(T.attached_class)
50
311
  end
51
312
  def self.new(
52
313
  id:,
314
+ # Words or quoted phrases where any one can match. Separate with spaces, commas,
315
+ # or lines.
316
+ any_words: nil,
317
+ # Cashtags separated by spaces, commas, or lines.
318
+ cashtags: nil,
319
+ # Conversation ID filter.
320
+ conversation_id: nil,
53
321
  # Pagination cursor for user tweets
54
322
  cursor: nil,
323
+ # Exact phrase to match.
324
+ exact_phrase: nil,
325
+ # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
326
+ exclude_words: nil,
327
+ # Filter by author username.
328
+ from_user: nil,
329
+ # Hashtags separated by spaces, commas, or lines.
330
+ hashtags: nil,
55
331
  # Include parent tweet for replies
56
332
  include_parent_tweet: nil,
57
333
  # Include reply tweets
58
334
  include_replies: nil,
335
+ # Only replies to this tweet ID.
336
+ in_reply_to_tweet_id: nil,
337
+ # Language code filter, e.g. en or tr.
338
+ language: nil,
339
+ # Filter by media type.
340
+ media_type: nil,
341
+ # Filter tweets mentioning a username.
342
+ mentioning: nil,
343
+ # Minimum likes threshold.
344
+ min_faves: nil,
345
+ # Minimum quote count threshold.
346
+ min_quotes: nil,
347
+ # Minimum replies threshold.
348
+ min_replies: nil,
349
+ # Minimum retweets threshold.
350
+ min_retweets: nil,
351
+ # Maximum items requested from this page (1-100, default 20). The response can
352
+ # contain fewer items because the source returned fewer, filters removed items, or
353
+ # remaining credits cover fewer results. Keep requesting next_cursor while
354
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
355
+ # aliases remain accepted.
356
+ page_size: nil,
357
+ # Quote mode.
358
+ quotes: nil,
359
+ # Only quotes of this tweet ID.
360
+ quotes_of_tweet_id: nil,
361
+ # Reply mode.
362
+ replies: nil,
363
+ # Retweet mode.
364
+ retweets: nil,
365
+ # Only retweets of this tweet ID.
366
+ retweets_of_tweet_id: nil,
367
+ # Start date in YYYY-MM-DD format.
368
+ since_date: nil,
369
+ # Filter replies sent to a username.
370
+ to_user: nil,
371
+ # End date in YYYY-MM-DD format.
372
+ until_date: nil,
373
+ # URL substring or domain filter.
374
+ url: nil,
375
+ # Only return tweets from verified authors.
376
+ verified_only: nil,
59
377
  request_options: {}
60
378
  )
61
379
  end
@@ -64,15 +382,220 @@ module XTwitterScraper
64
382
  override.returns(
65
383
  {
66
384
  id: String,
385
+ any_words: String,
386
+ cashtags: String,
387
+ conversation_id: String,
67
388
  cursor: String,
389
+ exact_phrase: String,
390
+ exclude_words: String,
391
+ from_user: String,
392
+ hashtags: String,
68
393
  include_parent_tweet: T::Boolean,
69
394
  include_replies: T::Boolean,
395
+ in_reply_to_tweet_id: String,
396
+ language: String,
397
+ media_type:
398
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::OrSymbol,
399
+ mentioning: String,
400
+ min_faves: Integer,
401
+ min_quotes: Integer,
402
+ min_replies: Integer,
403
+ min_retweets: Integer,
404
+ page_size: Integer,
405
+ quotes:
406
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::OrSymbol,
407
+ quotes_of_tweet_id: String,
408
+ replies:
409
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::OrSymbol,
410
+ retweets:
411
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::OrSymbol,
412
+ retweets_of_tweet_id: String,
413
+ since_date: Date,
414
+ to_user: String,
415
+ until_date: Date,
416
+ url: String,
417
+ verified_only: T::Boolean,
70
418
  request_options: XTwitterScraper::RequestOptions
71
419
  }
72
420
  )
73
421
  end
74
422
  def to_hash
75
423
  end
424
+
425
+ # Filter by media type.
426
+ module MediaType
427
+ extend XTwitterScraper::Internal::Type::Enum
428
+
429
+ TaggedSymbol =
430
+ T.type_alias do
431
+ T.all(
432
+ Symbol,
433
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType
434
+ )
435
+ end
436
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
437
+
438
+ IMAGES =
439
+ T.let(
440
+ :images,
441
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::TaggedSymbol
442
+ )
443
+ VIDEOS =
444
+ T.let(
445
+ :videos,
446
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::TaggedSymbol
447
+ )
448
+ GIFS =
449
+ T.let(
450
+ :gifs,
451
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::TaggedSymbol
452
+ )
453
+ MEDIA =
454
+ T.let(
455
+ :media,
456
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::TaggedSymbol
457
+ )
458
+ LINKS =
459
+ T.let(
460
+ :links,
461
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::TaggedSymbol
462
+ )
463
+ NONE =
464
+ T.let(
465
+ :none,
466
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::TaggedSymbol
467
+ )
468
+
469
+ sig do
470
+ override.returns(
471
+ T::Array[
472
+ XTwitterScraper::X::UserRetrieveTweetsParams::MediaType::TaggedSymbol
473
+ ]
474
+ )
475
+ end
476
+ def self.values
477
+ end
478
+ end
479
+
480
+ # Quote mode.
481
+ module Quotes
482
+ extend XTwitterScraper::Internal::Type::Enum
483
+
484
+ TaggedSymbol =
485
+ T.type_alias do
486
+ T.all(
487
+ Symbol,
488
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes
489
+ )
490
+ end
491
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
492
+
493
+ INCLUDE =
494
+ T.let(
495
+ :include,
496
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::TaggedSymbol
497
+ )
498
+ EXCLUDE =
499
+ T.let(
500
+ :exclude,
501
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::TaggedSymbol
502
+ )
503
+ ONLY =
504
+ T.let(
505
+ :only,
506
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::TaggedSymbol
507
+ )
508
+
509
+ sig do
510
+ override.returns(
511
+ T::Array[
512
+ XTwitterScraper::X::UserRetrieveTweetsParams::Quotes::TaggedSymbol
513
+ ]
514
+ )
515
+ end
516
+ def self.values
517
+ end
518
+ end
519
+
520
+ # Reply mode.
521
+ module Replies
522
+ extend XTwitterScraper::Internal::Type::Enum
523
+
524
+ TaggedSymbol =
525
+ T.type_alias do
526
+ T.all(
527
+ Symbol,
528
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies
529
+ )
530
+ end
531
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
532
+
533
+ INCLUDE =
534
+ T.let(
535
+ :include,
536
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::TaggedSymbol
537
+ )
538
+ EXCLUDE =
539
+ T.let(
540
+ :exclude,
541
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::TaggedSymbol
542
+ )
543
+ ONLY =
544
+ T.let(
545
+ :only,
546
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::TaggedSymbol
547
+ )
548
+
549
+ sig do
550
+ override.returns(
551
+ T::Array[
552
+ XTwitterScraper::X::UserRetrieveTweetsParams::Replies::TaggedSymbol
553
+ ]
554
+ )
555
+ end
556
+ def self.values
557
+ end
558
+ end
559
+
560
+ # Retweet mode.
561
+ module Retweets
562
+ extend XTwitterScraper::Internal::Type::Enum
563
+
564
+ TaggedSymbol =
565
+ T.type_alias do
566
+ T.all(
567
+ Symbol,
568
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets
569
+ )
570
+ end
571
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
572
+
573
+ INCLUDE =
574
+ T.let(
575
+ :include,
576
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::TaggedSymbol
577
+ )
578
+ EXCLUDE =
579
+ T.let(
580
+ :exclude,
581
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::TaggedSymbol
582
+ )
583
+ ONLY =
584
+ T.let(
585
+ :only,
586
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::TaggedSymbol
587
+ )
588
+
589
+ sig do
590
+ override.returns(
591
+ T::Array[
592
+ XTwitterScraper::X::UserRetrieveTweetsParams::Retweets::TaggedSymbol
593
+ ]
594
+ )
595
+ end
596
+ def self.values
597
+ end
598
+ end
76
599
  end
77
600
  end
78
601
  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 verified followers
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
  )
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ module X
6
+ class WriteActionRetrieveParams < XTwitterScraper::Internal::Type::BaseModel
7
+ extend XTwitterScraper::Internal::Type::RequestParameters::Converter
8
+ include XTwitterScraper::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ XTwitterScraper::X::WriteActionRetrieveParams,
14
+ XTwitterScraper::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig do
22
+ params(
23
+ id: String,
24
+ request_options: XTwitterScraper::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { id: String, request_options: XTwitterScraper::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end