x-twitter-scraper 0.3.0 → 0.4.0

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 (456) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +5 -5
  4. data/lib/x_twitter_scraper/models/api_key.rb +2 -0
  5. data/lib/x_twitter_scraper/models/api_key_list_response.rb +3 -44
  6. data/lib/x_twitter_scraper/models/delivery.rb +2 -0
  7. data/lib/x_twitter_scraper/models/draft.rb +2 -0
  8. data/lib/x_twitter_scraper/models/draft_detail.rb +3 -0
  9. data/lib/x_twitter_scraper/models/draft_list_params.rb +2 -1
  10. data/lib/x_twitter_scraper/models/draft_list_response.rb +3 -38
  11. data/lib/x_twitter_scraper/models/draw_detail.rb +2 -0
  12. data/lib/x_twitter_scraper/models/draw_export_params.rb +3 -1
  13. data/lib/x_twitter_scraper/models/draw_list_item.rb +2 -0
  14. data/lib/x_twitter_scraper/models/draw_list_params.rb +4 -3
  15. data/lib/x_twitter_scraper/models/draw_list_response.rb +3 -50
  16. data/lib/x_twitter_scraper/models/draw_retrieve_response.rb +8 -124
  17. data/lib/x_twitter_scraper/models/draw_run_response.rb +3 -32
  18. data/lib/x_twitter_scraper/models/error.rb +2 -0
  19. data/lib/x_twitter_scraper/models/event.rb +11 -18
  20. data/lib/x_twitter_scraper/models/event_detail.rb +7 -18
  21. data/lib/x_twitter_scraper/models/event_list_params.rb +10 -21
  22. data/lib/x_twitter_scraper/models/event_list_response.rb +3 -59
  23. data/lib/x_twitter_scraper/models/event_type.rb +1 -0
  24. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +9 -7
  25. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +5 -1
  26. data/lib/x_twitter_scraper/models/extraction_job.rb +11 -1
  27. data/lib/x_twitter_scraper/models/extraction_list_params.rb +10 -5
  28. data/lib/x_twitter_scraper/models/extraction_list_response.rb +3 -87
  29. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +4 -3
  30. data/lib/x_twitter_scraper/models/extraction_run_params.rb +3 -1
  31. data/lib/x_twitter_scraper/models/extraction_run_response.rb +10 -15
  32. data/lib/x_twitter_scraper/models/integration.rb +12 -32
  33. data/lib/x_twitter_scraper/models/integration_create_params.rb +8 -32
  34. data/lib/x_twitter_scraper/models/integration_delivery.rb +2 -0
  35. data/lib/x_twitter_scraper/models/integration_list_deliveries_params.rb +4 -1
  36. data/lib/x_twitter_scraper/models/integration_list_deliveries_response.rb +3 -67
  37. data/lib/x_twitter_scraper/models/integration_list_response.rb +3 -112
  38. data/lib/x_twitter_scraper/models/integration_update_params.rb +4 -19
  39. data/lib/x_twitter_scraper/models/monitor.rb +12 -17
  40. data/lib/x_twitter_scraper/models/monitor_create_params.rb +4 -19
  41. data/lib/x_twitter_scraper/models/monitor_create_response.rb +8 -17
  42. data/lib/x_twitter_scraper/models/monitor_list_response.rb +3 -60
  43. data/lib/x_twitter_scraper/models/monitor_update_params.rb +7 -19
  44. data/lib/x_twitter_scraper/models/paginated_tweets.rb +5 -96
  45. data/lib/x_twitter_scraper/models/paginated_users.rb +5 -73
  46. data/lib/x_twitter_scraper/models/radar_item.rb +2 -0
  47. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rb +20 -3
  48. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rb +3 -62
  49. data/lib/x_twitter_scraper/models/style_compare_response.rb +9 -134
  50. data/lib/x_twitter_scraper/models/style_delete_params.rb +4 -4
  51. data/lib/x_twitter_scraper/models/style_get_performance_params.rb +4 -4
  52. data/lib/x_twitter_scraper/models/style_list_response.rb +3 -32
  53. data/lib/x_twitter_scraper/models/style_profile.rb +3 -0
  54. data/lib/x_twitter_scraper/models/style_profile_summary.rb +2 -0
  55. data/lib/x_twitter_scraper/models/style_retrieve_params.rb +4 -4
  56. data/lib/x_twitter_scraper/models/style_update_params.rb +4 -4
  57. data/lib/x_twitter_scraper/models/trend_list_params.rb +2 -1
  58. data/lib/x_twitter_scraper/models/webhook.rb +11 -17
  59. data/lib/x_twitter_scraper/models/webhook_create_params.rb +4 -19
  60. data/lib/x_twitter_scraper/models/webhook_create_response.rb +8 -17
  61. data/lib/x_twitter_scraper/models/webhook_list_deliveries_response.rb +3 -56
  62. data/lib/x_twitter_scraper/models/webhook_list_response.rb +3 -54
  63. data/lib/x_twitter_scraper/models/webhook_update_params.rb +8 -19
  64. data/lib/x_twitter_scraper/models/winner.rb +2 -0
  65. data/lib/x_twitter_scraper/models/x/account_bulk_retry_params.rb +16 -0
  66. data/lib/x_twitter_scraper/models/x/account_bulk_retry_response.rb +19 -0
  67. data/lib/x_twitter_scraper/models/x/account_list_response.rb +3 -38
  68. data/lib/x_twitter_scraper/models/x/account_reauth_params.rb +4 -4
  69. data/lib/x_twitter_scraper/models/x/bookmark_list_params.rb +2 -2
  70. data/lib/x_twitter_scraper/models/x/communities/join_create_params.rb +2 -2
  71. data/lib/x_twitter_scraper/models/x/communities/join_delete_all_params.rb +2 -2
  72. data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +33 -0
  73. data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +6 -6
  74. data/lib/x_twitter_scraper/models/x/community_action_result.rb +2 -0
  75. data/lib/x_twitter_scraper/models/x/community_create_params.rb +2 -2
  76. data/lib/x_twitter_scraper/models/x/community_delete_params.rb +2 -2
  77. data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +6 -6
  78. data/lib/x_twitter_scraper/models/x/community_retrieve_moderators_params.rb +2 -2
  79. data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +2 -2
  80. data/lib/x_twitter_scraper/models/x/dm_retrieve_history_params.rb +2 -2
  81. data/lib/x_twitter_scraper/models/x/dm_send_params.rb +2 -2
  82. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +2 -2
  83. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +2 -2
  84. data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +2 -2
  85. data/lib/x_twitter_scraper/models/x/media_upload_params.rb +2 -2
  86. data/lib/x_twitter_scraper/models/x/profile_update_avatar_params.rb +2 -2
  87. data/lib/x_twitter_scraper/models/x/profile_update_banner_params.rb +2 -2
  88. data/lib/x_twitter_scraper/models/x/profile_update_params.rb +2 -2
  89. data/lib/x_twitter_scraper/models/x/search_tweet.rb +20 -1
  90. data/lib/x_twitter_scraper/models/x/tweet_author.rb +2 -0
  91. data/lib/x_twitter_scraper/models/x/tweet_delete_params.rb +6 -6
  92. data/lib/x_twitter_scraper/models/x/tweet_detail.rb +109 -1
  93. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +2 -2
  94. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +8 -8
  95. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +6 -6
  96. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +2 -2
  97. data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +2 -2
  98. data/lib/x_twitter_scraper/models/x/tweet_retrieve_params.rb +4 -4
  99. data/lib/x_twitter_scraper/models/x/tweet_retrieve_response.rb +9 -100
  100. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +2 -2
  101. data/lib/x_twitter_scraper/models/x/tweets/like_create_params.rb +6 -6
  102. data/lib/x_twitter_scraper/models/x/tweets/like_delete_params.rb +6 -6
  103. data/lib/x_twitter_scraper/models/x/tweets/retweet_create_params.rb +6 -6
  104. data/lib/x_twitter_scraper/models/x/tweets/retweet_delete_params.rb +6 -6
  105. data/lib/x_twitter_scraper/models/x/user_profile.rb +3 -0
  106. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +2 -2
  107. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +2 -2
  108. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +4 -4
  109. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +2 -2
  110. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +2 -2
  111. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +6 -6
  112. data/lib/x_twitter_scraper/models/x/user_retrieve_params.rb +4 -4
  113. data/lib/x_twitter_scraper/models/x/user_retrieve_search_params.rb +4 -4
  114. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +2 -2
  115. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +2 -2
  116. data/lib/x_twitter_scraper/models/x/users/follow_create_params.rb +6 -6
  117. data/lib/x_twitter_scraper/models/x/users/follow_delete_all_params.rb +6 -6
  118. data/lib/x_twitter_scraper/models/x/x_account.rb +2 -0
  119. data/lib/x_twitter_scraper/models/x/x_account_detail.rb +3 -0
  120. data/lib/x_twitter_scraper/models/x_get_article_response.rb +5 -38
  121. data/lib/x_twitter_scraper/models/x_get_home_timeline_params.rb +2 -2
  122. data/lib/x_twitter_scraper/models/x_get_notifications_params.rb +2 -2
  123. data/lib/x_twitter_scraper/models/x_get_trends_response.rb +57 -0
  124. data/lib/x_twitter_scraper/resources/drafts.rb +5 -5
  125. data/lib/x_twitter_scraper/resources/draws.rb +3 -3
  126. data/lib/x_twitter_scraper/resources/events.rb +6 -6
  127. data/lib/x_twitter_scraper/resources/extractions.rb +12 -12
  128. data/lib/x_twitter_scraper/resources/integrations.rb +11 -11
  129. data/lib/x_twitter_scraper/resources/monitors.rb +6 -6
  130. data/lib/x_twitter_scraper/resources/radar.rb +1 -1
  131. data/lib/x_twitter_scraper/resources/styles.rb +22 -22
  132. data/lib/x_twitter_scraper/resources/support/tickets.rb +8 -3
  133. data/lib/x_twitter_scraper/resources/trends.rb +2 -2
  134. data/lib/x_twitter_scraper/resources/webhooks.rb +4 -4
  135. data/lib/x_twitter_scraper/resources/x/accounts.rb +24 -4
  136. data/lib/x_twitter_scraper/resources/x/bookmarks.rb +3 -3
  137. data/lib/x_twitter_scraper/resources/x/communities/join.rb +6 -6
  138. data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +30 -5
  139. data/lib/x_twitter_scraper/resources/x/communities.rb +12 -12
  140. data/lib/x_twitter_scraper/resources/x/dm.rb +2 -2
  141. data/lib/x_twitter_scraper/resources/x/lists.rb +11 -11
  142. data/lib/x_twitter_scraper/resources/x/media.rb +1 -1
  143. data/lib/x_twitter_scraper/resources/x/profile.rb +3 -3
  144. data/lib/x_twitter_scraper/resources/x/tweets/like.rb +10 -10
  145. data/lib/x_twitter_scraper/resources/x/tweets/retweet.rb +10 -10
  146. data/lib/x_twitter_scraper/resources/x/tweets.rb +46 -39
  147. data/lib/x_twitter_scraper/resources/x/users/follow.rb +10 -10
  148. data/lib/x_twitter_scraper/resources/x/users.rb +45 -45
  149. data/lib/x_twitter_scraper/resources/x.rb +13 -7
  150. data/lib/x_twitter_scraper/version.rb +1 -1
  151. data/lib/x_twitter_scraper.rb +4 -28
  152. data/rbi/x_twitter_scraper/models/api_key.rbi +1 -0
  153. data/rbi/x_twitter_scraper/models/api_key_list_response.rbi +5 -78
  154. data/rbi/x_twitter_scraper/models/delivery.rbi +1 -0
  155. data/rbi/x_twitter_scraper/models/draft.rbi +1 -0
  156. data/rbi/x_twitter_scraper/models/draft_detail.rbi +1 -0
  157. data/rbi/x_twitter_scraper/models/draft_list_params.rbi +2 -0
  158. data/rbi/x_twitter_scraper/models/draft_list_response.rbi +3 -63
  159. data/rbi/x_twitter_scraper/models/draw_detail.rbi +1 -0
  160. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +3 -0
  161. data/rbi/x_twitter_scraper/models/draw_list_item.rbi +1 -0
  162. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +4 -2
  163. data/rbi/x_twitter_scraper/models/draw_list_response.rbi +3 -76
  164. data/rbi/x_twitter_scraper/models/draw_retrieve_response.rbi +13 -178
  165. data/rbi/x_twitter_scraper/models/draw_run_response.rbi +3 -52
  166. data/rbi/x_twitter_scraper/models/error.rbi +1 -0
  167. data/rbi/x_twitter_scraper/models/event.rbi +14 -31
  168. data/rbi/x_twitter_scraper/models/event_detail.rbi +6 -47
  169. data/rbi/x_twitter_scraper/models/event_list_params.rbi +12 -63
  170. data/rbi/x_twitter_scraper/models/event_list_response.rbi +3 -122
  171. data/rbi/x_twitter_scraper/models/event_type.rbi +1 -0
  172. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +9 -6
  173. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +8 -1
  174. data/rbi/x_twitter_scraper/models/extraction_job.rbi +8 -4
  175. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +10 -2
  176. data/rbi/x_twitter_scraper/models/extraction_list_response.rbi +3 -254
  177. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +4 -2
  178. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +3 -0
  179. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +12 -40
  180. data/rbi/x_twitter_scraper/models/integration.rbi +12 -81
  181. data/rbi/x_twitter_scraper/models/integration_create_params.rbi +9 -96
  182. data/rbi/x_twitter_scraper/models/integration_delivery.rbi +1 -0
  183. data/rbi/x_twitter_scraper/models/integration_list_deliveries_params.rbi +7 -1
  184. data/rbi/x_twitter_scraper/models/integration_list_deliveries_response.rbi +3 -119
  185. data/rbi/x_twitter_scraper/models/integration_list_response.rbi +3 -227
  186. data/rbi/x_twitter_scraper/models/integration_update_params.rbi +6 -74
  187. data/rbi/x_twitter_scraper/models/monitor.rbi +6 -48
  188. data/rbi/x_twitter_scraper/models/monitor_create_params.rbi +5 -62
  189. data/rbi/x_twitter_scraper/models/monitor_create_response.rbi +12 -70
  190. data/rbi/x_twitter_scraper/models/monitor_list_response.rbi +3 -141
  191. data/rbi/x_twitter_scraper/models/monitor_update_params.rbi +12 -69
  192. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -169
  193. data/rbi/x_twitter_scraper/models/paginated_users.rbi +4 -120
  194. data/rbi/x_twitter_scraper/models/radar_item.rbi +1 -0
  195. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbi +78 -4
  196. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbi +3 -108
  197. data/rbi/x_twitter_scraper/models/style_compare_response.rbi +16 -259
  198. data/rbi/x_twitter_scraper/models/style_delete_params.rbi +4 -4
  199. data/rbi/x_twitter_scraper/models/style_get_performance_params.rbi +4 -4
  200. data/rbi/x_twitter_scraper/models/style_list_response.rbi +3 -54
  201. data/rbi/x_twitter_scraper/models/style_profile.rbi +1 -0
  202. data/rbi/x_twitter_scraper/models/style_profile_summary.rbi +1 -0
  203. data/rbi/x_twitter_scraper/models/style_retrieve_params.rbi +4 -4
  204. data/rbi/x_twitter_scraper/models/style_update_params.rbi +4 -4
  205. data/rbi/x_twitter_scraper/models/trend_list_params.rbi +2 -0
  206. data/rbi/x_twitter_scraper/models/webhook.rbi +13 -49
  207. data/rbi/x_twitter_scraper/models/webhook_create_params.rbi +5 -62
  208. data/rbi/x_twitter_scraper/models/webhook_create_response.rbi +12 -70
  209. data/rbi/x_twitter_scraper/models/webhook_list_deliveries_response.rbi +5 -105
  210. data/rbi/x_twitter_scraper/models/webhook_list_response.rbi +5 -134
  211. data/rbi/x_twitter_scraper/models/webhook_update_params.rbi +6 -68
  212. data/rbi/x_twitter_scraper/models/winner.rbi +1 -0
  213. data/rbi/x_twitter_scraper/models/x/account_bulk_retry_params.rbi +34 -0
  214. data/rbi/x_twitter_scraper/models/x/account_bulk_retry_response.rbi +32 -0
  215. data/rbi/x_twitter_scraper/models/x/account_list_response.rbi +3 -68
  216. data/rbi/x_twitter_scraper/models/x/account_reauth_params.rbi +4 -4
  217. data/rbi/x_twitter_scraper/models/x/bookmark_list_params.rbi +2 -2
  218. data/rbi/x_twitter_scraper/models/x/communities/join_create_params.rbi +2 -2
  219. data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_params.rbi +2 -2
  220. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +59 -0
  221. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +6 -6
  222. data/rbi/x_twitter_scraper/models/x/community_action_result.rbi +1 -0
  223. data/rbi/x_twitter_scraper/models/x/community_create_params.rbi +2 -2
  224. data/rbi/x_twitter_scraper/models/x/community_delete_params.rbi +2 -2
  225. data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +6 -6
  226. data/rbi/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbi +2 -2
  227. data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +2 -2
  228. data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_params.rbi +2 -2
  229. data/rbi/x_twitter_scraper/models/x/dm_send_params.rbi +2 -2
  230. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +2 -2
  231. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +2 -2
  232. data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +2 -2
  233. data/rbi/x_twitter_scraper/models/x/media_upload_params.rbi +2 -2
  234. data/rbi/x_twitter_scraper/models/x/profile_update_avatar_params.rbi +2 -2
  235. data/rbi/x_twitter_scraper/models/x/profile_update_banner_params.rbi +2 -2
  236. data/rbi/x_twitter_scraper/models/x/profile_update_params.rbi +2 -2
  237. data/rbi/x_twitter_scraper/models/x/search_tweet.rbi +12 -0
  238. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +1 -0
  239. data/rbi/x_twitter_scraper/models/x/tweet_delete_params.rbi +6 -6
  240. data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +195 -3
  241. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +2 -2
  242. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +8 -8
  243. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +6 -6
  244. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +2 -2
  245. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +2 -2
  246. data/rbi/x_twitter_scraper/models/x/tweet_retrieve_params.rbi +4 -7
  247. data/rbi/x_twitter_scraper/models/x/tweet_retrieve_response.rbi +16 -171
  248. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +2 -2
  249. data/rbi/x_twitter_scraper/models/x/tweets/like_create_params.rbi +6 -6
  250. data/rbi/x_twitter_scraper/models/x/tweets/like_delete_params.rbi +6 -6
  251. data/rbi/x_twitter_scraper/models/x/tweets/retweet_create_params.rbi +6 -6
  252. data/rbi/x_twitter_scraper/models/x/tweets/retweet_delete_params.rbi +6 -6
  253. data/rbi/x_twitter_scraper/models/x/user_profile.rbi +1 -0
  254. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +2 -2
  255. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +2 -2
  256. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +4 -4
  257. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +2 -2
  258. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +2 -2
  259. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +6 -6
  260. data/rbi/x_twitter_scraper/models/x/user_retrieve_params.rbi +4 -7
  261. data/rbi/x_twitter_scraper/models/x/user_retrieve_search_params.rbi +4 -4
  262. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +2 -2
  263. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +2 -2
  264. data/rbi/x_twitter_scraper/models/x/users/follow_create_params.rbi +6 -6
  265. data/rbi/x_twitter_scraper/models/x/users/follow_delete_all_params.rbi +6 -6
  266. data/rbi/x_twitter_scraper/models/x/x_account.rbi +1 -0
  267. data/rbi/x_twitter_scraper/models/x/x_account_detail.rbi +1 -0
  268. data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +10 -71
  269. data/rbi/x_twitter_scraper/models/x_get_home_timeline_params.rbi +2 -2
  270. data/rbi/x_twitter_scraper/models/x_get_notifications_params.rbi +2 -2
  271. data/rbi/x_twitter_scraper/models/x_get_trends_response.rbi +102 -0
  272. data/rbi/x_twitter_scraper/resources/drafts.rbi +3 -2
  273. data/rbi/x_twitter_scraper/resources/draws.rbi +3 -1
  274. data/rbi/x_twitter_scraper/resources/events.rbi +6 -3
  275. data/rbi/x_twitter_scraper/resources/extractions.rbi +12 -5
  276. data/rbi/x_twitter_scraper/resources/integrations.rbi +10 -13
  277. data/rbi/x_twitter_scraper/resources/monitors.rbi +6 -6
  278. data/rbi/x_twitter_scraper/resources/radar.rbi +2 -1
  279. data/rbi/x_twitter_scraper/resources/styles.rbi +15 -15
  280. data/rbi/x_twitter_scraper/resources/support/tickets.rbi +17 -3
  281. data/rbi/x_twitter_scraper/resources/trends.rbi +2 -1
  282. data/rbi/x_twitter_scraper/resources/webhooks.rbi +5 -5
  283. data/rbi/x_twitter_scraper/resources/x/accounts.rbi +13 -3
  284. data/rbi/x_twitter_scraper/resources/x/bookmarks.rbi +2 -2
  285. data/rbi/x_twitter_scraper/resources/x/communities/join.rbi +4 -8
  286. data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +21 -4
  287. data/rbi/x_twitter_scraper/resources/x/communities.rbi +9 -9
  288. data/rbi/x_twitter_scraper/resources/x/dm.rbi +2 -2
  289. data/rbi/x_twitter_scraper/resources/x/lists.rbi +8 -8
  290. data/rbi/x_twitter_scraper/resources/x/media.rbi +1 -1
  291. data/rbi/x_twitter_scraper/resources/x/profile.rbi +3 -3
  292. data/rbi/x_twitter_scraper/resources/x/tweets/like.rbi +8 -6
  293. data/rbi/x_twitter_scraper/resources/x/tweets/retweet.rbi +8 -6
  294. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +33 -28
  295. data/rbi/x_twitter_scraper/resources/x/users/follow.rbi +6 -6
  296. data/rbi/x_twitter_scraper/resources/x/users.rbi +33 -34
  297. data/rbi/x_twitter_scraper/resources/x.rbi +11 -5
  298. data/sig/x_twitter_scraper/models/api_key_list_response.rbs +4 -53
  299. data/sig/x_twitter_scraper/models/draft_list_response.rbs +4 -45
  300. data/sig/x_twitter_scraper/models/draw_list_response.rbs +4 -53
  301. data/sig/x_twitter_scraper/models/draw_retrieve_response.rbs +8 -124
  302. data/sig/x_twitter_scraper/models/draw_run_response.rbs +4 -36
  303. data/sig/x_twitter_scraper/models/event.rbs +4 -25
  304. data/sig/x_twitter_scraper/models/event_detail.rbs +4 -25
  305. data/sig/x_twitter_scraper/models/event_list_params.rbs +6 -27
  306. data/sig/x_twitter_scraper/models/event_list_response.rbs +4 -67
  307. data/sig/x_twitter_scraper/models/extraction_list_response.rbs +4 -109
  308. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +5 -15
  309. data/sig/x_twitter_scraper/models/integration.rbs +9 -40
  310. data/sig/x_twitter_scraper/models/integration_create_params.rbs +8 -39
  311. data/sig/x_twitter_scraper/models/integration_list_deliveries_response.rbs +4 -78
  312. data/sig/x_twitter_scraper/models/integration_list_response.rbs +4 -114
  313. data/sig/x_twitter_scraper/models/integration_update_params.rbs +6 -27
  314. data/sig/x_twitter_scraper/models/monitor.rbs +4 -25
  315. data/sig/x_twitter_scraper/models/monitor_create_params.rbs +4 -25
  316. data/sig/x_twitter_scraper/models/monitor_create_response.rbs +4 -25
  317. data/sig/x_twitter_scraper/models/monitor_list_response.rbs +4 -70
  318. data/sig/x_twitter_scraper/models/monitor_update_params.rbs +6 -27
  319. data/sig/x_twitter_scraper/models/paginated_tweets.rbs +4 -113
  320. data/sig/x_twitter_scraper/models/paginated_users.rbs +4 -87
  321. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbs +30 -5
  322. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbs +4 -70
  323. data/sig/x_twitter_scraper/models/style_compare_response.rbs +8 -154
  324. data/sig/x_twitter_scraper/models/style_delete_params.rbs +4 -4
  325. data/sig/x_twitter_scraper/models/style_get_performance_params.rbs +4 -4
  326. data/sig/x_twitter_scraper/models/style_list_response.rbs +4 -38
  327. data/sig/x_twitter_scraper/models/style_retrieve_params.rbs +4 -4
  328. data/sig/x_twitter_scraper/models/style_update_params.rbs +4 -4
  329. data/sig/x_twitter_scraper/models/webhook.rbs +4 -25
  330. data/sig/x_twitter_scraper/models/webhook_create_params.rbs +4 -28
  331. data/sig/x_twitter_scraper/models/webhook_create_response.rbs +4 -25
  332. data/sig/x_twitter_scraper/models/webhook_list_deliveries_response.rbs +4 -68
  333. data/sig/x_twitter_scraper/models/webhook_list_response.rbs +4 -69
  334. data/sig/x_twitter_scraper/models/webhook_update_params.rbs +6 -27
  335. data/sig/x_twitter_scraper/models/x/account_bulk_retry_params.rbs +19 -0
  336. data/sig/x_twitter_scraper/models/x/account_bulk_retry_response.rbs +15 -0
  337. data/sig/x_twitter_scraper/models/x/account_list_response.rbs +4 -45
  338. data/sig/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbs +34 -0
  339. data/sig/x_twitter_scraper/models/x/search_tweet.rbs +7 -0
  340. data/sig/x_twitter_scraper/models/x/tweet_delete_params.rbs +4 -4
  341. data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +108 -3
  342. data/sig/x_twitter_scraper/models/x/tweet_retrieve_params.rbs +4 -5
  343. data/sig/x_twitter_scraper/models/x/tweet_retrieve_response.rbs +10 -108
  344. data/sig/x_twitter_scraper/models/x/tweets/like_create_params.rbs +4 -4
  345. data/sig/x_twitter_scraper/models/x/tweets/like_delete_params.rbs +4 -4
  346. data/sig/x_twitter_scraper/models/x/tweets/retweet_create_params.rbs +4 -4
  347. data/sig/x_twitter_scraper/models/x/tweets/retweet_delete_params.rbs +4 -4
  348. data/sig/x_twitter_scraper/models/x/user_retrieve_params.rbs +4 -5
  349. data/sig/x_twitter_scraper/models/x/users/follow_create_params.rbs +4 -4
  350. data/sig/x_twitter_scraper/models/x/users/follow_delete_all_params.rbs +4 -4
  351. data/sig/x_twitter_scraper/models/x_get_article_response.rbs +6 -45
  352. data/sig/x_twitter_scraper/models/x_get_trends_response.rbs +63 -0
  353. data/sig/x_twitter_scraper/resources/drafts.rbs +2 -2
  354. data/sig/x_twitter_scraper/resources/events.rbs +2 -2
  355. data/sig/x_twitter_scraper/resources/integrations.rbs +6 -6
  356. data/sig/x_twitter_scraper/resources/monitors.rbs +4 -4
  357. data/sig/x_twitter_scraper/resources/radar.rbs +1 -1
  358. data/sig/x_twitter_scraper/resources/styles.rbs +7 -7
  359. data/sig/x_twitter_scraper/resources/webhooks.rbs +3 -3
  360. data/sig/x_twitter_scraper/resources/x/accounts.rbs +5 -1
  361. data/sig/x_twitter_scraper/resources/x/bookmarks.rbs +1 -1
  362. data/sig/x_twitter_scraper/resources/x/communities/join.rbs +2 -2
  363. data/sig/x_twitter_scraper/resources/x/communities/tweets.rbs +7 -1
  364. data/sig/x_twitter_scraper/resources/x/communities.rbs +3 -3
  365. data/sig/x_twitter_scraper/resources/x/lists.rbs +3 -3
  366. data/sig/x_twitter_scraper/resources/x/tweets/like.rbs +2 -2
  367. data/sig/x_twitter_scraper/resources/x/tweets/retweet.rbs +2 -2
  368. data/sig/x_twitter_scraper/resources/x/tweets.rbs +9 -9
  369. data/sig/x_twitter_scraper/resources/x/users/follow.rbs +2 -2
  370. data/sig/x_twitter_scraper/resources/x/users.rbs +12 -12
  371. data/sig/x_twitter_scraper/resources/x.rbs +4 -2
  372. metadata +17 -88
  373. data/lib/x_twitter_scraper/models/draft_create_response.rb +0 -46
  374. data/lib/x_twitter_scraper/models/draft_retrieve_response.rb +0 -46
  375. data/lib/x_twitter_scraper/models/event_retrieve_response.rb +0 -74
  376. data/lib/x_twitter_scraper/models/integration_create_response.rb +0 -114
  377. data/lib/x_twitter_scraper/models/integration_retrieve_response.rb +0 -114
  378. data/lib/x_twitter_scraper/models/integration_update_response.rb +0 -114
  379. data/lib/x_twitter_scraper/models/monitor_retrieve_response.rb +0 -62
  380. data/lib/x_twitter_scraper/models/monitor_update_response.rb +0 -62
  381. data/lib/x_twitter_scraper/models/style_analyze_response.rb +0 -69
  382. data/lib/x_twitter_scraper/models/style_retrieve_response.rb +0 -69
  383. data/lib/x_twitter_scraper/models/style_update_response.rb +0 -69
  384. data/lib/x_twitter_scraper/models/webhook_update_response.rb +0 -56
  385. data/lib/x_twitter_scraper/models/x/account_retrieve_response.rb +0 -60
  386. data/lib/x_twitter_scraper/models/x/bookmark_list_response.rb +0 -124
  387. data/lib/x_twitter_scraper/models/x/communities/join_create_response.rb +0 -32
  388. data/lib/x_twitter_scraper/models/x/communities/join_delete_all_response.rb +0 -32
  389. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_response.rb +0 -101
  390. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_response.rb +0 -124
  391. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +0 -124
  392. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_response.rb +0 -101
  393. data/lib/x_twitter_scraper/models/x/tweet_get_thread_response.rb +0 -124
  394. data/lib/x_twitter_scraper/models/x/tweet_search_response.rb +0 -124
  395. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_response.rb +0 -101
  396. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_response.rb +0 -124
  397. data/lib/x_twitter_scraper/models/x/user_retrieve_media_response.rb +0 -124
  398. data/lib/x_twitter_scraper/models/x/user_retrieve_response.rb +0 -78
  399. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_response.rb +0 -124
  400. data/lib/x_twitter_scraper/models/x_get_home_timeline_response.rb +0 -122
  401. data/rbi/x_twitter_scraper/models/draft_create_response.rbi +0 -67
  402. data/rbi/x_twitter_scraper/models/draft_retrieve_response.rbi +0 -67
  403. data/rbi/x_twitter_scraper/models/event_retrieve_response.rbi +0 -135
  404. data/rbi/x_twitter_scraper/models/integration_create_response.rbi +0 -215
  405. data/rbi/x_twitter_scraper/models/integration_retrieve_response.rbi +0 -215
  406. data/rbi/x_twitter_scraper/models/integration_update_response.rbi +0 -215
  407. data/rbi/x_twitter_scraper/models/monitor_retrieve_response.rbi +0 -134
  408. data/rbi/x_twitter_scraper/models/monitor_update_response.rbi +0 -134
  409. data/rbi/x_twitter_scraper/models/style_analyze_response.rbi +0 -120
  410. data/rbi/x_twitter_scraper/models/style_retrieve_response.rbi +0 -120
  411. data/rbi/x_twitter_scraper/models/style_update_response.rbi +0 -120
  412. data/rbi/x_twitter_scraper/models/webhook_update_response.rbi +0 -122
  413. data/rbi/x_twitter_scraper/models/x/account_retrieve_response.rbi +0 -91
  414. data/rbi/x_twitter_scraper/models/x/bookmark_list_response.rbi +0 -231
  415. data/rbi/x_twitter_scraper/models/x/communities/join_create_response.rbi +0 -50
  416. data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_response.rbi +0 -50
  417. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_response.rbi +0 -177
  418. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_response.rbi +0 -231
  419. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +0 -231
  420. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_response.rbi +0 -177
  421. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_response.rbi +0 -231
  422. data/rbi/x_twitter_scraper/models/x/tweet_search_response.rbi +0 -229
  423. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_response.rbi +0 -177
  424. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_response.rbi +0 -233
  425. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_response.rbi +0 -233
  426. data/rbi/x_twitter_scraper/models/x/user_retrieve_response.rbi +0 -124
  427. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_response.rbi +0 -233
  428. data/rbi/x_twitter_scraper/models/x_get_home_timeline_response.rbi +0 -227
  429. data/sig/x_twitter_scraper/models/draft_create_response.rbs +0 -49
  430. data/sig/x_twitter_scraper/models/draft_retrieve_response.rbs +0 -49
  431. data/sig/x_twitter_scraper/models/event_retrieve_response.rbs +0 -73
  432. data/sig/x_twitter_scraper/models/integration_create_response.rbs +0 -109
  433. data/sig/x_twitter_scraper/models/integration_retrieve_response.rbs +0 -109
  434. data/sig/x_twitter_scraper/models/integration_update_response.rbs +0 -109
  435. data/sig/x_twitter_scraper/models/monitor_retrieve_response.rbs +0 -66
  436. data/sig/x_twitter_scraper/models/monitor_update_response.rbs +0 -66
  437. data/sig/x_twitter_scraper/models/style_analyze_response.rbs +0 -76
  438. data/sig/x_twitter_scraper/models/style_retrieve_response.rbs +0 -76
  439. data/sig/x_twitter_scraper/models/style_update_response.rbs +0 -76
  440. data/sig/x_twitter_scraper/models/webhook_update_response.rbs +0 -61
  441. data/sig/x_twitter_scraper/models/x/account_retrieve_response.rbs +0 -63
  442. data/sig/x_twitter_scraper/models/x/bookmark_list_response.rbs +0 -141
  443. data/sig/x_twitter_scraper/models/x/communities/join_create_response.rbs +0 -30
  444. data/sig/x_twitter_scraper/models/x/communities/join_delete_all_response.rbs +0 -30
  445. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_response.rbs +0 -115
  446. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_response.rbs +0 -141
  447. data/sig/x_twitter_scraper/models/x/tweet_get_replies_response.rbs +0 -141
  448. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_response.rbs +0 -115
  449. data/sig/x_twitter_scraper/models/x/tweet_get_thread_response.rbs +0 -141
  450. data/sig/x_twitter_scraper/models/x/tweet_search_response.rbs +0 -141
  451. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_response.rbs +0 -115
  452. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_response.rbs +0 -141
  453. data/sig/x_twitter_scraper/models/x/user_retrieve_media_response.rbs +0 -141
  454. data/sig/x_twitter_scraper/models/x/user_retrieve_response.rbs +0 -88
  455. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_response.rbs +0 -141
  456. data/sig/x_twitter_scraper/models/x_get_home_timeline_response.rbs +0 -139
