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
@@ -16,38 +16,75 @@ module XTwitterScraper
16
16
  )
17
17
  end
18
18
 
19
- # Search query for cross-community tweets
19
+ # Numeric ID of the community to search
20
+ sig { returns(String) }
21
+ attr_accessor :community_id
22
+
23
+ # Keyword query within the selected community
20
24
  sig { returns(String) }
21
25
  attr_accessor :q
22
26
 
23
- # Pagination cursor for cross-community results
27
+ # Pagination cursor for community results
24
28
  sig { returns(T.nilable(String)) }
25
29
  attr_reader :cursor
26
30
 
27
31
  sig { params(cursor: String).void }
28
32
  attr_writer :cursor
29
33
 
30
- # Sort order for cross-community results (Latest or Top)
31
- sig { returns(T.nilable(String)) }
34
+ # Maximum items requested from this page (1-100, default 20). The response can
35
+ # contain fewer items because the source returned fewer, filters removed items, or
36
+ # remaining credits cover fewer results. Keep requesting next_cursor while
37
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
38
+ # aliases remain accepted.
39
+ sig { returns(T.nilable(Integer)) }
40
+ attr_reader :page_size
41
+
42
+ sig { params(page_size: Integer).void }
43
+ attr_writer :page_size
44
+
45
+ # Sort order for community results (Latest or Top)
46
+ sig do
47
+ returns(
48
+ T.nilable(
49
+ XTwitterScraper::X::Communities::TweetListParams::QueryType::OrSymbol
50
+ )
51
+ )
52
+ end
32
53
  attr_reader :query_type
33
54
 
34
- sig { params(query_type: String).void }
55
+ sig do
56
+ params(
57
+ query_type:
58
+ XTwitterScraper::X::Communities::TweetListParams::QueryType::OrSymbol
59
+ ).void
60
+ end
35
61
  attr_writer :query_type
36
62
 
37
63
  sig do
38
64
  params(
65
+ community_id: String,
39
66
  q: String,
40
67
  cursor: String,
41
- query_type: String,
68
+ page_size: Integer,
69
+ query_type:
70
+ XTwitterScraper::X::Communities::TweetListParams::QueryType::OrSymbol,
42
71
  request_options: XTwitterScraper::RequestOptions::OrHash
43
72
  ).returns(T.attached_class)
44
73
  end
45
74
  def self.new(
46
- # Search query for cross-community tweets
75
+ # Numeric ID of the community to search
76
+ community_id:,
77
+ # Keyword query within the selected community
47
78
  q:,
48
- # Pagination cursor for cross-community results
79
+ # Pagination cursor for community results
49
80
  cursor: nil,
50
- # Sort order for cross-community results (Latest or Top)
81
+ # Maximum items requested from this page (1-100, default 20). The response can
82
+ # contain fewer items because the source returned fewer, filters removed items, or
83
+ # remaining credits cover fewer results. Keep requesting next_cursor while
84
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
85
+ # aliases remain accepted.
86
+ page_size: nil,
87
+ # Sort order for community results (Latest or Top)
51
88
  query_type: nil,
52
89
  request_options: {}
53
90
  )
@@ -56,15 +93,53 @@ module XTwitterScraper
56
93
  sig do
57
94
  override.returns(
58
95
  {
96
+ community_id: String,
59
97
  q: String,
60
98
  cursor: String,
61
- query_type: String,
99
+ page_size: Integer,
100
+ query_type:
101
+ XTwitterScraper::X::Communities::TweetListParams::QueryType::OrSymbol,
62
102
  request_options: XTwitterScraper::RequestOptions
63
103
  }
64
104
  )
65
105
  end
66
106
  def to_hash
67
107
  end
108
+
109
+ # Sort order for community results (Latest or Top)
110
+ module QueryType
111
+ extend XTwitterScraper::Internal::Type::Enum
112
+
113
+ TaggedSymbol =
114
+ T.type_alias do
115
+ T.all(
116
+ Symbol,
117
+ XTwitterScraper::X::Communities::TweetListParams::QueryType
118
+ )
119
+ end
120
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
121
+
122
+ LATEST =
123
+ T.let(
124
+ :Latest,
125
+ XTwitterScraper::X::Communities::TweetListParams::QueryType::TaggedSymbol
126
+ )
127
+ TOP =
128
+ T.let(
129
+ :Top,
130
+ XTwitterScraper::X::Communities::TweetListParams::QueryType::TaggedSymbol
131
+ )
132
+
133
+ sig do
134
+ override.returns(
135
+ T::Array[
136
+ XTwitterScraper::X::Communities::TweetListParams::QueryType::TaggedSymbol
137
+ ]
138
+ )
139
+ end
140
+ def self.values
141
+ end
142
+ end
68
143
  end
