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,14 +14,14 @@ module XTwitterScraper
14
14
  )
15
15
  end
16
16
 
17
- # Number of trending topics to return (1-50, default 30)
17
+ # Number of trending topics returned (1-50, default 30)
18
18
  sig { returns(T.nilable(Integer)) }
19
19
  attr_reader :count
20
20
 
21
21
  sig { params(count: Integer).void }
22
22
  attr_writer :count
23
23
 
24
- # Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
24
+ # Region Yahoo WOEID code (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
25
25
  sig { returns(T.nilable(Integer)) }
26
26
  attr_reader :woeid
27
27
 
@@ -36,9 +36,9 @@ module XTwitterScraper
36
36
  ).returns(T.attached_class)
37
37
  end
38
38
  def self.new(
39
- # Number of trending topics to return (1-50, default 30)
39
+ # Number of trending topics returned (1-50, default 30)
40
40
  count: nil,
41
- # Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
41
+ # Region Yahoo WOEID code (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
42
42
  woeid: nil,
43
43
  request_options: {}
44
44
  )
@@ -0,0 +1,130 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ class TweetMedia < XTwitterScraper::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(XTwitterScraper::TweetMedia, XTwitterScraper::Internal::AnyHash)
9
+ end
10
+
11
+ # Media preview URL
12
+ sig { returns(String) }
13
+ attr_accessor :media_url
14
+
15
+ sig { returns(XTwitterScraper::TweetMedia::Type::TaggedSymbol) }
16
+ attr_accessor :type
17
+
18
+ # X media link from the tweet
19
+ sig { returns(String) }
20
+ attr_accessor :url
21
+
22
+ # Available video encodings, ordered as returned
23
+ sig do
24
+ returns(T.nilable(T::Array[XTwitterScraper::TweetMedia::VideoVariant]))
25
+ end
26
+ attr_reader :video_variants
27
+
28
+ sig do
29
+ params(
30
+ video_variants:
31
+ T::Array[XTwitterScraper::TweetMedia::VideoVariant::OrHash]
32
+ ).void
33
+ end
34
+ attr_writer :video_variants
35
+
36
+ # Normalized media attached to a tweet.
37
+ sig do
38
+ params(
39
+ media_url: String,
40
+ type: XTwitterScraper::TweetMedia::Type::OrSymbol,
41
+ url: String,
42
+ video_variants:
43
+ T::Array[XTwitterScraper::TweetMedia::VideoVariant::OrHash]
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # Media preview URL
48
+ media_url:,
49
+ type:,
50
+ # X media link from the tweet
51
+ url:,
52
+ # Available video encodings, ordered as returned
53
+ video_variants: nil
54
+ )
55
+ end
56
+
57
+ sig do
58
+ override.returns(
59
+ {
60
+ media_url: String,
61
+ type: XTwitterScraper::TweetMedia::Type::TaggedSymbol,
62
+ url: String,
63
+ video_variants: T::Array[XTwitterScraper::TweetMedia::VideoVariant]
64
+ }
65
+ )
66
+ end
67
+ def to_hash
68
+ end
69
+
70
+ module Type
71
+ extend XTwitterScraper::Internal::Type::Enum
72
+
73
+ TaggedSymbol =
74
+ T.type_alias { T.all(Symbol, XTwitterScraper::TweetMedia::Type) }
75
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
76
+
77
+ PHOTO = T.let(:photo, XTwitterScraper::TweetMedia::Type::TaggedSymbol)
78
+ VIDEO = T.let(:video, XTwitterScraper::TweetMedia::Type::TaggedSymbol)
79
+ ANIMATED_GIF =
80
+ T.let(:animated_gif, XTwitterScraper::TweetMedia::Type::TaggedSymbol)
81
+
82
+ sig do
83
+ override.returns(
84
+ T::Array[XTwitterScraper::TweetMedia::Type::TaggedSymbol]
85
+ )
86
+ end
87
+ def self.values
88
+ end
89
+ end
90
+
91
+ class VideoVariant < XTwitterScraper::Internal::Type::BaseModel
92
+ OrHash =
93
+ T.type_alias do
94
+ T.any(
95
+ XTwitterScraper::TweetMedia::VideoVariant,
96
+ XTwitterScraper::Internal::AnyHash
97
+ )
98
+ end
99
+
100
+ sig { returns(String) }
101
+ attr_accessor :content_type
102
+
103
+ sig { returns(String) }
104
+ attr_accessor :url
105
+
106
+ sig { returns(T.nilable(Integer)) }
107
+ attr_reader :bitrate
108
+
109
+ sig { params(bitrate: Integer).void }
110
+ attr_writer :bitrate
111
+
112
+ sig do
113
+ params(content_type: String, url: String, bitrate: Integer).returns(
114
+ T.attached_class
115
+ )
116
+ end
117
+ def self.new(content_type:, url:, bitrate: nil)
118
+ end
119
+
120
+ sig do
121
+ override.returns(
122
+ { content_type: String, url: String, bitrate: Integer }
123
+ )
124
+ end
125
+ def to_hash
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,346 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ class UserProfile < XTwitterScraper::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ XTwitterScraper::UserProfile,
10
+ XTwitterScraper::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :name
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :username
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :automated_by
25
+
26
+ sig { params(automated_by: String).void }
27
+ attr_writer :automated_by
28
+
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_reader :can_dm
31
+
32
+ sig { params(can_dm: T::Boolean).void }
33
+ attr_writer :can_dm
34
+
35
+ # Community role when returned by community member reads
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :community_role
38
+
39
+ sig { params(community_role: String).void }
40
+ attr_writer :community_role
41
+
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :cover_picture
44
+
45
+ sig { params(cover_picture: String).void }
46
+ attr_writer :cover_picture
47
+
48
+ sig { returns(T.nilable(String)) }
49
+ attr_reader :created_at
50
+
51
+ sig { params(created_at: String).void }
52
+ attr_writer :created_at
53
+
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :description
56
+
57
+ sig { params(description: String).void }
58
+ attr_writer :description
59
+
60
+ sig { returns(T.nilable(Integer)) }
61
+ attr_reader :favourites_count
62
+
63
+ sig { params(favourites_count: Integer).void }
64
+ attr_writer :favourites_count
65
+
66
+ sig { returns(T.nilable(Integer)) }
67
+ attr_reader :followers
68
+
69
+ sig { params(followers: Integer).void }
70
+ attr_writer :followers
71
+
72
+ sig { returns(T.nilable(Integer)) }
73
+ attr_reader :following
74
+
75
+ sig { params(following: Integer).void }
76
+ attr_writer :following
77
+
78
+ sig { returns(T.nilable(T::Boolean)) }
79
+ attr_reader :has_custom_timelines
80
+
81
+ sig { params(has_custom_timelines: T::Boolean).void }
82
+ attr_writer :has_custom_timelines
83
+
84
+ sig { returns(T.nilable(T::Boolean)) }
85
+ attr_reader :is_automated
86
+
87
+ sig { params(is_automated: T::Boolean).void }
88
+ attr_writer :is_automated
89
+
90
+ # Whether X shows a blue verification badge
91
+ sig { returns(T.nilable(T::Boolean)) }
92
+ attr_reader :is_blue_verified
93
+
94
+ sig { params(is_blue_verified: T::Boolean).void }
95
+ attr_writer :is_blue_verified
96
+
97
+ sig { returns(T.nilable(T::Boolean)) }
98
+ attr_reader :is_translator
99
+
100
+ sig { params(is_translator: T::Boolean).void }
101
+ attr_writer :is_translator
102
+
103
+ # Whether X marks the profile as verified
104
+ sig { returns(T.nilable(T::Boolean)) }
105
+ attr_reader :is_verified
106
+
107
+ sig { params(is_verified: T::Boolean).void }
108
+ attr_writer :is_verified
109
+
110
+ sig { returns(T.nilable(String)) }
111
+ attr_reader :location
112
+
113
+ sig { params(location: String).void }
114
+ attr_writer :location
115
+
116
+ sig { returns(T.nilable(Integer)) }
117
+ attr_reader :media_count
118
+
119
+ sig { params(media_count: Integer).void }
120
+ attr_writer :media_count
121
+
122
+ sig { returns(T.nilable(T::Array[String])) }
123
+ attr_reader :pinned_tweet_ids
124
+
125
+ sig { params(pinned_tweet_ids: T::Array[String]).void }
126
+ attr_writer :pinned_tweet_ids
127
+
128
+ sig { returns(T.nilable(T::Boolean)) }
129
+ attr_reader :possibly_sensitive
130
+
131
+ sig { params(possibly_sensitive: T::Boolean).void }
132
+ attr_writer :possibly_sensitive
133
+
134
+ # Structured profile bio with entity annotations
135
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
136
+ attr_reader :profile_bio
137
+
138
+ sig { params(profile_bio: T::Hash[Symbol, T.anything]).void }
139
+ attr_writer :profile_bio
140
+
141
+ # Original X profile banner field when available
142
+ sig { returns(T.nilable(String)) }
143
+ attr_reader :profile_banner_url
144
+
145
+ sig { params(profile_banner_url: String).void }
146
+ attr_writer :profile_banner_url
147
+
148
+ sig { returns(T.nilable(String)) }
149
+ attr_reader :profile_picture
150
+
151
+ sig { params(profile_picture: String).void }
152
+ attr_writer :profile_picture
153
+
154
+ # Whether the profile protects its posts
155
+ sig { returns(T.nilable(T::Boolean)) }
156
+ attr_reader :protected
157
+
158
+ sig { params(protected: T::Boolean).void }
159
+ attr_writer :protected
160
+
161
+ sig { returns(T.nilable(Integer)) }
162
+ attr_reader :statuses_count
163
+
164
+ sig { params(statuses_count: Integer).void }
165
+ attr_writer :statuses_count
166
+
167
+ sig { returns(T.nilable(T::Boolean)) }
168
+ attr_reader :unavailable
169
+
170
+ sig { params(unavailable: T::Boolean).void }
171
+ attr_writer :unavailable
172
+
173
+ sig { returns(T.nilable(String)) }
174
+ attr_reader :unavailable_reason
175
+
176
+ sig { params(unavailable_reason: String).void }
177
+ attr_writer :unavailable_reason
178
+
179
+ sig { returns(T.nilable(String)) }
180
+ attr_reader :url
181
+
182
+ sig { params(url: String).void }
183
+ attr_writer :url
184
+
185
+ sig { returns(T.nilable(T::Boolean)) }
186
+ attr_reader :verified
187
+
188
+ sig { params(verified: T::Boolean).void }
189
+ attr_writer :verified
190
+
191
+ sig { returns(T.nilable(String)) }
192
+ attr_reader :verified_type
193
+
194
+ sig { params(verified_type: String).void }
195
+ attr_writer :verified_type
196
+
197
+ # Whether this profile follows the authenticated viewer
198
+ sig { returns(T.nilable(T::Boolean)) }
199
+ attr_reader :viewer_followed_by
200
+
201
+ sig { params(viewer_followed_by: T::Boolean).void }
202
+ attr_writer :viewer_followed_by
203
+
204
+ # Whether the authenticated viewer follows this profile
205
+ sig { returns(T.nilable(T::Boolean)) }
206
+ attr_reader :viewer_following
207
+
208
+ sig { params(viewer_following: T::Boolean).void }
209
+ attr_writer :viewer_following
210
+
211
+ sig { returns(T.nilable(T::Array[String])) }
212
+ attr_reader :withheld_in_countries
213
+
214
+ sig { params(withheld_in_countries: T::Array[String]).void }
215
+ attr_writer :withheld_in_countries
216
+
217
+ # X user profile with bio, follower counts, and verification status.
218
+ sig do
219
+ params(
220
+ id: String,
221
+ name: String,
222
+ username: String,
223
+ automated_by: String,
224
+ can_dm: T::Boolean,
225
+ community_role: String,
226
+ cover_picture: String,
227
+ created_at: String,
228
+ description: String,
229
+ favourites_count: Integer,
230
+ followers: Integer,
231
+ following: Integer,
232
+ has_custom_timelines: T::Boolean,
233
+ is_automated: T::Boolean,
234
+ is_blue_verified: T::Boolean,
235
+ is_translator: T::Boolean,
236
+ is_verified: T::Boolean,
237
+ location: String,
238
+ media_count: Integer,
239
+ pinned_tweet_ids: T::Array[String],
240
+ possibly_sensitive: T::Boolean,
241
+ profile_bio: T::Hash[Symbol, T.anything],
242
+ profile_banner_url: String,
243
+ profile_picture: String,
244
+ protected: T::Boolean,
245
+ statuses_count: Integer,
246
+ unavailable: T::Boolean,
247
+ unavailable_reason: String,
248
+ url: String,
249
+ verified: T::Boolean,
250
+ verified_type: String,
251
+ viewer_followed_by: T::Boolean,
252
+ viewer_following: T::Boolean,
253
+ withheld_in_countries: T::Array[String]
254
+ ).returns(T.attached_class)
255
+ end
256
+ def self.new(
257
+ id:,
258
+ name:,
259
+ username:,
260
+ automated_by: nil,
261
+ can_dm: nil,
262
+ # Community role when returned by community member reads
263
+ community_role: nil,
264
+ cover_picture: nil,
265
+ created_at: nil,
266
+ description: nil,
267
+ favourites_count: nil,
268
+ followers: nil,
269
+ following: nil,
270
+ has_custom_timelines: nil,
271
+ is_automated: nil,
272
+ # Whether X shows a blue verification badge
273
+ is_blue_verified: nil,
274
+ is_translator: nil,
275
+ # Whether X marks the profile as verified
276
+ is_verified: nil,
277
+ location: nil,
278
+ media_count: nil,
279
+ pinned_tweet_ids: nil,
280
+ possibly_sensitive: nil,
281
+ # Structured profile bio with entity annotations
282
+ profile_bio: nil,
283
+ # Original X profile banner field when available
284
+ profile_banner_url: nil,
285
+ profile_picture: nil,
286
+ # Whether the profile protects its posts
287
+ protected: nil,
288
+ statuses_count: nil,
289
+ unavailable: nil,
290
+ unavailable_reason: nil,
291
+ url: nil,
292
+ verified: nil,
293
+ verified_type: nil,
294
+ # Whether this profile follows the authenticated viewer
295
+ viewer_followed_by: nil,
296
+ # Whether the authenticated viewer follows this profile
297
+ viewer_following: nil,
298
+ withheld_in_countries: nil
299
+ )
300
+ end
301
+
302
+ sig do
303
+ override.returns(
304
+ {
305
+ id: String,
306
+ name: String,
307
+ username: String,
308
+ automated_by: String,
309
+ can_dm: T::Boolean,
310
+ community_role: String,
311
+ cover_picture: String,
312
+ created_at: String,
313
+ description: String,
314
+ favourites_count: Integer,
315
+ followers: Integer,
316
+ following: Integer,
317
+ has_custom_timelines: T::Boolean,
318
+ is_automated: T::Boolean,
319
+ is_blue_verified: T::Boolean,
320
+ is_translator: T::Boolean,
321
+ is_verified: T::Boolean,
322
+ location: String,
323
+ media_count: Integer,
324
+ pinned_tweet_ids: T::Array[String],
325
+ possibly_sensitive: T::Boolean,
326
+ profile_bio: T::Hash[Symbol, T.anything],
327
+ profile_banner_url: String,
328
+ profile_picture: String,
329
+ protected: T::Boolean,
330
+ statuses_count: Integer,
331
+ unavailable: T::Boolean,
332
+ unavailable_reason: String,
333
+ url: String,
334
+ verified: T::Boolean,
335
+ verified_type: String,
336
+ viewer_followed_by: T::Boolean,
337
+ viewer_following: T::Boolean,
338
+ withheld_in_countries: T::Array[String]
339
+ }
340
+ )
341
+ end
342
+ def to_hash
343
+ end
344
+ end
345
+ end
346
+ end
@@ -11,13 +11,26 @@ module XTwitterScraper
11
11
  sig { returns(String) }
