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
@@ -14,28 +14,46 @@ module XTwitterScraper
14
14
  )
15
15
  end
16
16
 
17
- # Filter by category (general, tech, dev, etc.)
17
+ # Cursor for pagination (from prior response nextCursor).
18
18
  sig { returns(T.nilable(String)) }
19
- attr_reader :category
19
+ attr_reader :after
20
20
 
21
- sig { params(category: String).void }
22
- attr_writer :category
21
+ sig { params(after: String).void }
22
+ attr_writer :after
23
23
 
24
- # Number of items to return
25
- sig { returns(T.nilable(Integer)) }
26
- attr_reader :count
24
+ # Filter by category.
25
+ sig do
26
+ returns(
27
+ T.nilable(
28
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::OrSymbol
29
+ )
30
+ )
31
+ end
32
+ attr_reader :category
27
33
 
28
- sig { params(count: Integer).void }
29
- attr_writer :count
34
+ sig do
35
+ params(
36
+ category:
37
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::OrSymbol
38
+ ).void
39
+ end
40
+ attr_writer :category
30
41
 
31
- # Lookback window in hours
42
+ # Lookback window in hours (1-72, default 6).
32
43
  sig { returns(T.nilable(Integer)) }
33
44
  attr_reader :hours
34
45
 
35
46
  sig { params(hours: Integer).void }
36
47
  attr_writer :hours
37
48
 
38
- # Region filter (us, global, etc.)
49
+ # Number of items to return (1-100, default 50).
50
+ sig { returns(T.nilable(Integer)) }
51
+ attr_reader :limit
52
+
53
+ sig { params(limit: Integer).void }
54
+ attr_writer :limit
55
+
56
+ # Region filter. Use `global` or a region code such as `US`, `GB`, `TR`, or `ES`.
39
57
  sig { returns(T.nilable(String)) }
40
58
  attr_reader :region
41
59
 
@@ -63,9 +81,11 @@ module XTwitterScraper
63
81
 
64
82
  sig do
65
83
  params(
66
- category: String,
67
- count: Integer,
84
+ after: String,
85
+ category:
86
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::OrSymbol,
68
87
  hours: Integer,
88
+ limit: Integer,
69
89
  region: String,
70
90
  source:
71
91
  XTwitterScraper::RadarRetrieveTrendingTopicsParams::Source::OrSymbol,
@@ -73,13 +93,15 @@ module XTwitterScraper
73
93
  ).returns(T.attached_class)
74
94
  end
