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
@@ -19,6 +19,42 @@ module XTwitterScraper
19
19
  sig { returns(String) }
20
20
  attr_accessor :q
21
21
 
22
+ # Raw advanced search query appended as-is.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :advanced_query
25
+
26
+ sig { params(advanced_query: String).void }
27
+ attr_writer :advanced_query
28
+
29
+ # Words or quoted phrases where any one can match. Separate with spaces, commas,
30
+ # or lines.
31
+ sig { returns(T.nilable(String)) }
32
+ attr_reader :any_words
33
+
34
+ sig { params(any_words: String).void }
35
+ attr_writer :any_words
36
+
37
+ # Geo bounding box, e.g. -74.1 40.6 -73.9 40.8.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :bounding_box
40
+
41
+ sig { params(bounding_box: String).void }
42
+ attr_writer :bounding_box
43
+
44
+ # Cashtags separated by spaces, commas, or lines.
45
+ sig { returns(T.nilable(String)) }
46
+ attr_reader :cashtags
47
+
48
+ sig { params(cashtags: String).void }
49
+ attr_writer :cashtags
50
+
51
+ # Conversation ID filter.
52
+ sig { returns(T.nilable(String)) }
53
+ attr_reader :conversation_id
54
+
55
+ sig { params(conversation_id: String).void }
56
+ attr_writer :conversation_id
57
+
22
58
  # Pagination cursor from previous response
23
59
  sig { returns(T.nilable(String)) }
24
60
  attr_reader :cursor
@@ -26,14 +62,140 @@ module XTwitterScraper
26
62
  sig { params(cursor: String).void }
27
63
  attr_writer :cursor
28
64
 
65
+ # Exact phrase to match.
66
+ sig { returns(T.nilable(String)) }
67
+ attr_reader :exact_phrase
68
+
69
+ sig { params(exact_phrase: String).void }
70
+ attr_writer :exact_phrase
71
+
72
+ # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
73
+ sig { returns(T.nilable(String)) }
74
+ attr_reader :exclude_words
75
+
76
+ sig { params(exclude_words: String).void }
77
+ attr_writer :exclude_words
78
+
79
+ # Filter by author username.
80
+ sig { returns(T.nilable(String)) }
81
+ attr_reader :from_user
82
+
83
+ sig { params(from_user: String).void }
84
+ attr_writer :from_user
85
+
86
+ # Hashtags separated by spaces, commas, or lines.
87
+ sig { returns(T.nilable(String)) }
88
+ attr_reader :hashtags
89
+
90
+ sig { params(hashtags: String).void }
91
+ attr_writer :hashtags
92
+
93
+ # Only replies to this tweet ID.
94
+ sig { returns(T.nilable(String)) }
95
+ attr_reader :in_reply_to_tweet_id
96
+
97
+ sig { params(in_reply_to_tweet_id: String).void }
98
+ attr_writer :in_reply_to_tweet_id
99
+
100
+ # Language code filter, e.g. en or tr.
101
+ sig { returns(T.nilable(String)) }
102
+ attr_reader :language
103
+
104
+ sig { params(language: String).void }
105
+ attr_writer :language
106
+
29
107
  # Max tweets to return (server paginates internally). Omit for single page (~20).
108
+ # This is an upper bound for paid authenticated calls: remaining credits can
109
+ # reduce the returned page size, and zero affordable results returns 402
110
+ # insufficient_credits.
30
111
  sig { returns(T.nilable(Integer)) }
31
112
  attr_reader :limit
32
113
 
33
114
  sig { params(limit: Integer).void }
34
115
  attr_writer :limit
35
116
 