@@ -48,18 +48,19 @@ module XTwitterScraper
48
48
 
49
49
  # Look up tweet
50
50
  #
51
- # @overload retrieve(tweet_id, request_options: {})
51
+ # @overload retrieve(id, request_options: {})
52
+ #
53
+ # @param id [String] Tweet ID
52
54
  #
53
- # @param tweet_id [String]
54
55
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
55
56
  #
56
57
  # @return [XTwitterScraper::Models::X::TweetRetrieveResponse]
57
58
  #
58
59
  # @see XTwitterScraper::Models::X::TweetRetrieveParams
59
- def retrieve(tweet_id, params = {})
60
+ def retrieve(id, params = {})
60
61
  @client.request(
61
62
  method: :get,
62
- path: ["x/tweets/%1$s", tweet_id],
63
+ path: ["x/tweets/%1$s", id],
63
64
  model: XTwitterScraper::Models::X::TweetRetrieveResponse,
64
65
  options: params[:request_options]
65
66
  )
@@ -73,33 +74,39 @@ module XTwitterScraper
73
74
  #
74
75
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
75
76
  #
76
- # @return [nil]
77
+ # @return [XTwitterScraper::Models::PaginatedTweets]
77
78
  #
78
79
  # @see XTwitterScraper::Models::X::TweetListParams