12
12
  attr_accessor :id
13
13
 
14
+ # Consecutive failed delivery attempts since the last success.
15
+ sig { returns(Integer) }
16
+ attr_accessor :consecutive_failures
17
+
14
18
  sig { returns(Time) }
15
19
  attr_accessor :created_at
16
20
 
21
+ # Endpoint delivery state. needs_attention means delivery stopped after repeated
22
+ # failures.
23
+ sig { returns(XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol) }
24
+ attr_accessor :delivery_status
25
+
17
26
  # Array of event types to subscribe to.
18
27
  sig { returns(T::Array[XTwitterScraper::EventType::TaggedSymbol]) }
19
28
  attr_accessor :event_types
20
29
 
30
+ # Consecutive delivery failures that pause the endpoint.
31
+ sig { returns(Integer) }
32
+ attr_accessor :failure_hard_cap
33
+
21
34
  sig { returns(T::Boolean) }
22
35
  attr_accessor :is_active
23
36
 
@@ -28,17 +41,27 @@ module XTwitterScraper
28
41
  sig do
29
42
  params(
30
43
  id: String,
44
+ consecutive_failures: Integer,
31
45
  created_at: Time,
46
+ delivery_status: XTwitterScraper::Webhook::DeliveryStatus::OrSymbol,
32
47
  event_types: T::Array[XTwitterScraper::EventType::OrSymbol],
48
+ failure_hard_cap: Integer,
33
49
  is_active: T::Boolean,
34
50
  url: String
35
51
  ).returns(T.attached_class)