69
144
  end
70
145
  end
@@ -78,6 +78,23 @@ module XTwitterScraper
78
78
  sig { params(created_at: String).void }
79
79
  attr_writer :created_at
80
80
 
81
+ sig do
82
+ returns(
83
+ T.nilable(
84
+ XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Creator
85
+ )
86
+ )
87
+ end
88
+ attr_reader :creator
89
+
90
+ sig do
91
+ params(
92
+ creator:
93
+ XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Creator::OrHash
94
+ ).void
95
+ end
96
+ attr_writer :creator
97
+
81
98
  # About text for the community
82
99
  sig { returns(T.nilable(String)) }
83
100
  attr_reader :description
@@ -85,6 +102,27 @@ module XTwitterScraper
85
102
  sig { params(description: String).void }
86
103
  attr_writer :description
87
104
 
105
+ # Invitation policy
106
+ sig { returns(T.nilable(String)) }
107
+ attr_reader :invites_policy
108
+
109
+ sig { params(invites_policy: String).void }
110
+ attr_writer :invites_policy
111
+
112
+ # Whether the authenticated viewer is a member
113
+ sig { returns(T.nilable(T::Boolean)) }
114
+ attr_reader :is_member
115
+
116
+ sig { params(is_member: T::Boolean).void }
117
+ attr_writer :is_member
118
+
119
+ # Whether the community is marked sensitive
120
+ sig { returns(T.nilable(T::Boolean)) }
121
+ attr_reader :is_nsfw
122
+
123
+ sig { params(is_nsfw: T::Boolean).void }
124
+ attr_writer :is_nsfw
125
+
88
126
  # Join policy (open or restricted)
89
127
  sig { returns(T.nilable(String)) }
90
128
  attr_reader :join_policy
@@ -131,6 +169,13 @@ module XTwitterScraper
131
169
  end
132
170
  attr_writer :primary_topic
133
171
 
172
+ # Authenticated viewer's community role
173
+ sig { returns(T.nilable(String)) }
174
+ attr_reader :role
175
+
176
+ sig { params(role: String).void }
177
+ attr_writer :role
178
+
134
179
  # Community rules
135
180
  sig do