79
80
  def list(params)
80
81
  parsed, options = XTwitterScraper::X::TweetListParams.dump_request(params)
81
82
  query = XTwitterScraper::Internal::Util.encode_query_params(parsed)
82
- @client.request(method: :get, path: "x/tweets", query: query, model: NilClass, options: options)
83
+ @client.request(
84
+ method: :get,
85
+ path: "x/tweets",
86
+ query: query,
87
+ model: XTwitterScraper::PaginatedTweets,
88
+ options: options
89
+ )
83
90
  end
84
91
 
85
92
  # Delete tweet
86
93
  #
87
- # @overload delete(tweet_id, account:, request_options: {})
94
+ # @overload delete(id, account:, request_options: {})
88
95
  #
89
- # @param tweet_id [String]
96
+ # @param id [String] Tweet ID to delete
90
97
  #
91
- # @param account [String] X account (@username or account ID)
98
+ # @param account [String] X account identifier (@username or account ID)
92
99
  #
93
100
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
94
101
  #
95
102
  # @return [XTwitterScraper::Models::X::TweetDeleteResponse]
96
103
  #
97
104
  # @see XTwitterScraper::Models::X::TweetDeleteParams
98
- def delete(tweet_id, params)
105
+ def delete(id, params)
99
106
  parsed, options = XTwitterScraper::X::TweetDeleteParams.dump_request(params)