75
95
  def self.new(
76
- # Filter by category (general, tech, dev, etc.)
96
+ # Cursor for pagination (from prior response nextCursor).
97
+ after: nil,
98
+ # Filter by category.
77
99
  category: nil,
78
- # Number of items to return
79
- count: nil,
80
- # Lookback window in hours
100
+ # Lookback window in hours (1-72, default 6).
81
101
  hours: nil,
82
- # Region filter (us, global, etc.)
102
+ # Number of items to return (1-100, default 50).
103
+ limit: nil,
104
+ # Region filter. Use `global` or a region code such as `US`, `GB`, `TR`, or `ES`.
83
105
  region: nil,
84
106
  # Source filter. One of: github, google_trends, hacker_news, polymarket, reddit,
85
107
  # trustmrr, wikipedia
@@ -91,9 +113,11 @@ module XTwitterScraper
91
113
  sig do
92
114
  override.returns(
93
115
  {
94
- category: String,
95
- count: Integer,
116
+ after: String,
117
+ category:
118
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::OrSymbol,
96
119
  hours: Integer,
120
+ limit: Integer,
97
121
  region: String,
98
122
  source:
99
123
  XTwitterScraper::RadarRetrieveTrendingTopicsParams::Source::OrSymbol,
@@ -104,6 +128,71 @@ module XTwitterScraper
104
128
  def to_hash
105
129
  end
106
130
 
131
+ # Filter by category.
132
+ module Category
133
+ extend XTwitterScraper::Internal::Type::Enum
134
+
135
+ TaggedSymbol =
136
+ T.type_alias do
137
+ T.all(
138
+ Symbol,
139
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category
140
+ )
141
+ end
142
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
143
+
144
+ GENERAL =
145
+ T.let(
146
+ :general,
147
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
148
+ )
149
+ TECH =
150
+ T.let(
151
+ :tech,
152
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
153
+ )
154
+ DEV =
155
+ T.let(
156
+ :dev,
157
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
158
+ )
159
+ SCIENCE =
160
+ T.let(
161
+ :science,
162
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
163
+ )
164
+ CULTURE =
165
+ T.let(
166
+ :culture,
167
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
168
+ )
169
+ POLITICS =
170
+ T.let(
171
+ :politics,
172
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
173
+ )
174
+ BUSINESS =
175
+ T.let(
176
+ :business,
177
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
178
+ )
179
+ ENTERTAINMENT =
180
+ T.let(
181
+ :entertainment,
182
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
183
+ )
184
+
185
+ sig do
186
+ override.returns(
187
+ T::Array[
188
+ XTwitterScraper::RadarRetrieveTrendingTopicsParams::Category::TaggedSymbol
189
+ ]
190
+ )
191
+ end
192
+ def self.values
193
+ end
194
+ end
195
+
107
196
  # Source filter. One of: github, google_trends, hacker_news, polymarket, reddit,
108
197
  # trustmrr, wikipedia
109
198
  module Source
@@ -11,24 +11,41 @@ module XTwitterScraper
11
11
  )
12
12
  end
13
13
 
14
+ sig { returns(T::Boolean) }
15
+ attr_accessor :has_more
16
+
14
17
  sig { returns(T::Array[XTwitterScraper::RadarItem]) }
15
18
  attr_accessor :items
16
19
 
17
- sig { returns(Integer) }
18
- attr_accessor :total
20
+ # Opaque cursor for the next page (present only when hasMore is true).
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :next_cursor
23
+
24
+ sig { params(next_cursor: String).void }
25
+ attr_writer :next_cursor
19
26
 
20
27
  sig do
21
28
  params(
29
+ has_more: T::Boolean,
22
30
  items: T::Array[XTwitterScraper::RadarItem::OrHash],
23
- total: Integer
31
+ next_cursor: String
24
32
  ).returns(T.attached_class)
25
33
  end
26
- def self.new(items:, total:)
34
+ def self.new(
35
+ has_more:,
36
+ items:,
37
+ # Opaque cursor for the next page (present only when hasMore is true).
38
+ next_cursor: nil
39
+ )
27
40
  end
28
41
 
29
42
  sig do
30
43
  override.returns(
31
- { items: T::Array[XTwitterScraper::RadarItem], total: Integer }
44
+ {
45
+ has_more: T::Boolean,
46
+ items: T::Array[XTwitterScraper::RadarItem],
47
+ next_cursor: String
48
+ }
32
49
  )
33
50
  end
34
51
  def to_hash
@@ -0,0 +1,316 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ class SearchTweet < XTwitterScraper::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ XTwitterScraper::SearchTweet,
10
+ XTwitterScraper::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig { returns(Integer) }
18
+ attr_accessor :bookmark_count
19
+
20
+ sig { returns(Integer) }
21
+ attr_accessor :like_count
22
+
23
+ sig { returns(Integer) }
24
+ attr_accessor :quote_count
25
+
26
+ sig { returns(Integer) }
27
+ attr_accessor :reply_count
28
+
29
+ sig { returns(Integer) }
30
+ attr_accessor :retweet_count
31
+
32
+ sig { returns(String) }
33
+ attr_accessor :text
34
+
35
+ sig { returns(Integer) }
36
+ attr_accessor :view_count
37
+
38
+ # X user profile with bio, follower counts, and verification status.
39
+ sig { returns(T.nilable(XTwitterScraper::UserProfile)) }
40
+ attr_reader :author
41
+
42
+ sig { params(author: XTwitterScraper::UserProfile::OrHash).void }
43
+ attr_writer :author
44
+
45
+ # Content disclosure metadata shown by X when a tweet is labeled as paid
46
+ # partnership content or AI-generated media.
47
+ sig { returns(T.nilable(XTwitterScraper::ContentDisclosure)) }
48
+ attr_reader :content_disclosure
49
+
50
+ sig do
51
+ params(
52
+ content_disclosure: XTwitterScraper::ContentDisclosure::OrHash
53
+ ).void
54
+ end
55
+ attr_writer :content_disclosure
56
+
57
+ # Root tweet ID for the search result conversation
58
+ sig { returns(T.nilable(String)) }
59
+ attr_reader :conversation_id
60
+
61
+ sig { params(conversation_id: String).void }
62
+ attr_writer :conversation_id
63
+
64
+ sig { returns(T.nilable(String)) }
65
+ attr_reader :created_at
66
+
67
+ sig { params(created_at: String).void }
68
+ attr_writer :created_at
69
+
70
+ # Start and end offsets for rendered tweet text
71
+ sig { returns(T.nilable(T::Array[Integer])) }
72
+ attr_reader :display_text_range
73
+
74
+ sig { params(display_text_range: T::Array[Integer]).void }
75
+ attr_writer :display_text_range
76
+
77
+ # Parsed search-result entities including URLs, mentions, hashtags, and media
78
+ # markers
79
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
80
+ attr_reader :entities
81
+
82
+ sig { params(entities: T::Hash[Symbol, T.anything]).void }
83
+ attr_writer :entities
84
+
85
+ # Tweet ID being replied to
86
+ sig { returns(T.nilable(String)) }
87
+ attr_reader :in_reply_to_id
88
+
89
+ sig { params(in_reply_to_id: String).void }
90
+ attr_writer :in_reply_to_id
91
+
92
+ # User ID being replied to
93
+ sig { returns(T.nilable(String)) }
94
+ attr_reader :in_reply_to_user_id
95
+
96
+ sig { params(in_reply_to_user_id: String).void }
97
+ attr_writer :in_reply_to_user_id
98
+
99
+ # Username being replied to
100
+ sig { returns(T.nilable(String)) }
101
+ attr_reader :in_reply_to_username
102
+
103
+ sig { params(in_reply_to_username: String).void }
104
+ attr_writer :in_reply_to_username
105
+
106
+ # Whether the tweet has limited reply permissions
107
+ sig { returns(T.nilable(T::Boolean)) }
108
+ attr_reader :is_limited_reply
109
+
110
+ sig { params(is_limited_reply: T::Boolean).void }
111
+ attr_writer :is_limited_reply
112
+
113
+ # True for Note Tweets (long-form content, up to 25,000 characters)
114
+ sig { returns(T.nilable(T::Boolean)) }
115
+ attr_reader :is_note_tweet
116
+
117
+ sig { params(is_note_tweet: T::Boolean).void }
118
+ attr_writer :is_note_tweet
119
+
120
+ # True when this search result quotes another tweet
121
+ sig { returns(T.nilable(T::Boolean)) }
122
+ attr_reader :is_quote_status
123
+
124
+ sig { params(is_quote_status: T::Boolean).void }
125
+ attr_writer :is_quote_status
126
+
127
+ # True when this search result is a reply
128
+ sig { returns(T.nilable(T::Boolean)) }
129
+ attr_reader :is_reply
130
+
131
+ sig { params(is_reply: T::Boolean).void }
132
+ attr_writer :is_reply
133
+
134
+ # Tweet language code
135
+ sig { returns(T.nilable(String)) }
136
+ attr_reader :lang
137
+
138
+ sig { params(lang: String).void }
139
+ attr_writer :lang
140
+
141
+ # Search-result media attachments, omitted when no media is present
142
+ sig { returns(T.nilable(T::Array[XTwitterScraper::TweetMedia])) }
143
+ attr_reader :media
144
+
145
+ sig { params(media: T::Array[XTwitterScraper::TweetMedia::OrHash]).void }
146
+ attr_writer :media
147
+
148
+ # Quoted or retweeted tweet context. Every object includes id, text, and
149
+ # engagement metrics. A zero metric can mean X did not report the count. Author,
150
+ # media, and conversation fields appear when available.
151
+ sig { returns(T.nilable(XTwitterScraper::EmbeddedTweet)) }
152
+ attr_reader :quoted_tweet
153
+
154
+ sig { params(quoted_tweet: XTwitterScraper::EmbeddedTweet::OrHash).void }
155
+ attr_writer :quoted_tweet
156
+
157
+ # Quoted or retweeted tweet context. Every object includes id, text, and
158
+ # engagement metrics. A zero metric can mean X did not report the count. Author,
159
+ # media, and conversation fields appear when available.
160
+ sig { returns(T.nilable(XTwitterScraper::EmbeddedTweet)) }
161
+ attr_reader :retweeted_tweet
162
+
163
+ sig do
164
+ params(retweeted_tweet: XTwitterScraper::EmbeddedTweet::OrHash).void
165
+ end
166
+ attr_writer :retweeted_tweet
167
+
168
+ # Client application used to post the tweet
169
+ sig { returns(T.nilable(String)) }
170
+ attr_reader :source
171
+
172
+ sig { params(source: String).void }
173
+ attr_writer :source
174
+
175
+ sig { returns(T.nilable(String)) }
176
+ attr_reader :type
177
+
178
+ sig { params(type: String).void }
179
+ attr_writer :type
180
+
181
+ # Tweet permalink URL
182
+ sig { returns(T.nilable(String)) }
183
+ attr_reader :url
184
+
185
+ sig { params(url: String).void }
186
+ attr_writer :url
187
+
188
+ # Tweet returned from search results with inline author info. A zero metric can
189
+ # mean X did not report the count.
190
+ sig do
191
+ params(
192
+ id: String,
193
+ bookmark_count: Integer,
194
+ like_count: Integer,
195
+ quote_count: Integer,
196
+ reply_count: Integer,
197
+ retweet_count: Integer,
198
+ text: String,
199
+ view_count: Integer,
200
+ author: XTwitterScraper::UserProfile::OrHash,
201
+ content_disclosure: XTwitterScraper::ContentDisclosure::OrHash,
202
+ conversation_id: String,
203
+ created_at: String,
204
+ display_text_range: T::Array[Integer],
205
+ entities: T::Hash[Symbol, T.anything],
206
+ in_reply_to_id: String,
207
+ in_reply_to_user_id: String,
208
+ in_reply_to_username: String,
209
+ is_limited_reply: T::Boolean,
210
+ is_note_tweet: T::Boolean,
211
+ is_quote_status: T::Boolean,
212
+ is_reply: T::Boolean,
213
+ lang: String,
214
+ media: T::Array[XTwitterScraper::TweetMedia::OrHash],
215
+ quoted_tweet: XTwitterScraper::EmbeddedTweet::OrHash,
216
+ retweeted_tweet: XTwitterScraper::EmbeddedTweet::OrHash,
217
+ source: String,
218
+ type: String,
219
+ url: String
220
+ ).returns(T.attached_class)
221
+ end
222
+ def self.new(
223
+ id:,
224
+ bookmark_count:,
225
+ like_count:,
226
+ quote_count:,
227
+ reply_count:,
228
+ retweet_count:,
229
+ text:,
230
+ view_count:,
231
+ # X user profile with bio, follower counts, and verification status.
232
+ author: nil,
233
+ # Content disclosure metadata shown by X when a tweet is labeled as paid
234
+ # partnership content or AI-generated media.
235
+ content_disclosure: nil,
236
+ # Root tweet ID for the search result conversation
237
+ conversation_id: nil,
238
+ created_at: nil,
239
+ # Start and end offsets for rendered tweet text
240
+ display_text_range: nil,
241
+ # Parsed search-result entities including URLs, mentions, hashtags, and media
242
+ # markers
243
+ entities: nil,
244
+ # Tweet ID being replied to
245
+ in_reply_to_id: nil,
246
+ # User ID being replied to
247
+ in_reply_to_user_id: nil,
248
+ # Username being replied to
249
+ in_reply_to_username: nil,
250
+ # Whether the tweet has limited reply permissions
251
+ is_limited_reply: nil,
252
+ # True for Note Tweets (long-form content, up to 25,000 characters)
253
+ is_note_tweet: nil,
254
+ # True when this search result quotes another tweet
255
+ is_quote_status: nil,
256
+ # True when this search result is a reply
257
+ is_reply: nil,
258
+ # Tweet language code
259
+ lang: nil,
260
+ # Search-result media attachments, omitted when no media is present
261
+ media: nil,
262
+ # Quoted or retweeted tweet context. Every object includes id, text, and
263
+ # engagement metrics. A zero metric can mean X did not report the count. Author,
264
+ # media, and conversation fields appear when available.
265
+ quoted_tweet: nil,
266
+ # Quoted or retweeted tweet context. Every object includes id, text, and
267
+ # engagement metrics. A zero metric can mean X did not report the count. Author,
268
+ # media, and conversation fields appear when available.
269
+ retweeted_tweet: nil,
270
+ # Client application used to post the tweet
271
+ source: nil,
272
+ type: nil,
273
+ # Tweet permalink URL
274
+ url: nil
275
+ )
276
+ end
277
+
278
+ sig do
279
+ override.returns(
280
+ {
281
+ id: String,
282
+ bookmark_count: Integer,
283
+ like_count: Integer,
284
+ quote_count: Integer,
285
+ reply_count: Integer,
286
+ retweet_count: Integer,
287
+ text: String,
288
+ view_count: Integer,
289
+ author: XTwitterScraper::UserProfile,
290
+ content_disclosure: XTwitterScraper::ContentDisclosure,
291
+ conversation_id: String,
292
+ created_at: String,
293
+ display_text_range: T::Array[Integer],
294
+ entities: T::Hash[Symbol, T.anything],
295
+ in_reply_to_id: String,
296
+ in_reply_to_user_id: String,
297
+ in_reply_to_username: String,
298
+ is_limited_reply: T::Boolean,
299
+ is_note_tweet: T::Boolean,
300
+ is_quote_status: T::Boolean,
301
+ is_reply: T::Boolean,
302
+ lang: String,
303
+ media: T::Array[XTwitterScraper::TweetMedia],
304
+ quoted_tweet: XTwitterScraper::EmbeddedTweet,
305
+ retweeted_tweet: XTwitterScraper::EmbeddedTweet,
306
+ source: String,
307
+ type: String,
308
+ url: String
309
+ }
310
+ )
311
+ end
312
+ def to_hash
313
+ end
314
+ end
315
+ end
316
+ end
@@ -14,19 +14,79 @@ module XTwitterScraper
14
14
  )
15
15
  end
16
16
 
17
+ # Subscription tier to pre-select.
18
+ sig do
19
+ returns(
20
+ T.nilable(XTwitterScraper::SubscribeCreateParams::Tier::OrSymbol)
21
+ )
22
+ end
23
+ attr_reader :tier
24
+
17
25
  sig do
18
26
  params(
27
+ tier: XTwitterScraper::SubscribeCreateParams::Tier::OrSymbol
28
+ ).void
29
+ end
30
+ attr_writer :tier
31
+
32
+ sig do
33
+ params(
34
+ tier: XTwitterScraper::SubscribeCreateParams::Tier::OrSymbol,
19
35
  request_options: XTwitterScraper::RequestOptions::OrHash
20
36
  ).returns(T.attached_class)
21
37
  end
22
- def self.new(request_options: {})
38
+ def self.new(
39
+ # Subscription tier to pre-select.
40
+ tier: nil,
41
+ request_options: {}
42
+ )
23
43
  end
24
44
 
25
45
  sig do
26
- override.returns({ request_options: XTwitterScraper::RequestOptions })
46
+ override.returns(
47
+ {
48
+ tier: XTwitterScraper::SubscribeCreateParams::Tier::OrSymbol,
49
+ request_options: XTwitterScraper::RequestOptions
50
+ }
51
+ )
27
52
  end
28
53
  def to_hash
29
54
  end
55
+
56
+ # Subscription tier to pre-select.
57
+ module Tier
58
+ extend XTwitterScraper::Internal::Type::Enum
59
+
60
+ TaggedSymbol =
61
+ T.type_alias do
62
+ T.all(Symbol, XTwitterScraper::SubscribeCreateParams::Tier)
63
+ end
64
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
65
+
66
+ STARTER =
67
+ T.let(
68
+ :starter,
69
+ XTwitterScraper::SubscribeCreateParams::Tier::TaggedSymbol
70
+ )
71
+ PRO =
72
+ T.let(
73
+ :pro,
74
+ XTwitterScraper::SubscribeCreateParams::Tier::TaggedSymbol
75
+ )
76
+ BUSINESS =
77
+ T.let(
78
+ :business,
79
+ XTwitterScraper::SubscribeCreateParams::Tier::TaggedSymbol
80
+ )
81
+
82
+ sig do
83
+ override.returns(
84
+ T::Array[XTwitterScraper::SubscribeCreateParams::Tier::TaggedSymbol]
85
+ )
86
+ end
87
+ def self.values
88
+ end
89
+ end
30
90
  end
31
91
  end
32
92
  end
@@ -12,49 +12,36 @@ module XTwitterScraper
12
12
  end
13
13
 
14
14
  sig { returns(String) }
15
- attr_accessor :url
16
-
17
- sig { returns(T.nilable(String)) }
18
- attr_reader :message
19
-
20
- sig { params(message: String).void }
21
- attr_writer :message
15
+ attr_accessor :message
22
16
 
23
17
  sig do
24
18
  returns(
25
- T.nilable(
26
- XTwitterScraper::Models::SubscribeCreateResponse::Status::TaggedSymbol
27
- )
19
+ XTwitterScraper::Models::SubscribeCreateResponse::Status::TaggedSymbol
28
20
  )
29
21
  end
30
- attr_reader :status
22
+ attr_accessor :status
31
23
 
32
- sig do
33
- params(
34
- status:
35
- XTwitterScraper::Models::SubscribeCreateResponse::Status::OrSymbol
36
- ).void
37
- end
38
- attr_writer :status
24
+ sig { returns(String) }
25
+ attr_accessor :url
39
26
 
40
27
  sig do
41
28
  params(
42
- url: String,
43
29
  message: String,
44
30
  status:
45
- XTwitterScraper::Models::SubscribeCreateResponse::Status::OrSymbol
31
+ XTwitterScraper::Models::SubscribeCreateResponse::Status::OrSymbol,
32
+ url: String
46
33
  ).returns(T.attached_class)
47
34
  end
48
- def self.new(url:, message: nil, status: nil)
35
+ def self.new(message:, status:, url:)
49
36
  end
50
37
 
51
38
  sig do
52
39
  override.returns(
53
40
  {
54
- url: String,
55
41
  message: String,
56
42
  status:
57
- XTwitterScraper::Models::SubscribeCreateResponse::Status::TaggedSymbol
43
+ XTwitterScraper::Models::SubscribeCreateResponse::Status::TaggedSymbol,
44
+ url: String
58
45
  }
59
46
  )
60
47
  end