36
- # Sort order Latest (chronological) or Top (engagement-ranked)
117
+ # Search within a list ID.
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :list_id
120
+
121
+ sig { params(list_id: String).void }
122
+ attr_writer :list_id
123
+
124
+ # Filter by media type.
125
+ sig do
126
+ returns(
127
+ T.nilable(
128
+ XTwitterScraper::X::TweetSearchParams::MediaType::OrSymbol
129
+ )
130
+ )
131
+ end
132
+ attr_reader :media_type
133
+
134
+ sig do
135
+ params(
136
+ media_type:
137
+ XTwitterScraper::X::TweetSearchParams::MediaType::OrSymbol
138
+ ).void
139
+ end
140
+ attr_writer :media_type
141
+
142
+ # Filter tweets mentioning a username.
143
+ sig { returns(T.nilable(String)) }
144
+ attr_reader :mentioning
145
+
146
+ sig { params(mentioning: String).void }
147
+ attr_writer :mentioning
148
+
149
+ # Minimum likes threshold.
150
+ sig { returns(T.nilable(Integer)) }
151
+ attr_reader :min_faves
152
+
153
+ sig { params(min_faves: Integer).void }
154
+ attr_writer :min_faves
155
+
156
+ # Minimum quote count threshold.
157
+ sig { returns(T.nilable(Integer)) }
158
+ attr_reader :min_quotes
159
+
160
+ sig { params(min_quotes: Integer).void }
161
+ attr_writer :min_quotes
162
+
163
+ # Minimum replies threshold.
164
+ sig { returns(T.nilable(Integer)) }
165
+ attr_reader :min_replies
166
+
167
+ sig { params(min_replies: Integer).void }
168
+ attr_writer :min_replies
169
+
170
+ # Minimum retweets threshold.
171
+ sig { returns(T.nilable(Integer)) }
172
+ attr_reader :min_retweets
173
+
174
+ sig { params(min_retweets: Integer).void }
175
+ attr_writer :min_retweets
176
+
177
+ # Search within a place ID.
178
+ sig { returns(T.nilable(String)) }
179
+ attr_reader :place
180
+
181
+ sig { params(place: String).void }
182
+ attr_writer :place
183
+
184
+ # Search within a country code.
185
+ sig { returns(T.nilable(String)) }
186
+ attr_reader :place_country
187
+
188
+ sig { params(place_country: String).void }
189
+ attr_writer :place_country
190
+
191
+ # Geo point radius, e.g. -73.99 40.73 25mi.
192
+ sig { returns(T.nilable(String)) }
193
+ attr_reader :point_radius
194
+
195
+ sig { params(point_radius: String).void }
196
+ attr_writer :point_radius
197
+
198
+ # Sort order - Latest (chronological) or Top (engagement-ranked)
37
199
  sig do