36
52
  end
37
53
  def self.new(
38
54
  id:,
55
+ # Consecutive failed delivery attempts since the last success.
56
+ consecutive_failures:,
39
57
  created_at:,
58
+ # Endpoint delivery state. needs_attention means delivery stopped after repeated
59
+ # failures.
60
+ delivery_status:,
40
61
  # Array of event types to subscribe to.
41
62
  event_types:,
63
+ # Consecutive delivery failures that pause the endpoint.
64
+ failure_hard_cap:,
42
65
  is_active:,
43
66
  url:
44
67
  )
@@ -48,8 +71,12 @@ module XTwitterScraper
48
71
  override.returns(
49
72
  {
50
73
  id: String,
74
+ consecutive_failures: Integer,
51
75
  created_at: Time,
76
+ delivery_status:
77
+ XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol,
52
78
  event_types: T::Array[XTwitterScraper::EventType::TaggedSymbol],
79
+ failure_hard_cap: Integer,
53
80
  is_active: T::Boolean,
54
81
  url: String
55
82
  }
@@ -57,6 +84,36 @@ module XTwitterScraper
57
84
  end
58
85
  def to_hash
59
86
  end
87
+
88
+ # Endpoint delivery state. needs_attention means delivery stopped after repeated
89
+ # failures.
90
+ module DeliveryStatus
91
+ extend XTwitterScraper::Internal::Type::Enum
92
+
93
+ TaggedSymbol =
94
+ T.type_alias do
95
+ T.all(Symbol, XTwitterScraper::Webhook::DeliveryStatus)
96
+ end
97
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
98
+
99
+ ACTIVE =
100
+ T.let(:active, XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol)
101
+ PAUSED =
102
+ T.let(:paused, XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol)
103
+ NEEDS_ATTENTION =
104
+ T.let(
105
+ :needs_attention,
106
+ XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol
107
+ )
108
+
109
+ sig do
110
+ override.returns(
111
+ T::Array[XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol]
112
+ )
113
+ end
114
+ def self.values
115
+ end
116
+ end
60
117
  end
61
118
  end
62
119
  end
@@ -21,6 +21,7 @@ module XTwitterScraper
21
21
  sig { returns(T::Array[XTwitterScraper::EventType::TaggedSymbol]) }
22
22
  attr_accessor :event_types
23
23
 
24
+ # Plaintext HMAC signing secret returned only at creation.
24
25
  sig { returns(String) }
25
26
  attr_accessor :secret
26
27
 
@@ -41,6 +42,7 @@ module XTwitterScraper
41
42
  created_at:,
42
43
  # Array of event types to subscribe to.
43
44
  event_types:,
45
+ # Plaintext HMAC signing secret returned only at creation.
44
46
  secret:,
45
47
  url:
46
48
  )