100
107
  @client.request(
101
108
  method: :delete,
102
- path: ["x/tweets/%1$s", tweet_id],
109
+ path: ["x/tweets/%1$s", id],
103
110
  body: parsed,
104
111
  model: XTwitterScraper::Models::X::TweetDeleteResponse,
105
112
  options: options
@@ -110,13 +117,13 @@ module XTwitterScraper
110
117
  #
111
118
  # @overload get_favoriters(id, cursor: nil, request_options: {})
112
119
  #
113
- # @param id [String] Tweet ID
120
+ # @param id [String] Tweet ID to get favoriters
114
121
  #
115
- # @param cursor [String] Pagination cursor from previous response
122
+ # @param cursor [String] Pagination cursor for favoriters
116
123
  #
117
124
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
118
125
  #
119
- # @return [XTwitterScraper::Models::X::TweetGetFavoritersResponse]
126
+ # @return [XTwitterScraper::Models::PaginatedUsers]
120
127
  #
121
128
  # @see XTwitterScraper::Models::X::TweetGetFavoritersParams
122
129
  def get_favoriters(id, params = {})
@@ -126,7 +133,7 @@ module XTwitterScraper
126
133
  method: :get,
127
134
  path: ["x/tweets/%1$s/favoriters", id],
128
135
  query: query,
129
- model: XTwitterScraper::Models::X::TweetGetFavoritersResponse,
136
+ model: XTwitterScraper::PaginatedUsers,
130
137
  options: options
131
138
  )
