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
@@ -21,23 +21,29 @@ module XTwitterScraper
21
21
  end
22
22
  attr_writer :article
23
23
 
24
- # Author of a tweet with follower count and verification status.
25
- sig { returns(T.nilable(XTwitterScraper::X::TweetAuthor)) }
24
+ # X Article author profile fields returned when available.
25
+ sig do
26
+ returns(T.nilable(XTwitterScraper::Models::XGetArticleResponse::Author))
27
+ end
26
28
  attr_reader :author
27
29
 
28
- sig { params(author: XTwitterScraper::X::TweetAuthor::OrHash).void }
30
+ sig do
31
+ params(
32
+ author: XTwitterScraper::Models::XGetArticleResponse::Author::OrHash
33
+ ).void
34
+ end
29
35
  attr_writer :author
30
36
 
31
37
  sig do
32
38
  params(
33
39
  article:
34
40
  XTwitterScraper::Models::XGetArticleResponse::Article::OrHash,
35
- author: XTwitterScraper::X::TweetAuthor::OrHash
41
+ author: XTwitterScraper::Models::XGetArticleResponse::Author::OrHash
36
42
  ).returns(T.attached_class)
37
43
  end
38
44
  def self.new(
39
45
  article:,
40
- # Author of a tweet with follower count and verification status.
46
+ # X Article author profile fields returned when available.
41
47
  author: nil
42
48
  )
43
49
  end
@@ -46,7 +52,7 @@ module XTwitterScraper
46
52
  override.returns(
47
53
  {
48
54
  article: XTwitterScraper::Models::XGetArticleResponse::Article,
49
- author: XTwitterScraper::X::TweetAuthor
55
+ author: XTwitterScraper::Models::XGetArticleResponse::Author
50
56
  }
51
57
  )
52
58
  end
@@ -62,6 +68,13 @@ module XTwitterScraper
62
68
  )
63
69
  end
64
70
 
71
+ # Plain text joined from all article blocks
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :body_text
74
+
75
+ sig { params(body_text: String).void }
76
+ attr_writer :body_text
77
+
65
78
  sig do