136
181
  returns(
@@ -159,13 +204,19 @@ module XTwitterScraper
159
204
  id: String,
160
205
  banner_url: String,
161
206
  created_at: String,
207
+ creator:
208
+ XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Creator::OrHash,
162
209
  description: String,
210
+ invites_policy: String,
211
+ is_member: T::Boolean,
212
+ is_nsfw: T::Boolean,
163
213
  join_policy: String,
164
214
  member_count: Integer,
165
215
  moderator_count: Integer,
166
216
  name: String,
167
217
  primary_topic:
168
218
  XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::PrimaryTopic::OrHash,
219
+ role: String,
169
220
  rules:
170
221
  T::Array[
171
222
  XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Rule::OrHash
@@ -179,8 +230,15 @@ module XTwitterScraper
179
230
  banner_url: nil,
180
231
  # Community creation timestamp
181
232
  created_at: nil,
233
+ creator: nil,
182
234
  # About text for the community
183
235
  description: nil,
236
+ # Invitation policy
237
+ invites_policy: nil,
238
+ # Whether the authenticated viewer is a member
239
+ is_member: nil,
240
+ # Whether the community is marked sensitive
241
+ is_nsfw: nil,
184
242
  # Join policy (open or restricted)
185
243
  join_policy: nil,
186
244
  # Total member count
@@ -191,6 +249,8 @@ module XTwitterScraper
191
249
  name: nil,
192
250
  # Primary topic
193
251
  primary_topic: nil,
252
+ # Authenticated viewer's community role
253
+ role: nil,
194
254
  # Community rules
195
255
  rules: nil
196
256
  )
@@ -202,13 +262,19 @@ module XTwitterScraper
202
262
  id: String,
203
263
  banner_url: String,
204
264
  created_at: String,
265
+ creator:
266
+ XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Creator,
205
267
  description: String,
268
+ invites_policy: String,
269
+ is_member: T::Boolean,
270
+ is_nsfw: T::Boolean,
206
271
  join_policy: String,
207
272
  member_count: Integer,
208
273
  moderator_count: Integer,
209
274
  name: String,
210
275
  primary_topic:
211
276
  XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::PrimaryTopic,
277
+ role: String,
212
278
  rules:
213
279
  T::Array[
214
280
  XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Rule
@@ -219,6 +285,55 @@ module XTwitterScraper
219
285
  def to_hash
220
286
  end
221
287
 
288
+ class Creator < XTwitterScraper::Internal::Type::BaseModel
289
+ OrHash =
290
+ T.type_alias do
291
+ T.any(
292
+ XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Creator,
293
+ XTwitterScraper::Internal::AnyHash
294
+ )
295
+ end
296
+
297
+ sig { returns(String) }
298
+ attr_accessor :id
299
+
300
+ sig { returns(String) }
301
+ attr_accessor :username
302
+
303
+ sig { returns(T::Boolean) }
304
+ attr_accessor :verified
305
+
306
+ sig { returns(T.nilable(String)) }
307
+ attr_reader :name
308
+
309
+ sig { params(name: String).void }
310
+ attr_writer :name
311
+
312
+ sig do
313
+ params(
314
+ id: String,
315
+ username: String,
316
+ verified: T::Boolean,
317
+ name: String
318
+ ).returns(T.attached_class)
319
+ end
320
+ def self.new(id:, username:, verified:, name: nil)
321
+ end
322
+
323
+ sig do
324
+ override.returns(
325
+ {
326
+ id: String,
327
+ username: String,
328
+ verified: T::Boolean,
329
+ name: String
330
+ }
331
+ )
332
+ end
333
+ def to_hash
334
+ end
335
+ end
336
+
222
337
  class PrimaryTopic < XTwitterScraper::Internal::Type::BaseModel
223
338
  OrHash =
224
339
  T.type_alias do
@@ -25,10 +25,20 @@ module XTwitterScraper
25
25
  sig { params(cursor: String).void }
26
26
  attr_writer :cursor
27
27
 
28
+ # Items per page (20-200, default 20). This is an upper bound for paid
29
+ # authenticated calls: remaining credits can reduce the returned page size, and
30
+ # zero affordable results returns 402 insufficient_credits.
31
+ sig { returns(T.nilable(Integer)) }
32
+ attr_reader :page_size
33
+
34
+ sig { params(page_size: Integer).void }
35
+ attr_writer :page_size
36
+
28
37
  sig do
29
38
  params(
30
39
  id: String,
31
40
  cursor: String,
41
+ page_size: Integer,
32
42
  request_options: XTwitterScraper::RequestOptions::OrHash
33
43
  ).returns(T.attached_class)
34
44
  end
@@ -36,6 +46,10 @@ module XTwitterScraper
36
46
  id:,
37
47
  # Pagination cursor
38
48
  cursor: nil,
49
+ # Items per page (20-200, default 20). This is an upper bound for paid
50
+ # authenticated calls: remaining credits can reduce the returned page size, and
51
+ # zero affordable results returns 402 insufficient_credits.
52
+ page_size: nil,
39
53
  request_options: {}
40
54
  )
41
55
  end
@@ -45,6 +59,7 @@ module XTwitterScraper
45
59
  {
46
60
  id: String,
47
61
  cursor: String,
62
+ page_size: Integer,
48
63
  request_options: XTwitterScraper::RequestOptions
49
64
  }
50
65
  )
@@ -15,6 +15,10 @@ module XTwitterScraper
15
15
  )
16
16
  end
17
17
 
18
+ # Numeric ID of the community whose posts to search
19
+ sig { returns(String) }
20
+ attr_accessor :community_id
21
+
18
22
  # Search query
19
23
  sig { returns(String) }
20
24
  attr_accessor :q
@@ -26,26 +30,59 @@ module XTwitterScraper
26
30
  sig { params(cursor: String).void }
27
31
  attr_writer :cursor
28
32
 
33
+ # Maximum items requested from this page (1-100, default 20). The response can
34
+ # contain fewer items because the source returned fewer, filters removed items, or
35
+ # remaining credits cover fewer results. Keep requesting next_cursor while
36
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
37
+ # aliases remain accepted.
38
+ sig { returns(T.nilable(Integer)) }
39
+ attr_reader :page_size
40
+
41
+ sig { params(page_size: Integer).void }
42
+ attr_writer :page_size
43
+
29
44
  # Sort order (Latest or Top)
30
- sig { returns(T.nilable(String)) }
45
+ sig do
46
+ returns(
47
+ T.nilable(
48
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType::OrSymbol
49
+ )
50
+ )
51
+ end
31
52
  attr_reader :query_type
32
53
 