132
139
  end
@@ -135,19 +142,19 @@ module XTwitterScraper
135
142
  #
136
143
  # @overload get_quotes(id, cursor: nil, include_replies: nil, since_time: nil, until_time: nil, request_options: {})
137
144
  #
138
- # @param id [String] Tweet ID
145
+ # @param id [String] Tweet ID to get quotes
139
146
  #
140
- # @param cursor [String] Pagination cursor
147
+ # @param cursor [String] Pagination cursor for quote tweets
141
148
  #
142
- # @param include_replies [Boolean] Include replies (default false)
149
+ # @param include_replies [Boolean] Include reply quotes (default false)
143
150
  #
144
- # @param since_time [String] Unix timestamp - filter after
151
+ # @param since_time [String] Unix timestamp - return quotes posted after this time
145
152
  #
146
- # @param until_time [String] Unix timestamp - filter before
153
+ # @param until_time [String] Unix timestamp - return quotes posted before this time
147
154
  #
148
155
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
149
156
  #
150
- # @return [XTwitterScraper::Models::X::TweetGetQuotesResponse]
157
+ # @return [XTwitterScraper::Models::PaginatedTweets]
151
158
  #
152
159
  # @see XTwitterScraper::Models::X::TweetGetQuotesParams
153
160
  def get_quotes(id, params = {})