66
79
  returns(
67
80
  T.nilable(
@@ -133,6 +146,7 @@ module XTwitterScraper
133
146
 
134
147
  sig do
135
148
  params(
149
+ body_text: String,
136
150
  contents:
137
151
  T::Array[
138
152
  XTwitterScraper::Models::XGetArticleResponse::Article::Content::OrHash
@@ -148,6 +162,8 @@ module XTwitterScraper
148
162
  ).returns(T.attached_class)
149
163
  end
150
164
  def self.new(
165
+ # Plain text joined from all article blocks
166
+ body_text: nil,
151
167
  contents: nil,
152
168
  cover_image_url: nil,
153
169
  created_at: nil,
@@ -163,6 +179,7 @@ module XTwitterScraper
163
179
  sig do
164
180
  override.returns(
165
181
  {
182
+ body_text: String,
166
183
  contents:
167
184
  T::Array[
168
185
  XTwitterScraper::Models::XGetArticleResponse::Article::Content
@@ -196,21 +213,51 @@ module XTwitterScraper
196
213
  sig { params(height: Integer).void }
197
214
  attr_writer :height
198
215
 
216
+ # Inline text formatting ranges
217
+ sig do
218
+ returns(
219
+ T.nilable(
220
+ T::Array[
221
+ XTwitterScraper::Models::XGetArticleResponse::Article::Content::InlineStyleRange
222
+ ]
223
+ )
224
+ )
225
+ end
226
+ attr_reader :inline_style_ranges
227
+
228
+ sig do
229
+ params(
230
+ inline_style_ranges:
231
+ T::Array[
232
+ XTwitterScraper::Models::XGetArticleResponse::Article::Content::InlineStyleRange::OrHash
233
+ ]
234
+ ).void
235
+ end
236
+ attr_writer :inline_style_ranges
237
+
238
+ # Preview image URL for media blocks
239
+ sig { returns(T.nilable(String)) }
240
+ attr_reader :preview_url
241
+
242
+ sig { params(preview_url: String).void }
243
+ attr_writer :preview_url
244
+
199
245
  sig { returns(T.nilable(String)) }
200
246
  attr_reader :text
201
247
 
202
248
  sig { params(text: String).void }
203
249
  attr_writer :text
204
250
 
205
- # Block type: unstyled, header-one, header-two, header-three, unordered-list-item,
206
- # ordered-list-item, image, gif, divider
251
+ # Block type: paragraph, header-one, header-two, header-three, header-four,
252
+ # header-five, header-six, unordered-list-item, ordered-list-item, blockquote,
253
+ # code-block, media, divider
207
254
  sig { returns(T.nilable(String)) }
208
255
  attr_reader :type
209
256
 
210
257
  sig { params(type: String).void }
211
258
  attr_writer :type
212
259
 
213
- # Media URL for image/gif blocks
260
+ # Media URL for media blocks
214
261
  sig { returns(T.nilable(String)) }
215
262
  attr_reader :url
216
263
 
@@ -226,6 +273,11 @@ module XTwitterScraper
226
273
  sig do
227
274
  params(
228
275
  height: Integer,
276
+ inline_style_ranges:
277
+ T::Array[
278
+ XTwitterScraper::Models::XGetArticleResponse::Article::Content::InlineStyleRange::OrHash
279
+ ],
280
+ preview_url: String,
229
281
  text: String,
230
282
  type: String,
231
283
  url: String,
@@ -234,11 +286,16 @@ module XTwitterScraper
234
286
  end
235
287
  def self.new(
236
288
  height: nil,
289
+ # Inline text formatting ranges
290
+ inline_style_ranges: nil,
291
+ # Preview image URL for media blocks
292
+ preview_url: nil,
237
293
  text: nil,
238
- # Block type: unstyled, header-one, header-two, header-three, unordered-list-item,
239
- # ordered-list-item, image, gif, divider
294
+ # Block type: paragraph, header-one, header-two, header-three, header-four,
295
+ # header-five, header-six, unordered-list-item, ordered-list-item, blockquote,
296
+ # code-block, media, divider
240
297
  type: nil,
241
- # Media URL for image/gif blocks
298
+ # Media URL for media blocks
242
299
  url: nil,
243
300
  width: nil
244
301
  )
@@ -248,6 +305,11 @@ module XTwitterScraper
248
305
  override.returns(
249
306
  {
250
307
  height: Integer,
308
+ inline_style_ranges:
309
+ T::Array[
310
+ XTwitterScraper::Models::XGetArticleResponse::Article::Content::InlineStyleRange
311
+ ],
312
+ preview_url: String,
251
313
  text: String,
252
314
  type: String,
253
315
  url: String,
@@ -257,6 +319,240 @@ module XTwitterScraper
257
319
  end
258
320
  def to_hash
259
321
  end
322
+
323
+ class InlineStyleRange < XTwitterScraper::Internal::Type::BaseModel
324
+ OrHash =
325
+ T.type_alias do
326
+ T.any(
327
+ XTwitterScraper::Models::XGetArticleResponse::Article::Content::InlineStyleRange,
328
+ XTwitterScraper::Internal::AnyHash
329
+ )
330
+ end
331
+
332
+ sig { returns(T.nilable(Integer)) }
333
+ attr_reader :length
334
+
335
+ sig { params(length: Integer).void }
336
+ attr_writer :length
337
+
338
+ sig { returns(T.nilable(Integer)) }
339
+ attr_reader :offset
340
+
341
+ sig { params(offset: Integer).void }
342
+ attr_writer :offset
343
+
344
+ sig { returns(T.nilable(String)) }
345
+ attr_reader :style
346
+
347
+ sig { params(style: String).void }
348
+ attr_writer :style
349
+
350
+ sig do
351
+ params(length: Integer, offset: Integer, style: String).returns(
352
+ T.attached_class
353
+ )
354
+ end
355
+ def self.new(length: nil, offset: nil, style: nil)
356
+ end
357
+
358
+ sig do
359
+ override.returns(
360
+ { length: Integer, offset: Integer, style: String }
361
+ )
362
+ end
363
+ def to_hash
364
+ end
365
+ end
366
+ end
367
+ end
368
+
369
+ class Author < XTwitterScraper::Internal::Type::BaseModel
370
+ OrHash =
371
+ T.type_alias do
372
+ T.any(
373
+ XTwitterScraper::Models::XGetArticleResponse::Author,
374
+ XTwitterScraper::Internal::AnyHash
375
+ )
376
+ end
377
+
378
+ sig { returns(String) }
379
+ attr_accessor :id
380
+
381
+ sig { returns(String) }
382
+ attr_accessor :name
383
+
384
+ sig { returns(String) }
385
+ attr_accessor :username
386
+
387
+ sig { returns(T.nilable(T::Boolean)) }
388
+ attr_reader :can_dm
389
+
390
+ sig { params(can_dm: T::Boolean).void }
391
+ attr_writer :can_dm
392
+
393
+ sig { returns(T.nilable(String)) }
394
+ attr_reader :created_at
395
+
396
+ sig { params(created_at: String).void }
397
+ attr_writer :created_at
398
+
399
+ sig { returns(T.nilable(String)) }
400
+ attr_reader :description
401
+
402
+ sig { params(description: String).void }
403
+ attr_writer :description
404
+
405
+ sig { returns(T.nilable(Integer)) }
406
+ attr_reader :favourites_count
407
+
408
+ sig { params(favourites_count: Integer).void }
409
+ attr_writer :favourites_count
410
+
411
+ sig { returns(T.nilable(Integer)) }
412
+ attr_reader :followers_count
413
+
414
+ sig { params(followers_count: Integer).void }
415
+ attr_writer :followers_count
416
+
417
+ sig { returns(T.nilable(Integer)) }
418
+ attr_reader :following_count
419
+
420
+ sig { params(following_count: Integer).void }
421
+ attr_writer :following_count
422
+
423
+ sig { returns(T.nilable(T::Boolean)) }
424
+ attr_reader :is_blue_verified
425
+
426
+ sig { params(is_blue_verified: T::Boolean).void }
427
+ attr_writer :is_blue_verified
428
+
429
+ sig { returns(T.nilable(T::Boolean)) }
430
+ attr_reader :is_translator
431
+
432
+ sig { params(is_translator: T::Boolean).void }
433
+ attr_writer :is_translator
434
+
435
+ sig { returns(T.nilable(T::Boolean)) }
436
+ attr_reader :is_verified
437
+
438
+ sig { params(is_verified: T::Boolean).void }
439
+ attr_writer :is_verified
440
+
441
+ sig { returns(T.nilable(String)) }
442
+ attr_reader :location
443
+
444
+ sig { params(location: String).void }
445
+ attr_writer :location
446
+
447
+ sig { returns(T.nilable(Integer)) }
448
+ attr_reader :media_count
449
+
450
+ sig { params(media_count: Integer).void }
451
+ attr_writer :media_count
452
+
453
+ sig { returns(T.nilable(String)) }
454
+ attr_reader :profile_banner_url
455
+
456
+ sig { params(profile_banner_url: String).void }
457
+ attr_writer :profile_banner_url
458
+
459
+ sig { returns(T.nilable(String)) }
460
+ attr_reader :profile_picture
461
+
462
+ sig { params(profile_picture: String).void }
463
+ attr_writer :profile_picture
464
+
465
+ sig { returns(T.nilable(T::Boolean)) }
466
+ attr_reader :protected
467
+
468
+ sig { params(protected: T::Boolean).void }
469
+ attr_writer :protected
470
+
471
+ sig { returns(T.nilable(Integer)) }
472
+ attr_reader :statuses_count
473
+
474
+ sig { params(statuses_count: Integer).void }
475
+ attr_writer :statuses_count
476
+
477
+ sig { returns(T.nilable(String)) }
478
+ attr_reader :url
479
+
480
+ sig { params(url: String).void }
481
+ attr_writer :url
482
+
483
+ # X Article author profile fields returned when available.
484
+ sig do
485
+ params(
486
+ id: String,
487
+ name: String,
488
+ username: String,
489
+ can_dm: T::Boolean,
490
+ created_at: String,
491
+ description: String,
492
+ favourites_count: Integer,
493
+ followers_count: Integer,
494
+ following_count: Integer,
495
+ is_blue_verified: T::Boolean,
496
+ is_translator: T::Boolean,
497
+ is_verified: T::Boolean,
498
+ location: String,
499
+ media_count: Integer,
500
+ profile_banner_url: String,
501
+ profile_picture: String,
502
+ protected: T::Boolean,
503
+ statuses_count: Integer,
504
+ url: String
505
+ ).returns(T.attached_class)
506
+ end
507
+ def self.new(
508
+ id:,
509
+ name:,
510
+ username:,
511
+ can_dm: nil,
512
+ created_at: nil,
513
+ description: nil,
514
+ favourites_count: nil,
515
+ followers_count: nil,
516
+ following_count: nil,
517
+ is_blue_verified: nil,
518
+ is_translator: nil,
519
+ is_verified: nil,
520
+ location: nil,
521
+ media_count: nil,
522
+ profile_banner_url: nil,
523
+ profile_picture: nil,
524
+ protected: nil,
525
+ statuses_count: nil,
526
+ url: nil
527
+ )
528
+ end
529
+
530
+ sig do
531
+ override.returns(
532
+ {
533
+ id: String,
534
+ name: String,
535
+ username: String,
536
+ can_dm: T::Boolean,
537
+ created_at: String,
538
+ description: String,
539
+ favourites_count: Integer,
540
+ followers_count: Integer,
541
+ following_count: Integer,
542
+ is_blue_verified: T::Boolean,
543
+ is_translator: T::Boolean,
544
+ is_verified: T::Boolean,
545
+ location: String,
546
+ media_count: Integer,
547
+ profile_banner_url: String,
548
+ profile_picture: String,
549
+ protected: T::Boolean,
550
+ statuses_count: Integer,
551
+ url: String
552
+ }
553
+ )
554
+ end
555
+ def to_hash
260
556
  end
261
557
  end
262
558
  end
@@ -21,7 +21,7 @@ module XTwitterScraper
21
21
  sig { params(cursor: String).void }
22
22
  attr_writer :cursor
23
23
 
24
- # Comma-separated tweet IDs to exclude from results
24
+ # Comma-separated tweet IDs to exclude from results. Empty entries are ignored.
25
25
  sig { returns(T.nilable(String)) }
26
26
  attr_reader :seen_tweet_ids
27
27
 
@@ -38,7 +38,7 @@ module XTwitterScraper
38
38
  def self.new(
39
39
  # Pagination cursor for timeline
40
40
  cursor: nil,
41
- # Comma-separated tweet IDs to exclude from results
41
+ # Comma-separated tweet IDs to exclude from results. Empty entries are ignored.
42
42
  seen_tweet_ids: nil,
43
43
  request_options: {}
44
44
  )
@@ -21,7 +21,7 @@ module XTwitterScraper
21
21
  sig { params(cursor: String).void }
22
22
  attr_writer :cursor
23
23
 
24
- # Notification type filter
24
+ # Notification type filter. Unrecognized values fall back to All.
25
25
  sig do
26
26
  returns(
27
27
  T.nilable(XTwitterScraper::XGetNotificationsParams::Type::OrSymbol)
@@ -46,7 +46,7 @@ module XTwitterScraper
46
46
  def self.new(
47
47
  # Pagination cursor for notifications
48
48
  cursor: nil,
49
- # Notification type filter
49
+ # Notification type filter. Unrecognized values fall back to All.
50
50
  type: nil,
51
51
  request_options: {}
52
52
  )
@@ -64,7 +64,7 @@ module XTwitterScraper
64
64
  def to_hash
65
65
  end
66
66
 
67
- # Notification type filter
67
+ # Notification type filter. Unrecognized values fall back to All.
68
68
  module Type
69
69
  extend XTwitterScraper::Internal::Type::Enum
70
70
 
@@ -14,16 +14,44 @@ module XTwitterScraper
14
14
  )
15
15
  end
16
16
 
17
+ # Number of trending topics to return (1-50, default 30)
18
+ sig { returns(T.nilable(Integer)) }
19
+ attr_reader :count
20
+
21
+ sig { params(count: Integer).void }
22
+ attr_writer :count
23
+
24
+ # Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
25
+ sig { returns(T.nilable(Integer)) }
26
+ attr_reader :woeid
27
+
28
+ sig { params(woeid: Integer).void }
29
+ attr_writer :woeid
30
+
17
31
  sig do
18
32
  params(
33
+ count: Integer,
34
+ woeid: Integer,
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
+ # Number of trending topics to return (1-50, default 30)
40
+ count: nil,
41
+ # Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
42
+ woeid: nil,
43
+ request_options: {}
44
+ )
23
45
  end
24
46
 
25
47
  sig do
26
- override.returns({ request_options: XTwitterScraper::RequestOptions })
48
+ override.returns(
49
+ {
50
+ count: Integer,
51
+ woeid: Integer,
52
+ request_options: XTwitterScraper::RequestOptions
53
+ }
54
+ )
27
55
  end
28
56
  def to_hash
29
57
  end
@@ -7,19 +7,19 @@ module XTwitterScraper
7
7
 
8
8
  AccountUpdateLocaleParams = XTwitterScraper::Models::AccountUpdateLocaleParams
9
9
 
10
- APIKey = XTwitterScraper::Models::APIKey
11
-
12
- APIKeyCreateParams = XTwitterScraper::Models::APIKeyCreateParams
13
-
14
- APIKeyListParams = XTwitterScraper::Models::APIKeyListParams
10
+ ComposeCreateParams = XTwitterScraper::Models::ComposeCreateParams
15
11
 
16
- APIKeyRevokeParams = XTwitterScraper::Models::APIKeyRevokeParams
12
+ ContentDisclosure = XTwitterScraper::Models::ContentDisclosure
17
13
 
18
- ComposeCreateParams = XTwitterScraper::Models::ComposeCreateParams
14
+ CreditRedirectTopupCheckoutParams =
15
+ XTwitterScraper::Models::CreditRedirectTopupCheckoutParams
19
16
 
20
17
  CreditRetrieveBalanceParams =
21
18
  XTwitterScraper::Models::CreditRetrieveBalanceParams
22
19
 
20
+ CreditRetrieveTopupStatusParams =
21
+ XTwitterScraper::Models::CreditRetrieveTopupStatusParams
22
+
23
23
  CreditTopupBalanceParams = XTwitterScraper::Models::CreditTopupBalanceParams
24
24
 
25
25
  Delivery = XTwitterScraper::Models::Delivery
@@ -48,6 +48,8 @@ module XTwitterScraper
48
48
 
49
49
  DrawRunParams = XTwitterScraper::Models::DrawRunParams
50
50
 
51
+ EmbeddedTweet = XTwitterScraper::Models::EmbeddedTweet
52
+
51
53
  Error = XTwitterScraper::Models::Error
52
54
 
53
55
  Event = XTwitterScraper::Models::Event
@@ -74,24 +76,14 @@ module XTwitterScraper
74
76
 
75
77
  ExtractionRunParams = XTwitterScraper::Models::ExtractionRunParams
76
78
 
77
- Integration = XTwitterScraper::Models::Integration
78
-
79
- IntegrationCreateParams = XTwitterScraper::Models::IntegrationCreateParams
80
-
81
- IntegrationDeleteParams = XTwitterScraper::Models::IntegrationDeleteParams
79
+ GuestWalletAmount = XTwitterScraper::Models::GuestWalletAmount
82
80
 
83
- IntegrationDelivery = XTwitterScraper::Models::IntegrationDelivery
81
+ GuestWalletCreateParams = XTwitterScraper::Models::GuestWalletCreateParams
84
82
 
85
- IntegrationListDeliveriesParams =
86
- XTwitterScraper::Models::IntegrationListDeliveriesParams
83
+ GuestWalletRetrieveStatusParams =
84
+ XTwitterScraper::Models::GuestWalletRetrieveStatusParams
87
85
 
88
- IntegrationListParams = XTwitterScraper::Models::IntegrationListParams
89
-
90
- IntegrationRetrieveParams = XTwitterScraper::Models::IntegrationRetrieveParams
91
-
92
- IntegrationSendTestParams = XTwitterScraper::Models::IntegrationSendTestParams
93
-
94
- IntegrationUpdateParams = XTwitterScraper::Models::IntegrationUpdateParams
86
+ GuestWalletTopupParams = XTwitterScraper::Models::GuestWalletTopupParams
95
87
 
96
88
  Monitor = XTwitterScraper::Models::Monitor
97
89
 
@@ -103,6 +95,8 @@ module XTwitterScraper
103
95
 
104
96
  MonitorRetrieveParams = XTwitterScraper::Models::MonitorRetrieveParams
105
97
 
98
+ Monitors = XTwitterScraper::Models::Monitors
99
+
106
100
  MonitorUpdateParams = XTwitterScraper::Models::MonitorUpdateParams
107
101
 
108
102
  PaginatedTweets = XTwitterScraper::Models::PaginatedTweets
@@ -114,6 +108,8 @@ module XTwitterScraper
114
108
  RadarRetrieveTrendingTopicsParams =
115
109
  XTwitterScraper::Models::RadarRetrieveTrendingTopicsParams
116
110
 
111
+ SearchTweet = XTwitterScraper::Models::SearchTweet
112
+
117
113
  StyleAnalyzeParams = XTwitterScraper::Models::StyleAnalyzeParams
118
114
 
119
115
  StyleCompareParams = XTwitterScraper::Models::StyleCompareParams
@@ -138,6 +134,10 @@ module XTwitterScraper
138
134
 
139
135
  TrendListParams = XTwitterScraper::Models::TrendListParams
140
136
 
137
+ TweetMedia = XTwitterScraper::Models::TweetMedia
138
+
139
+ UserProfile = XTwitterScraper::Models::UserProfile
140
+
141
141
  Webhook = XTwitterScraper::Models::Webhook
142
142
 
143
143
  WebhookCreateParams = XTwitterScraper::Models::WebhookCreateParams
@@ -149,6 +149,8 @@ module XTwitterScraper
149
149
 
150
150
  WebhookListParams = XTwitterScraper::Models::WebhookListParams
151
151
 
152
+ WebhookResumeParams = XTwitterScraper::Models::WebhookResumeParams
153
+
152
154
  WebhookTestParams = XTwitterScraper::Models::WebhookTestParams
153
155
 
154
156
  WebhookUpdateParams = XTwitterScraper::Models::WebhookUpdateParams
@@ -2,7 +2,7 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # Account info & settings
5
+ # Account info and settings
6
6
  class Account
7
7
  # Get account info
8
8
  sig do
@@ -2,7 +2,7 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # Tweet composition, drafts, writing styles & radar
5
+ # AI tweet composition, drafts, writing styles, and radar
6
6
  class Compose
7
7
  # Compose, refine, or score a tweet
8
8
  sig do
@@ -2,8 +2,22 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # Subscription & billing
5
+ # Subscription, billing, and credits
6
6
  class Credits
7
+ # Redirect to an active top-up payment page
8
+ sig do
9
+ params(
10
+ session_id: String,
11
+ request_options: XTwitterScraper::RequestOptions::OrHash
12
+ ).void
13
+ end
14
+ def redirect_topup_checkout(
15
+ # Billing session ID returned by the top-up billing flow.
16
+ session_id:,
17
+ request_options: {}
18
+ )
19
+ end
20
+
7
21
  # Get credits balance
8
22
  sig do
9
23
  params(
@@ -13,16 +27,34 @@ module XTwitterScraper
13
27
  def retrieve_balance(request_options: {})
14
28
  end
15
29
 
16
- # Top up credits balance
30
+ # Get top-up billing status
31
+ sig do
32
+ params(
33
+ session_id: String,
34
+ request_options: XTwitterScraper::RequestOptions::OrHash
35
+ ).returns(XTwitterScraper::Models::CreditRetrieveTopupStatusResponse)
36
+ end
37
+ def retrieve_topup_status(
38
+ # Billing session ID returned by the top-up billing flow.
39
+ session_id:,
40
+ request_options: {}
41
+ )
42
+ end
43
+
44
+ # Create a Stripe Checkout session only after the user confirms. The request never
45
+ # completes payment or adds credits by itself.
17
46
  sig do
18
47
  params(
19
- amount: Integer,
48
+ dollars: Integer,
49
+ locale: String,
20
50
  request_options: XTwitterScraper::RequestOptions::OrHash
21
51
  ).returns(XTwitterScraper::Models::CreditTopupBalanceResponse)
22
52
  end
23
53
  def topup_balance(
24
- # Amount to top up in credits
25
- amount:,
54
+ # Amount to top up in US dollars. Minimum 10.
55
+ dollars:,
56
+ # Optional checkout locale. Defaults to en.
57
+ locale: nil,
26
58
  request_options: {}
27
59
  )
28
60
  end