@@ -2,14 +2,14 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Models
5
- class APIKeyRevokeParams < XTwitterScraper::Internal::Type::BaseModel
5
+ class WebhookResumeParams < XTwitterScraper::Internal::Type::BaseModel
6
6
  extend XTwitterScraper::Internal::Type::RequestParameters::Converter
7
7
  include XTwitterScraper::Internal::Type::RequestParameters
8
8
 
9
9
  OrHash =
10
10
  T.type_alias do
11
11
  T.any(
12
- XTwitterScraper::APIKeyRevokeParams,
12
+ XTwitterScraper::WebhookResumeParams,
13
13
  XTwitterScraper::Internal::AnyHash
14
14
  )
15
15
  end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ class WebhookResumeResponse < XTwitterScraper::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ XTwitterScraper::Models::WebhookResumeResponse,
10
+ XTwitterScraper::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(Integer) }
15
+ attr_accessor :status_code
16
+
17
+ sig { returns(T::Boolean) }
18
+ attr_accessor :success
19
+
20
+ # Webhook endpoint registered to receive event deliveries.
21
+ sig { returns(XTwitterScraper::Webhook) }
22
+ attr_reader :webhook
23
+
24
+ sig { params(webhook: XTwitterScraper::Webhook::OrHash).void }
25
+ attr_writer :webhook
26
+
27
+ sig do
28
+ params(
29
+ status_code: Integer,
30
+ success: T::Boolean,
31
+ webhook: XTwitterScraper::Webhook::OrHash
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ status_code:,
36
+ success:,
37
+ # Webhook endpoint registered to receive event deliveries.
38
+ webhook:
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ status_code: Integer,
46
+ success: T::Boolean,
47
+ webhook: XTwitterScraper::Webhook
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+ end
54
+ end
55
+ end