@@ -161,7 +168,7 @@ module XTwitterScraper
161
168
  since_time: "sinceTime",
162
169
  until_time: "untilTime"
163
170
  ),
164
- model: XTwitterScraper::Models::X::TweetGetQuotesResponse,
171
+ model: XTwitterScraper::PaginatedTweets,
165
172
  options: options
166
173
  )
167
174
  end
@@ -170,17 +177,17 @@ module XTwitterScraper
170
177
  #
171
178
  # @overload get_replies(id, cursor: nil, since_time: nil, until_time: nil, request_options: {})
172
179
  #
173
- # @param id [String] Tweet ID
180
+ # @param id [String] Tweet ID to get replies
174
181
  #
175
- # @param cursor [String] Pagination cursor
182
+ # @param cursor [String] Pagination cursor for tweet replies
176
183
  #
177
- # @param since_time [String] Unix timestamp - filter after
184
+ # @param since_time [String] Unix timestamp - return replies posted after this time
178
185
  #
179
- # @param until_time [String] Unix timestamp - filter before
186
+ # @param until_time [String] Unix timestamp - return replies posted before this time
180
187
  #
181
188
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
182
189
  #
183
- # @return [XTwitterScraper::Models::X::TweetGetRepliesResponse]
190
+ # @return [XTwitterScraper::Models::PaginatedTweets]
184
191
  #
185
192
  # @see XTwitterScraper::Models::X::TweetGetRepliesParams
186
193
  def get_replies(id, params = {})
@@ -190,7 +197,7 @@ module XTwitterScraper
190
197
  method: :get,
191
198
  path: ["x/tweets/%1$s/replies", id],
192
199
  query: query.transform_keys(since_time: "sinceTime", until_time: "untilTime"),
193
- model: XTwitterScraper::Models::X::TweetGetRepliesResponse,
200
+ model: XTwitterScraper::PaginatedTweets,
194
201
  options: options
195
202
  )
196
203
  end
@@ -199,13 +206,13 @@ module XTwitterScraper
199
206
  #
200
207
  # @overload get_retweeters(id, cursor: nil, request_options: {})
201
208
  #
202
- # @param id [String] Tweet ID
209
+ # @param id [String] Tweet ID to get retweeters
203
210
  #
204
- # @param cursor [String] Pagination cursor
211
+ # @param cursor [String] Pagination cursor for retweeters
205
212
  #
206
213
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
207
214
  #
208
- # @return [XTwitterScraper::Models::X::TweetGetRetweetersResponse]
215
+ # @return [XTwitterScraper::Models::PaginatedUsers]
209
216
  #
210
217
  # @see XTwitterScraper::Models::X::TweetGetRetweetersParams
211
218
  def get_retweeters(id, params = {})
@@ -215,7 +222,7 @@ module XTwitterScraper
215
222
  method: :get,
216
223
  path: ["x/tweets/%1$s/retweeters", id],
217
224
  query: query,
218
- model: XTwitterScraper::Models::X::TweetGetRetweetersResponse,
225
+ model: XTwitterScraper::PaginatedUsers,
219
226
  options: options
220
227
  )
221
228
  end
@@ -224,13 +231,13 @@ module XTwitterScraper
224
231
  #
225
232
  # @overload get_thread(id, cursor: nil, request_options: {})
226
233
  #
227
- # @param id [String] Tweet ID
234
+ # @param id [String] Tweet ID to get thread context
228
235
  #
229
- # @param cursor [String] Pagination cursor
236
+ # @param cursor [String] Pagination cursor for thread tweets
230
237
  #
231
238
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
232
239
  #
233
- # @return [XTwitterScraper::Models::X::TweetGetThreadResponse]
240
+ # @return [XTwitterScraper::Models::PaginatedTweets]
234
241
  #
235
242
  # @see XTwitterScraper::Models::X::TweetGetThreadParams
236
243
  def get_thread(id, params = {})
@@ -240,7 +247,7 @@ module XTwitterScraper
240
247
  method: :get,
241
248
  path: ["x/tweets/%1$s/thread", id],
242
249
  query: query,
243
- model: XTwitterScraper::Models::X::TweetGetThreadResponse,
250
+ model: XTwitterScraper::PaginatedTweets,
244
251
  options: options
245
252
  )
246
253
  end
@@ -253,7 +260,7 @@ module XTwitterScraper
253
260
  #
254
261
  # @param cursor [String] Pagination cursor from previous response
255
262
  #
256
- # @param limit [Integer] Deprecated use cursor-based pagination instead
263
+ # @param limit [Integer] Max tweets to return (server paginates internally). Omit for single page (~20).
257
264
  #
258
265
  # @param query_type [Symbol, XTwitterScraper::Models::X::TweetSearchParams::QueryType] Sort order — Latest (chronological) or Top (engagement-ranked)
259
266
  #
@@ -263,7 +270,7 @@ module XTwitterScraper
263
270
  #
264
271
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
265
272
  #
266
- # @return [XTwitterScraper::Models::X::TweetSearchResponse]
273
+ # @return [XTwitterScraper::Models::PaginatedTweets]
267
274
  #
268
275
  # @see XTwitterScraper::Models::X::TweetSearchParams
269
276
  def search(params)
@@ -277,7 +284,7 @@ module XTwitterScraper
277
284
  since_time: "sinceTime",
278
285
  until_time: "untilTime"
279
286
  ),
280
- model: XTwitterScraper::Models::X::TweetSearchResponse,
287
+ model: XTwitterScraper::PaginatedTweets,
281
288
  options: options
282
289
  )
283
290
  end
@@ -8,22 +8,22 @@ module XTwitterScraper
8
8
  class Follow
9
9
  # Follow user
10
10
  #
11
- # @overload create(user_id, account:, request_options: {})
11
+ # @overload create(id, account:, request_options: {})
12
12
  #
13
- # @param user_id [String] User ID to follow
13
+ # @param id [String] User ID to follow
14
14
  #
15
- # @param account [String] X account (@username or account ID)
15
+ # @param account [String] X account identifier (@username or account ID)
16
16
  #
17
17
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
18
18
  #
19
19
  # @return [XTwitterScraper::Models::X::Users::FollowCreateResponse]
20
20
  #
21
21
  # @see XTwitterScraper::Models::X::Users::FollowCreateParams
22
- def create(user_id, params)
22
+ def create(id, params)
23
23
  parsed, options = XTwitterScraper::X::Users::FollowCreateParams.dump_request(params)