38
200
  returns(
39
201
  T.nilable(
@@ -51,45 +213,237 @@ module XTwitterScraper
51
213
  end
52
214
  attr_writer :query_type
53
215
 
54
- # ISO 8601 timestamp — only return tweets after this time
216
+ # Quote mode.
217
+ sig do
218
+ returns(
219
+ T.nilable(XTwitterScraper::X::TweetSearchParams::Quotes::OrSymbol)
220
+ )
221
+ end
222
+ attr_reader :quotes
223
+
224
+ sig do
225
+ params(
226
+ quotes: XTwitterScraper::X::TweetSearchParams::Quotes::OrSymbol
227
+ ).void
228
+ end
229
+ attr_writer :quotes
230
+
231
+ # Only quotes of this tweet ID.
232
+ sig { returns(T.nilable(String)) }
233
+ attr_reader :quotes_of_tweet_id
234
+
235
+ sig { params(quotes_of_tweet_id: String).void }
236
+ attr_writer :quotes_of_tweet_id
237
+
238
+ # Reply mode.
239
+ sig do
240
+ returns(
241
+ T.nilable(XTwitterScraper::X::TweetSearchParams::Replies::OrSymbol)
242
+ )
243
+ end
244
+ attr_reader :replies
245
+
246
+ sig do
247
+ params(
248
+ replies: XTwitterScraper::X::TweetSearchParams::Replies::OrSymbol
249
+ ).void
250
+ end
251
+ attr_writer :replies
252
+
253
+ # Retweet mode.
254
+ sig do
255
+ returns(
256
+ T.nilable(XTwitterScraper::X::TweetSearchParams::Retweets::OrSymbol)
257
+ )
258
+ end
259
+ attr_reader :retweets
260
+
261
+ sig do
262
+ params(
263
+ retweets: XTwitterScraper::X::TweetSearchParams::Retweets::OrSymbol
264
+ ).void
265
+ end
266
+ attr_writer :retweets
267
+
268
+ # Only retweets of this tweet ID.
269
+ sig { returns(T.nilable(String)) }
270
+ attr_reader :retweets_of_tweet_id
271
+
272
+ sig { params(retweets_of_tweet_id: String).void }
273
+ attr_writer :retweets_of_tweet_id
274
+
275
+ # Start date in YYYY-MM-DD format.
276
+ sig { returns(T.nilable(Date)) }
277
+ attr_reader :since_date
278
+
279
+ sig { params(since_date: Date).void }
280
+ attr_writer :since_date
281
+
282
+ # ISO 8601 timestamp - only return tweets after this time
55
283
  sig { returns(T.nilable(String)) }
56
284
  attr_reader :since_time
57
285
 
58
286
  sig { params(since_time: String).void }
59
287
  attr_writer :since_time
60
288
 
61
- # ISO 8601 timestamp only return tweets before this time
289
+ # Filter replies sent to a username.
290
+ sig { returns(T.nilable(String)) }
291
+ attr_reader :to_user
292
+
293
+ sig { params(to_user: String).void }
294
+ attr_writer :to_user
295
+
296
+ # End date in YYYY-MM-DD format.
297
+ sig { returns(T.nilable(Date)) }
298
+ attr_reader :until_date
299
+
300
+ sig { params(until_date: Date).void }
301
+ attr_writer :until_date
302
+
303
+ # ISO 8601 timestamp - only return tweets before this time
62
304
  sig { returns(T.nilable(String)) }
63
305
  attr_reader :until_time
64
306
 
65
307
  sig { params(until_time: String).void }
66
308
  attr_writer :until_time
67
309
 
310
+ # URL substring or domain filter.
311
+ sig { returns(T.nilable(String)) }
312
+ attr_reader :url
313
+
314
+ sig { params(url: String).void }
315
+ attr_writer :url
316
+
317
+ # Only return tweets from verified authors.
318
+ sig { returns(T.nilable(T::Boolean)) }
319
+ attr_reader :verified_only
320
+
321
+ sig { params(verified_only: T::Boolean).void }
322
+ attr_writer :verified_only
323
+
68
324
  sig do
69
325
  params(
70
326
  q: String,
327
+ advanced_query: String,
328
+ any_words: String,
329
+ bounding_box: String,
330
+ cashtags: String,
331
+ conversation_id: String,
71
332
  cursor: String,
333
+ exact_phrase: String,
334
+ exclude_words: String,
335
+ from_user: String,
336
+ hashtags: String,
337
+ in_reply_to_tweet_id: String,
338
+ language: String,
72
339
  limit: Integer,
340
+ list_id: String,
341
+ media_type:
342
+ XTwitterScraper::X::TweetSearchParams::MediaType::OrSymbol,
343
+ mentioning: String,
344
+ min_faves: Integer,
345
+ min_quotes: Integer,
346
+ min_replies: Integer,
347
+ min_retweets: Integer,
348
+ place: String,
349
+ place_country: String,
350
+ point_radius: String,
73
351
  query_type:
74
352
  XTwitterScraper::X::TweetSearchParams::QueryType::OrSymbol,
353
+ quotes: XTwitterScraper::X::TweetSearchParams::Quotes::OrSymbol,
354
+ quotes_of_tweet_id: String,
355
+ replies: XTwitterScraper::X::TweetSearchParams::Replies::OrSymbol,
356
+ retweets: XTwitterScraper::X::TweetSearchParams::Retweets::OrSymbol,
357
+ retweets_of_tweet_id: String,
358
+ since_date: Date,
75
359
  since_time: String,
360
+ to_user: String,
361
+ until_date: Date,
76
362
  until_time: String,
363
+ url: String,
364
+ verified_only: T::Boolean,
77
365
  request_options: XTwitterScraper::RequestOptions::OrHash
78
366
  ).returns(T.attached_class)
79
367
  end
80
368
  def self.new(
81
369
  # Search query (keywords,
82
370
  q:,
371
+ # Raw advanced search query appended as-is.
372
+ advanced_query: nil,
373
+ # Words or quoted phrases where any one can match. Separate with spaces, commas,
374
+ # or lines.
375
+ any_words: nil,
376
+ # Geo bounding box, e.g. -74.1 40.6 -73.9 40.8.
377
+ bounding_box: nil,
378
+ # Cashtags separated by spaces, commas, or lines.
379
+ cashtags: nil,
380
+ # Conversation ID filter.
381
+ conversation_id: nil,
83
382
  # Pagination cursor from previous response
84
383
  cursor: nil,
384
+ # Exact phrase to match.
385
+ exact_phrase: nil,
386
+ # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
387
+ exclude_words: nil,
388
+ # Filter by author username.
389
+ from_user: nil,
390
+ # Hashtags separated by spaces, commas, or lines.
391
+ hashtags: nil,
392
+ # Only replies to this tweet ID.
393
+ in_reply_to_tweet_id: nil,
394
+ # Language code filter, e.g. en or tr.
395
+ language: nil,
85
396
  # Max tweets to return (server paginates internally). Omit for single page (~20).
397
+ # This is an upper bound for paid authenticated calls: remaining credits can
398
+ # reduce the returned page size, and zero affordable results returns 402
399
+ # insufficient_credits.
86
400
  limit: nil,
87
- # Sort order Latest (chronological) or Top (engagement-ranked)
401
+ # Search within a list ID.
402
+ list_id: nil,
403
+ # Filter by media type.
404
+ media_type: nil,
405
+ # Filter tweets mentioning a username.
406
+ mentioning: nil,
407
+ # Minimum likes threshold.
408
+ min_faves: nil,
409
+ # Minimum quote count threshold.
410
+ min_quotes: nil,
411
+ # Minimum replies threshold.
412
+ min_replies: nil,
413
+ # Minimum retweets threshold.
414
+ min_retweets: nil,
415
+ # Search within a place ID.
416
+ place: nil,
417
+ # Search within a country code.
418
+ place_country: nil,
419
+ # Geo point radius, e.g. -73.99 40.73 25mi.
420
+ point_radius: nil,
421
+ # Sort order - Latest (chronological) or Top (engagement-ranked)
88
422
  query_type: nil,
89
- # ISO 8601 timestamp — only return tweets after this time
423
+ # Quote mode.
424
+ quotes: nil,
425
+ # Only quotes of this tweet ID.
426
+ quotes_of_tweet_id: nil,
427
+ # Reply mode.
428
+ replies: nil,
429
+ # Retweet mode.
430
+ retweets: nil,
431
+ # Only retweets of this tweet ID.
432
+ retweets_of_tweet_id: nil,
433
+ # Start date in YYYY-MM-DD format.
434
+ since_date: nil,
435
+ # ISO 8601 timestamp - only return tweets after this time
90
436
  since_time: nil,
91
- # ISO 8601 timestamp only return tweets before this time
437
+ # Filter replies sent to a username.
438
+ to_user: nil,
439
+ # End date in YYYY-MM-DD format.
440
+ until_date: nil,
441
+ # ISO 8601 timestamp - only return tweets before this time
92
442
  until_time: nil,
443
+ # URL substring or domain filter.
444
+ url: nil,
445
+ # Only return tweets from verified authors.
446
+ verified_only: nil,
93
447
  request_options: {}
94
448
  )
95
449
  end
@@ -98,12 +452,45 @@ module XTwitterScraper
98
452
  override.returns(
99
453
  {
100
454
  q: String,
455
+ advanced_query: String,
456
+ any_words: String,
457
+ bounding_box: String,
458
+ cashtags: String,
459
+ conversation_id: String,
101
460
  cursor: String,
461
+ exact_phrase: String,
462
+ exclude_words: String,
463
+ from_user: String,
464
+ hashtags: String,
465
+ in_reply_to_tweet_id: String,
466
+ language: String,
102
467
  limit: Integer,
468
+ list_id: String,
469
+ media_type:
470
+ XTwitterScraper::X::TweetSearchParams::MediaType::OrSymbol,
471
+ mentioning: String,
472
+ min_faves: Integer,
473
+ min_quotes: Integer,
474
+ min_replies: Integer,
475
+ min_retweets: Integer,
476
+ place: String,
477
+ place_country: String,
478
+ point_radius: String,
103
479
  query_type:
104
480
  XTwitterScraper::X::TweetSearchParams::QueryType::OrSymbol,
481
+ quotes: XTwitterScraper::X::TweetSearchParams::Quotes::OrSymbol,
482
+ quotes_of_tweet_id: String,
483
+ replies: XTwitterScraper::X::TweetSearchParams::Replies::OrSymbol,
484
+ retweets:
485
+ XTwitterScraper::X::TweetSearchParams::Retweets::OrSymbol,
486
+ retweets_of_tweet_id: String,
487
+ since_date: Date,
105
488
  since_time: String,
489
+ to_user: String,
490
+ until_date: Date,
106
491
  until_time: String,
492
+ url: String,
493
+ verified_only: T::Boolean,
107
494
  request_options: XTwitterScraper::RequestOptions
108
495
  }
109
496
  )
@@ -111,7 +498,59 @@ module XTwitterScraper
111
498
  def to_hash
112
499
  end
113
500
 
114
- # Sort order Latest (chronological) or Top (engagement-ranked)
501
+ # Filter by media type.
502
+ module MediaType
503
+ extend XTwitterScraper::Internal::Type::Enum
504
+
505
+ TaggedSymbol =
506
+ T.type_alias do
507
+ T.all(Symbol, XTwitterScraper::X::TweetSearchParams::MediaType)
508
+ end
509
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
510
+
511
+ IMAGES =
512
+ T.let(
513
+ :images,
514
+ XTwitterScraper::X::TweetSearchParams::MediaType::TaggedSymbol
515
+ )
516
+ VIDEOS =
517
+ T.let(
518
+ :videos,
519
+ XTwitterScraper::X::TweetSearchParams::MediaType::TaggedSymbol
520
+ )
521
+ GIFS =
522
+ T.let(
523
+ :gifs,
524
+ XTwitterScraper::X::TweetSearchParams::MediaType::TaggedSymbol
525
+ )
526
+ MEDIA =
527
+ T.let(
528
+ :media,
529
+ XTwitterScraper::X::TweetSearchParams::MediaType::TaggedSymbol
530
+ )
531
+ LINKS =
532
+ T.let(
533
+ :links,
534
+ XTwitterScraper::X::TweetSearchParams::MediaType::TaggedSymbol
535
+ )
536
+ NONE =
537
+ T.let(
538
+ :none,
539
+ XTwitterScraper::X::TweetSearchParams::MediaType::TaggedSymbol
540
+ )
541
+
542
+ sig do
543
+ override.returns(
544
+ T::Array[
545
+ XTwitterScraper::X::TweetSearchParams::MediaType::TaggedSymbol
546
+ ]
547
+ )
548
+ end
549
+ def self.values
550
+ end
551
+ end
552
+
553
+ # Sort order - Latest (chronological) or Top (engagement-ranked)
115
554
  module QueryType
116
555
  extend XTwitterScraper::Internal::Type::Enum
117
556
 
@@ -142,6 +581,117 @@ module XTwitterScraper
142
581
  def self.values
143
582
  end
144
583
  end
584
+
585
+ # Quote mode.
586
+ module Quotes
587
+ extend XTwitterScraper::Internal::Type::Enum
588
+
589
+ TaggedSymbol =
590
+ T.type_alias do
591
+ T.all(Symbol, XTwitterScraper::X::TweetSearchParams::Quotes)
592
+ end
593
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
594
+
595
+ INCLUDE =
596
+ T.let(
597
+ :include,
598
+ XTwitterScraper::X::TweetSearchParams::Quotes::TaggedSymbol
599
+ )
600
+ EXCLUDE =
601
+ T.let(
602
+ :exclude,
603
+ XTwitterScraper::X::TweetSearchParams::Quotes::TaggedSymbol
604
+ )
605
+ ONLY =
606
+ T.let(
607
+ :only,
608
+ XTwitterScraper::X::TweetSearchParams::Quotes::TaggedSymbol
609
+ )
610
+
611
+ sig do
612
+ override.returns(
613
+ T::Array[
614
+ XTwitterScraper::X::TweetSearchParams::Quotes::TaggedSymbol
615
+ ]
616
+ )
617
+ end
618
+ def self.values
619
+ end
620
+ end
621
+
622
+ # Reply mode.
623
+ module Replies
624
+ extend XTwitterScraper::Internal::Type::Enum
625
+
626
+ TaggedSymbol =
627
+ T.type_alias do
628
+ T.all(Symbol, XTwitterScraper::X::TweetSearchParams::Replies)
629
+ end
630
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
631
+
632
+ INCLUDE =
633
+ T.let(
634
+ :include,
635
+ XTwitterScraper::X::TweetSearchParams::Replies::TaggedSymbol
636
+ )
637
+ EXCLUDE =
638
+ T.let(
639
+ :exclude,
640
+ XTwitterScraper::X::TweetSearchParams::Replies::TaggedSymbol
641
+ )
642
+ ONLY =
643
+ T.let(
644
+ :only,
645
+ XTwitterScraper::X::TweetSearchParams::Replies::TaggedSymbol
646
+ )
647
+
648
+ sig do
649
+ override.returns(
650
+ T::Array[
651
+ XTwitterScraper::X::TweetSearchParams::Replies::TaggedSymbol
652
+ ]
653
+ )
654
+ end
655
+ def self.values
656
+ end
657
+ end
658
+
659
+ # Retweet mode.
660
+ module Retweets
661
+ extend XTwitterScraper::Internal::Type::Enum
662
+
663
+ TaggedSymbol =
664
+ T.type_alias do
665
+ T.all(Symbol, XTwitterScraper::X::TweetSearchParams::Retweets)
666
+ end
667
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
668
+
669
+ INCLUDE =
670
+ T.let(
671
+ :include,
672
+ XTwitterScraper::X::TweetSearchParams::Retweets::TaggedSymbol
673
+ )
674
+ EXCLUDE =
675
+ T.let(
676
+ :exclude,
677
+ XTwitterScraper::X::TweetSearchParams::Retweets::TaggedSymbol
678
+ )
679
+ ONLY =
680
+ T.let(
681
+ :only,
682
+ XTwitterScraper::X::TweetSearchParams::Retweets::TaggedSymbol
683
+ )
684
+
685
+ sig do
686
+ override.returns(
687
+ T::Array[
688
+ XTwitterScraper::X::TweetSearchParams::Retweets::TaggedSymbol
689
+ ]
690
+ )
691
+ end
692
+ def self.values
693
+ end
694
+ end
145
695
  end
146
696
  end
147
697
  end
@@ -0,0 +1,54 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ module X
6
+ class UserRemoveFollowerParams < 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::UserRemoveFollowerParams,
14
+ XTwitterScraper::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # X account identifier (@username or account ID)
22
+ sig { returns(String) }
23
+ attr_accessor :account
24
+
25
+ sig do
26
+ params(
27
+ id: String,
28
+ account: String,
29
+ request_options: XTwitterScraper::RequestOptions::OrHash
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ id:,
34
+ # X account identifier (@username or account ID)
35
+ account:,
36
+ request_options: {}
37
+ )
38
+ end
39
+
40
+ sig do
41
+ override.returns(
42
+ {
43
+ id: String,
44
+ account: String,
45
+ request_options: XTwitterScraper::RequestOptions
46
+ }
47
+ )
48
+ end
49
+ def to_hash
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end