33
- sig { params(query_type: String).void }
54
+ sig do
55
+ params(
56
+ query_type:
57
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType::OrSymbol
58
+ ).void
59
+ end
34
60
  attr_writer :query_type
35
61
 
36
62
  sig do
37
63
  params(
64
+ community_id: String,
38
65
  q: String,
39
66
  cursor: String,
40
- query_type: String,
67
+ page_size: Integer,
68
+ query_type:
69
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType::OrSymbol,
41
70
  request_options: XTwitterScraper::RequestOptions::OrHash
42
71
  ).returns(T.attached_class)
43
72
  end
44
73
  def self.new(
74
+ # Numeric ID of the community whose posts to search
75
+ community_id:,
45
76
  # Search query
46
77
  q:,
47
78
  # Pagination cursor for community search
48
79
  cursor: nil,
80
+ # Maximum items requested from this page (1-100, default 20). The response can
81
+ # contain fewer items because the source returned fewer, filters removed items, or
82
+ # remaining credits cover fewer results. Keep requesting next_cursor while
83
+ # has_next_page is true, even when a page is empty. The deprecated limit and count
84
+ # aliases remain accepted.
85
+ page_size: nil,
49
86
  # Sort order (Latest or Top)
50
87
  query_type: nil,
51
88
  request_options: {}
@@ -55,15 +92,53 @@ module XTwitterScraper
55
92
  sig do
56
93
  override.returns(
57
94
  {
95
+ community_id: String,
58
96
  q: String,
59
97
  cursor: String,
60
- query_type: String,
98
+ page_size: Integer,
99
+ query_type:
100
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType::OrSymbol,
61
101
  request_options: XTwitterScraper::RequestOptions
62
102
  }
63
103
  )
64
104
  end
65
105
  def to_hash
66
106
  end
107
+
108
+ # Sort order (Latest or Top)
109
+ module QueryType
110
+ extend XTwitterScraper::Internal::Type::Enum
111
+
112
+ TaggedSymbol =
113
+ T.type_alias do
114
+ T.all(
115
+ Symbol,
116
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType
117
+ )
118
+ end
119
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
120
+
121
+ LATEST =
122
+ T.let(
123
+ :Latest,
124
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType::TaggedSymbol
125
+ )
126
+ TOP =
127
+ T.let(
128
+ :Top,
129
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType::TaggedSymbol
130
+ )
131
+
132
+ sig do
133
+ override.returns(
134
+ T::Array[
135
+ XTwitterScraper::X::CommunityRetrieveSearchParams::QueryType::TaggedSymbol
136
+ ]
137
+ )
138
+ end
139
+ def self.values
140
+ end
141
+ end
67
142
  end
68
143
  end
69
144
  end
@@ -18,6 +18,11 @@ module XTwitterScraper
18
18
  sig { returns(String) }
19
19
  attr_accessor :user_id
20
20
 
21
+ # X handle (without the `@` prefix) of the connected X account used to read the
22
+ # conversation. The account must be a participant in the conversation.
23
+ sig { returns(String) }
24
+ attr_accessor :account
25
+
21
26
  # Pagination cursor for DM history
22
27
  sig { returns(T.nilable(String)) }
23
28
  attr_reader :cursor
@@ -35,6 +40,7 @@ module XTwitterScraper
35
40
  sig do
36
41
  params(
37
42
  user_id: String,
43
+ account: String,
38
44
  cursor: String,
39
45
  max_id: String,
40
46
  request_options: XTwitterScraper::RequestOptions::OrHash
@@ -42,6 +48,9 @@ module XTwitterScraper
42
48
  end
43
49
  def self.new(
44
50
  user_id:,
51
+ # X handle (without the `@` prefix) of the connected X account used to read the
52
+ # conversation. The account must be a participant in the conversation.
53
+ account:,
45
54
  # Pagination cursor for DM history
46
55
  cursor: nil,
47
56
  # Legacy pagination cursor (backward compat)
@@ -54,6 +63,7 @@ module XTwitterScraper
54
63
  override.returns(
55
64
  {
56
65
  user_id: String,
66
+ account: String,
57
67
  cursor: String,
58
68
  max_id: String,
59
69
  request_options: XTwitterScraper::RequestOptions
@@ -67,23 +67,25 @@ module XTwitterScraper
67
67
  sig { returns(String) }
68
68
  attr_accessor :id
69
69
 
70
+ sig { returns(String) }
71
+ attr_accessor :receiver_id
72
+
73
+ sig { returns(String) }
74
+ attr_accessor :sender_id
75
+
70
76
  sig { returns(T.nilable(String)) }
71
77
  attr_reader :created_at
72
78
 
73
79
  sig { params(created_at: String).void }
74
80
  attr_writer :created_at
75
81
 
82
+ # URL of attached media (image, GIF, or video). Omitted when the message has no
83
+ # media attachment.
76
84
  sig { returns(T.nilable(String)) }
77
- attr_reader :receiver_id
85
+ attr_reader :media_url
78
86
 
79
- sig { params(receiver_id: String).void }
80
- attr_writer :receiver_id
81
-
82
- sig { returns(T.nilable(String)) }
83
- attr_reader :sender_id
84
-
85
- sig { params(sender_id: String).void }
86
- attr_writer :sender_id
87
+ sig { params(media_url: String).void }
88
+ attr_writer :media_url
87
89
 
88
90
  sig { returns(T.nilable(String)) }
89
91
  attr_reader :text
@@ -94,17 +96,21 @@ module XTwitterScraper
94
96
  sig do
95
97
  params(
96
98
  id: String,
97
- created_at: String,
98
99
  receiver_id: String,
99
100
  sender_id: String,
101
+ created_at: String,
102
+ media_url: String,
100
103
  text: String
101
104
  ).returns(T.attached_class)
102
105
  end
103
106
  def self.new(
104
107
  id:,
108
+ receiver_id:,
109
+ sender_id:,
105
110
  created_at: nil,
106
- receiver_id: nil,
107
- sender_id: nil,
111
+ # URL of attached media (image, GIF, or video). Omitted when the message has no
112
+ # media attachment.
113
+ media_url: nil,
108
114
  text: nil
109
115
  )
110
116
  end
@@ -113,9 +119,10 @@ module XTwitterScraper
113
119
  override.returns(
114
120
  {
115
121
  id: String,
116
- created_at: String,
117
122
  receiver_id: String,
118
123
  sender_id: String,
124
+ created_at: String,
125
+ media_url: String,
119
126
  text: String
120
127
  }
121
128
  )
@@ -25,25 +25,19 @@ module XTwitterScraper
25
25
  sig { returns(String) }
26
26
  attr_accessor :text
27
27
 
28
+ # Optional array containing exactly 1 uploaded media ID.
28
29
  sig { returns(T.nilable(T::Array[String])) }
29
30
  attr_reader :media_ids
30
31
 
31
32
  sig { params(media_ids: T::Array[String]).void }
32
33
  attr_writer :media_ids
33
34
 
34
- sig { returns(T.nilable(String)) }
35
- attr_reader :reply_to_message_id
36
-
37
- sig { params(reply_to_message_id: String).void }
38
- attr_writer :reply_to_message_id
39
-
40
35
  sig do
41
36
  params(
42
37
  user_id: String,
43
38
  account: String,
44
39
  text: String,
45
40
  media_ids: T::Array[String],
46
- reply_to_message_id: String,
47
41
  request_options: XTwitterScraper::RequestOptions::OrHash
48
42
  ).returns(T.attached_class)
49
43
  end
@@ -52,8 +46,8 @@ module XTwitterScraper
52
46
  # X account (@username or ID) sending the DM
53
47
  account:,
54
48
  text:,
49
+ # Optional array containing exactly 1 uploaded media ID.
55
50
  media_ids: nil,
56
- reply_to_message_id: nil,
57
51
  request_options: {}
58
52
  )
59
53
  end
@@ -65,7 +59,6 @@ module XTwitterScraper
65
59
  account: String,
66
60
  text: String,
67
61
  media_ids: T::Array[String],
68
- reply_to_message_id: String,
69
62
  request_options: XTwitterScraper::RequestOptions
70
63
  }
71
64
  )
@@ -15,11 +15,11 @@ module XTwitterScraper
15
15
  )
16
16
  end
17
17
 
18
- # Username to check (without @)
18
+ # Source username, @username, or X or Twitter profile URL
19
19
  sig { returns(String) }
20
20
  attr_accessor :source
21
21
 
22
- # Target username (without @)
22
+ # Target username, @username, or X or Twitter profile URL
23
23
  sig { returns(String) }
24
24
  attr_accessor :target
25
25
 
@@ -31,9 +31,9 @@ module XTwitterScraper
31
31
  ).returns(T.attached_class)
32
32
  end
33
33
  def self.new(
34
- # Username to check (without @)
34
+ # Source username, @username, or X or Twitter profile URL
35
35
  source:,
36
- # Target username (without @)
36
+ # Target username, @username, or X or Twitter profile URL
37
37
  target:,
38
38
  request_options: {}
39
39
  )