24
24
  @client.request(
25
25
  method: :post,
26
- path: ["x/users/%1$s/follow", user_id],
26
+ path: ["x/users/%1$s/follow", id],
27
27
  body: parsed,
28
28
  model: XTwitterScraper::Models::X::Users::FollowCreateResponse,
29
29
  options: options
@@ -32,22 +32,22 @@ module XTwitterScraper
32
32
 
33
33
  # Unfollow user
34
34
  #
35
- # @overload delete_all(user_id, account:, request_options: {})
35
+ # @overload delete_all(id, account:, request_options: {})
36
36
  #
37
- # @param user_id [String] User ID to unfollow
37
+ # @param id [String] User ID to unfollow
38
38
  #
39
- # @param account [String] X account (@username or account ID)
39
+ # @param account [String] X account identifier (@username or account ID)
40
40
  #
41
41
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
42
42
  #
43
43
  # @return [XTwitterScraper::Models::X::Users::FollowDeleteAllResponse]
44
44
  #
45
45
  # @see XTwitterScraper::Models::X::Users::FollowDeleteAllParams
46
- def delete_all(user_id, params)
46
+ def delete_all(id, params)
47
47
  parsed, options = XTwitterScraper::X::Users::FollowDeleteAllParams.dump_request(params)
48
48
  @client.request(
49
49
  method: :delete,
50
- path: ["x/users/%1$s/follow", user_id],
50
+ path: ["x/users/%1$s/follow", id],
51
51
  body: parsed,
52
52
  model: XTwitterScraper::Models::X::Users::FollowDeleteAllResponse,
53
53
  options: options
@@ -11,20 +11,20 @@ module XTwitterScraper
11
11
 
12
12
  # Look up X user
13
13
  #
14
- # @overload retrieve(username, request_options: {})
14
+ # @overload retrieve(id, request_options: {})
15
15
  #
16
- # @param username [String] X username (without @)
16
+ # @param id [String] X username (without @) or user ID
17
17
  #
18
18
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
19
19
  #
20
- # @return [XTwitterScraper::Models::X::UserRetrieveResponse]
20
+ # @return [XTwitterScraper::Models::X::UserProfile]
21
21
  #
22
22
  # @see XTwitterScraper::Models::X::UserRetrieveParams
23
- def retrieve(username, params = {})
23
+ def retrieve(id, params = {})
24
24
  @client.request(
25
25
  method: :get,
26
- path: ["x/users/%1$s", username],
27
- model: XTwitterScraper::Models::X::UserRetrieveResponse,
26
+ path: ["x/users/%1$s", id],
27
+ model: XTwitterScraper::X::UserProfile,
28
28
  options: params[:request_options]
29
29
  )
30
30
  end
@@ -37,7 +37,7 @@ module XTwitterScraper
37
37
  #
38
38
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
39
39
  #
40
- # @return [nil]
40
+ # @return [XTwitterScraper::Models::PaginatedUsers]
41
41
  #
42
42
  # @see XTwitterScraper::Models::X::UserRetrieveBatchParams
43
43
  def retrieve_batch(params)
@@ -47,7 +47,7 @@ module XTwitterScraper
47
47
  method: :get,
48
48
  path: "x/users/batch",
49
49
  query: query,
50
- model: NilClass,
50
+ model: XTwitterScraper::PaginatedUsers,
51
51
  options: options
52
52
  )
53
53
  end
@@ -58,13 +58,13 @@ module XTwitterScraper
58
58
  #
59
59
  # @param id [String] User ID or username
60
60
  #
61
- # @param cursor [String] Pagination cursor
61
+ # @param cursor [String] Pagination cursor for followers list
62
62
  #
63
63
  # @param page_size [Integer] Items per page (20-200, default 200)
64
64
  #
65
65
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
66
66
  #
67
- # @return [nil]
67
+ # @return [XTwitterScraper::Models::PaginatedUsers]
68
68
  #
69
69
  # @see XTwitterScraper::Models::X::UserRetrieveFollowersParams
70
70
  def retrieve_followers(id, params = {})
@@ -74,7 +74,7 @@ module XTwitterScraper
74
74
  method: :get,
75
75
  path: ["x/users/%1$s/followers", id],
76
76
  query: query.transform_keys(page_size: "pageSize"),
77
- model: NilClass,
77
+ model: XTwitterScraper::PaginatedUsers,
78
78
  options: options
79
79
  )
80
80
  end
@@ -83,13 +83,13 @@ module XTwitterScraper
83
83
  #
84
84
  # @overload retrieve_followers_you_know(id, cursor: nil, request_options: {})
85
85
  #
86
- # @param id [String] User ID
86
+ # @param id [String] User ID for followers-you-know lookup
87
87
  #
88
- # @param cursor [String] Pagination cursor from previous response
88
+ # @param cursor [String] Pagination cursor for followers-you-know
89
89
  #
90
90
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
91
91
  #
92
- # @return [XTwitterScraper::Models::X::UserRetrieveFollowersYouKnowResponse]
92
+ # @return [XTwitterScraper::Models::PaginatedUsers]
93
93
  #
94
94
  # @see XTwitterScraper::Models::X::UserRetrieveFollowersYouKnowParams
95
95
  def retrieve_followers_you_know(id, params = {})
@@ -99,7 +99,7 @@ module XTwitterScraper
99
99
  method: :get,
100
100
  path: ["x/users/%1$s/followers-you-know", id],
101
101
  query: query,
102
- model: XTwitterScraper::Models::X::UserRetrieveFollowersYouKnowResponse,
102
+ model: XTwitterScraper::PaginatedUsers,
103
103
  options: options
104
104
  )
105
105
  end
@@ -108,15 +108,15 @@ module XTwitterScraper
108
108
  #
109
109
  # @overload retrieve_following(id, cursor: nil, page_size: nil, request_options: {})
110
110
  #
111
- # @param id [String] User ID or username
111
+ # @param id [String] User ID or username for following lookup
112
112
  #
113
- # @param cursor [String] Pagination cursor
113
+ # @param cursor [String] Pagination cursor for following list
114
114
  #
115
- # @param page_size [Integer] Items per page (20-200, default 200)
115
+ # @param page_size [Integer] Results per page (20-200, default 200)
116
116
  #
117
117
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
118
118
  #
119
- # @return [nil]
119
+ # @return [XTwitterScraper::Models::PaginatedUsers]
120
120
  #
121
121
  # @see XTwitterScraper::Models::X::UserRetrieveFollowingParams
122
122
  def retrieve_following(id, params = {})
@@ -126,7 +126,7 @@ module XTwitterScraper
126
126
  method: :get,
127
127
  path: ["x/users/%1$s/following", id],
128
128
  query: query.transform_keys(page_size: "pageSize"),
129
- model: NilClass,
129
+ model: XTwitterScraper::PaginatedUsers,
130
130
  options: options
131
131
  )
132
132
  end
@@ -137,11 +137,11 @@ module XTwitterScraper
137
137
  #
138
138
  # @param id [String] User ID
139
139
  #
140
- # @param cursor [String] Pagination cursor from previous response
140
+ # @param cursor [String] Pagination cursor for liked tweets
141
141
  #
142
142
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
143
143
  #
144
- # @return [XTwitterScraper::Models::X::UserRetrieveLikesResponse]
144
+ # @return [XTwitterScraper::Models::PaginatedTweets]
145
145
  #
146
146
  # @see XTwitterScraper::Models::X::UserRetrieveLikesParams
147
147
  def retrieve_likes(id, params = {})
@@ -151,7 +151,7 @@ module XTwitterScraper
151
151
  method: :get,
152
152
  path: ["x/users/%1$s/likes", id],
153
153
  query: query,
154
- model: XTwitterScraper::Models::X::UserRetrieveLikesResponse,
154
+ model: XTwitterScraper::PaginatedTweets,
155
155
  options: options
156
156
  )
157
157
  end
@@ -160,13 +160,13 @@ module XTwitterScraper
160
160
  #
161
161
  # @overload retrieve_media(id, cursor: nil, request_options: {})
162
162
  #
163
- # @param id [String] User ID
163
+ # @param id [String] User ID for media lookup
164
164
  #
165
- # @param cursor [String] Pagination cursor from previous response
165
+ # @param cursor [String] Pagination cursor for media tweets
166
166
  #
167
167
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
168
168
  #
169
- # @return [XTwitterScraper::Models::X::UserRetrieveMediaResponse]
169
+ # @return [XTwitterScraper::Models::PaginatedTweets]
170
170
  #
171
171
  # @see XTwitterScraper::Models::X::UserRetrieveMediaParams
172
172
  def retrieve_media(id, params = {})
@@ -176,7 +176,7 @@ module XTwitterScraper
176
176
  method: :get,
177
177
  path: ["x/users/%1$s/media", id],
178
178
  query: query,
179
- model: XTwitterScraper::Models::X::UserRetrieveMediaResponse,
179
+ model: XTwitterScraper::PaginatedTweets,
180
180
  options: options
181
181
  )
182
182
  end
@@ -185,17 +185,17 @@ module XTwitterScraper
185
185
  #
186
186
  # @overload retrieve_mentions(id, cursor: nil, since_time: nil, until_time: nil, request_options: {})
187
187
  #
188
- # @param id [String] User ID or username
188
+ # @param id [String] User ID or username for mentions lookup
189
189
  #
190
- # @param cursor [String] Pagination cursor
190
+ # @param cursor [String] Pagination cursor for mentions
191
191
  #
192
- # @param since_time [String] Unix timestamp - filter after
192
+ # @param since_time [String] Unix timestamp - return mentions after this time
193
193
  #
194
- # @param until_time [String] Unix timestamp - filter before
194
+ # @param until_time [String] Unix timestamp - return mentions before this time
195
195
  #
196
196
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
197
197
  #
198
- # @return [nil]
198
+ # @return [XTwitterScraper::Models::PaginatedTweets]
199
199
  #
200
200
  # @see XTwitterScraper::Models::X::UserRetrieveMentionsParams
201
201
  def retrieve_mentions(id, params = {})
@@ -205,7 +205,7 @@ module XTwitterScraper
205
205
  method: :get,
206
206
  path: ["x/users/%1$s/mentions", id],
207
207
  query: query.transform_keys(since_time: "sinceTime", until_time: "untilTime"),
208
- model: NilClass,
208
+ model: XTwitterScraper::PaginatedTweets,
209
209
  options: options
210
210
  )
211
211
  end
@@ -214,13 +214,13 @@ module XTwitterScraper
214
214
  #
215
215
  # @overload retrieve_search(q:, cursor: nil, request_options: {})
216
216
  #
217
- # @param q [String] Search query
217
+ # @param q [String] User search query
218
218
  #
219
- # @param cursor [String] Pagination cursor
219
+ # @param cursor [String] Pagination cursor for user search
220
220
  #
221
221
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
222
222
  #
223
- # @return [nil]
223
+ # @return [XTwitterScraper::Models::PaginatedUsers]
224
224
  #
225
225
  # @see XTwitterScraper::Models::X::UserRetrieveSearchParams
226
226
  def retrieve_search(params)
@@ -230,7 +230,7 @@ module XTwitterScraper
230
230
  method: :get,
231
231
  path: "x/users/search",
232
232
  query: query,
233
- model: NilClass,
233
+ model: XTwitterScraper::PaginatedUsers,
234
234
  options: options
235
235
  )
236
236
  end
@@ -239,9 +239,9 @@ module XTwitterScraper
239
239
  #
240
240
  # @overload retrieve_tweets(id, cursor: nil, include_parent_tweet: nil, include_replies: nil, request_options: {})
241
241
  #
242
- # @param id [String]
242
+ # @param id [String] X user ID or username
243
243
  #
244
- # @param cursor [String] Pagination cursor from previous response
244
+ # @param cursor [String] Pagination cursor for user tweets
245
245
  #
246
246
  # @param include_parent_tweet [Boolean] Include parent tweet for replies
247
247
  #
@@ -249,7 +249,7 @@ module XTwitterScraper
249
249
  #
250
250
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
251
251
  #
252
- # @return [XTwitterScraper::Models::X::UserRetrieveTweetsResponse]
252
+ # @return [XTwitterScraper::Models::PaginatedTweets]
253
253
  #
254
254
  # @see XTwitterScraper::Models::X::UserRetrieveTweetsParams
255
255
  def retrieve_tweets(id, params = {})
@@ -262,7 +262,7 @@ module XTwitterScraper
262
262
  include_parent_tweet: "includeParentTweet",
263
263
  include_replies: "includeReplies"
264
264
  ),
265
- model: XTwitterScraper::Models::X::UserRetrieveTweetsResponse,
265
+ model: XTwitterScraper::PaginatedTweets,
266
266
  options: options
267
267
  )
268
268
  end
@@ -271,13 +271,13 @@ module XTwitterScraper
271
271
  #
272
272
  # @overload retrieve_verified_followers(id, cursor: nil, request_options: {})
273
273
  #
274
- # @param id [String] User ID or username
274
+ # @param id [String] User ID or username for verified followers
275
275
  #
276
- # @param cursor [String] Pagination cursor
276
+ # @param cursor [String] Pagination cursor for verified followers
277
277
  #
278
278
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
279
279
  #
280
- # @return [nil]
280
+ # @return [XTwitterScraper::Models::PaginatedUsers]
281
281
  #
282
282
  # @see XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersParams
283
283
  def retrieve_verified_followers(id, params = {})
@@ -287,7 +287,7 @@ module XTwitterScraper
287
287
  method: :get,
288
288
  path: ["x/users/%1$s/verified-followers", id],
289
289
  query: query,
290
- model: NilClass,
290
+ model: XTwitterScraper::PaginatedUsers,
291
291
  options: options
292
292
  )
293
293
  end
@@ -45,7 +45,8 @@ module XTwitterScraper
45
45
  #
46
46
  # @overload get_article(tweet_id, request_options: {})
47
47
  #
48
- # @param tweet_id [String]
48
+ # @param tweet_id [String] Tweet ID of the article
49
+ #
49
50
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
50
51
  #
51
52
  # @return [XTwitterScraper::Models::XGetArticleResponse]
@@ -64,13 +65,13 @@ module XTwitterScraper
64
65
  #
65
66
  # @overload get_home_timeline(cursor: nil, seen_tweet_ids: nil, request_options: {})
66
67
  #
67
- # @param cursor [String] Pagination cursor from previous response
68
+ # @param cursor [String] Pagination cursor for timeline
68
69
  #
69
70
  # @param seen_tweet_ids [String] Comma-separated tweet IDs to exclude from results
70
71
  #
71
72
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
72
73
  #
73
- # @return [XTwitterScraper::Models::XGetHomeTimelineResponse]
74
+ # @return [XTwitterScraper::Models::PaginatedTweets]
74
75
  #
75
76
  # @see XTwitterScraper::Models::XGetHomeTimelineParams
76
77
  def get_home_timeline(params = {})
@@ -80,7 +81,7 @@ module XTwitterScraper
80
81
  method: :get,
81
82
  path: "x/timeline",
82
83
  query: query.transform_keys(seen_tweet_ids: "seenTweetIds"),
83
- model: XTwitterScraper::Models::XGetHomeTimelineResponse,
84
+ model: XTwitterScraper::PaginatedTweets,
84
85
  options: options
85
86
  )
86
87
  end
@@ -89,7 +90,7 @@ module XTwitterScraper
89
90
  #
90
91
  # @overload get_notifications(cursor: nil, type: nil, request_options: {})
91
92
  #
92
- # @param cursor [String] Pagination cursor from previous response
93
+ # @param cursor [String] Pagination cursor for notifications
93
94
  #
94
95
  # @param type [Symbol, XTwitterScraper::Models::XGetNotificationsParams::Type] Notification type filter
95
96
  #
@@ -116,11 +117,16 @@ module XTwitterScraper
116
117
  #
117
118
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
118
119
  #
119
- # @return [nil]
120
+ # @return [XTwitterScraper::Models::XGetTrendsResponse]
120
121
  #
121
122
  # @see XTwitterScraper::Models::XGetTrendsParams
122
123
  def get_trends(params = {})
123
- @client.request(method: :get, path: "x/trends", model: NilClass, options: params[:request_options])
124
+ @client.request(
125
+ method: :get,
126
+ path: "x/trends",
127
+ model: XTwitterScraper::Models::XGetTrendsResponse,
128
+ options: params[:request_options]
129
+ )
124
130
  end
125
131
 
126
132
  # @api private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module XTwitterScraper
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.0"
5
5
  end