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
@@ -15,7 +15,7 @@ module XTwitterScraper
15
15
  )
16
16
  end
17
17
 
18
- # X account (@username or account ID)
18
+ # X account (@username or ID) uploading media
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
@@ -38,7 +38,7 @@ module XTwitterScraper
38
38
  ).returns(T.attached_class)
39
39
  end
40
40
  def self.new(
41
- # X account (@username or account ID)
41
+ # X account (@username or ID) uploading media
42
42
  account:,
43
43
  # Media file to upload
44
44
  file:,
@@ -15,7 +15,7 @@ module XTwitterScraper
15
15
  )
16
16
  end
17
17
 
18
- # X account (@username or account ID)
18
+ # X account (@username or ID) for avatar update
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
@@ -31,7 +31,7 @@ module XTwitterScraper
31
31
  ).returns(T.attached_class)
32
32
  end
33
33
  def self.new(
34
- # X account (@username or account ID)
34
+ # X account (@username or ID) for avatar update
35
35
  account:,
36
36
  # Avatar image (max 716KB)
37
37
  file:,
@@ -15,7 +15,7 @@ module XTwitterScraper
15
15
  )
16
16
  end
17
17
 
18
- # X account (@username or account ID)
18
+ # X account (@username or ID) for banner update
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
@@ -31,7 +31,7 @@ module XTwitterScraper
31
31
  ).returns(T.attached_class)
32
32
  end
33
33
  def self.new(
34
- # X account (@username or account ID)
34
+ # X account (@username or ID) for banner update
35
35
  account:,
36
36
  # Banner image (max 2MB)
37
37
  file:,
@@ -15,7 +15,7 @@ module XTwitterScraper
15
15
  )
16
16
  end
17
17
 
18
- # X account (@username or account ID)
18
+ # X account (@username or ID) to update profile
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
@@ -57,7 +57,7 @@ module XTwitterScraper
57
57
  ).returns(T.attached_class)
58
58
  end
59
59
  def self.new(
60
- # X account (@username or account ID)
60
+ # X account (@username or ID) to update profile
61
61
  account:,
62
62
  # Bio description
63
63
  description: nil,
@@ -38,6 +38,13 @@ module XTwitterScraper
38
38
  sig { params(created_at: String).void }
39
39
  attr_writer :created_at
40
40
 
41
+ # True for Note Tweets (long-form content, up to 25,000 characters)
42
+ sig { returns(T.nilable(T::Boolean)) }
43
+ attr_reader :is_note_tweet
44
+
45
+ sig { params(is_note_tweet: T::Boolean).void }
46
+ attr_writer :is_note_tweet
47
+
41
48
  sig { returns(T.nilable(Integer)) }
42
49
  attr_reader :like_count
43
50
 
@@ -68,6 +75,7 @@ module XTwitterScraper
68
75
  sig { params(view_count: Integer).void }
69
76
  attr_writer :view_count
70
77
 
78
+ # Tweet returned from search results with inline author info.
71
79
  sig do
72
80
  params(
73
81
  id: String,
@@ -75,6 +83,7 @@ module XTwitterScraper
75
83
  author: XTwitterScraper::X::SearchTweet::Author::OrHash,
76
84
  bookmark_count: Integer,
77
85
  created_at: String,
86
+ is_note_tweet: T::Boolean,
78
87
  like_count: Integer,
79
88
  quote_count: Integer,
80
89
  reply_count: Integer,
@@ -88,6 +97,8 @@ module XTwitterScraper
88
97
  author: nil,
89
98
  bookmark_count: nil,
90
99
  created_at: nil,
100
+ # True for Note Tweets (long-form content, up to 25,000 characters)
101
+ is_note_tweet: nil,
91
102
  like_count: nil,
92
103
  quote_count: nil,
93
104
  reply_count: nil,
@@ -104,6 +115,7 @@ module XTwitterScraper
104
115
  author: XTwitterScraper::X::SearchTweet::Author,
105
116
  bookmark_count: Integer,
106
117
  created_at: String,
118
+ is_note_tweet: T::Boolean,
107
119
  like_count: Integer,
108
120
  quote_count: Integer,
109
121
  reply_count: Integer,
@@ -30,6 +30,7 @@ module XTwitterScraper
30
30
  sig { params(profile_picture: String).void }
31
31
  attr_writer :profile_picture
32
32
 
33
+ # Author of a tweet with follower count and verification status.
33
34
  sig do
34
35
  params(
35
36
  id: String,
@@ -16,22 +16,22 @@ module XTwitterScraper
16
16
  end
17
17
 
18
18
  sig { returns(String) }
19
- attr_accessor :tweet_id
19
+ attr_accessor :id
20
20
 
21
- # X account (@username or account ID)
21
+ # X account identifier (@username or account ID)
22
22
  sig { returns(String) }
23
23
  attr_accessor :account
24
24
 
25
25
  sig do
26
26
  params(
27
- tweet_id: String,
27
+ id: String,
28
28
  account: String,
29
29
  request_options: XTwitterScraper::RequestOptions::OrHash
30
30
  ).returns(T.attached_class)
31
31
  end
32
32
  def self.new(
33
- tweet_id:,
34
- # X account (@username or account ID)
33
+ id:,
34
+ # X account identifier (@username or account ID)
35
35
  account:,
36
36
  request_options: {}
37
37
  )
@@ -40,7 +40,7 @@ module XTwitterScraper
40
40
  sig do
41
41
  override.returns(
42
42
  {
43
- tweet_id: String,
43
+ id: String,
44
44
  account: String,
45
45
  request_options: XTwitterScraper::RequestOptions
46
46
  }
@@ -36,12 +36,75 @@ module XTwitterScraper
36
36
  sig { returns(Integer) }
37
37
  attr_accessor :view_count
38
38
 
39
+ # ID of the root tweet in the conversation thread
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :conversation_id
42
+
43
+ sig { params(conversation_id: String).void }
44
+ attr_writer :conversation_id
45
+
39
46
  sig { returns(T.nilable(String)) }
40
47
  attr_reader :created_at
41
48
 
42
49
  sig { params(created_at: String).void }
43
50
  attr_writer :created_at
44
51
 
52
+ # Parsed entities from the tweet text (URLs, mentions, hashtags, media)
53
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
54
+ attr_reader :entities
55
+
56
+ sig { params(entities: T::Hash[Symbol, T.anything]).void }
57
+ attr_writer :entities
58
+
59
+ # Whether this is a Note Tweet (long-form post, up to 25,000 characters)
60
+ sig { returns(T.nilable(T::Boolean)) }
61
+ attr_reader :is_note_tweet
62
+
63
+ sig { params(is_note_tweet: T::Boolean).void }
64
+ attr_writer :is_note_tweet
65
+
66
+ # Whether this tweet quotes another tweet
67
+ sig { returns(T.nilable(T::Boolean)) }
68
+ attr_reader :is_quote_status
69
+
70
+ sig { params(is_quote_status: T::Boolean).void }
71
+ attr_writer :is_quote_status
72
+
73
+ # Whether this tweet is a reply to another tweet
74
+ sig { returns(T.nilable(T::Boolean)) }
75
+ attr_reader :is_reply
76
+
77
+ sig { params(is_reply: T::Boolean).void }
78
+ attr_writer :is_reply
79
+
80
+ # Attached media items, omitted when the tweet has no media
81
+ sig do
82
+ returns(T.nilable(T::Array[XTwitterScraper::X::TweetDetail::Media]))
83
+ end
84
+ attr_reader :media
85
+
86
+ sig do
87
+ params(
88
+ media: T::Array[XTwitterScraper::X::TweetDetail::Media::OrHash]
89
+ ).void
90
+ end
91
+ attr_writer :media
92
+
93
+ # The quoted tweet object, present when isQuoteStatus is true
94
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
95
+ attr_reader :quoted_tweet
96
+
97
+ sig { params(quoted_tweet: T::Hash[Symbol, T.anything]).void }
98
+ attr_writer :quoted_tweet
99
+
100
+ # Client application used to post this tweet
101
+ sig { returns(T.nilable(String)) }
102
+ attr_reader :source
103
+
104
+ sig { params(source: String).void }
105
+ attr_writer :source
106
+
107
+ # Full tweet with text, engagement metrics, media, and metadata.
45
108
  sig do
46
109
  params(
47
110
  id: String,
@@ -52,7 +115,15 @@ module XTwitterScraper
52
115
  retweet_count: Integer,
53
116
  text: String,
54
117
  view_count: Integer,
55
- created_at: String
118
+ conversation_id: String,
119
+ created_at: String,
120
+ entities: T::Hash[Symbol, T.anything],
121
+ is_note_tweet: T::Boolean,
122
+ is_quote_status: T::Boolean,
123
+ is_reply: T::Boolean,
124
+ media: T::Array[XTwitterScraper::X::TweetDetail::Media::OrHash],
125
+ quoted_tweet: T::Hash[Symbol, T.anything],
126
+ source: String
56
127
  ).returns(T.attached_class)
57
128
  end
58
129
  def self.new(
@@ -64,7 +135,23 @@ module XTwitterScraper
64
135
  retweet_count:,
65
136
  text:,
66
137
  view_count:,
67
- created_at: nil
138
+ # ID of the root tweet in the conversation thread
139
+ conversation_id: nil,
140
+ created_at: nil,
141
+ # Parsed entities from the tweet text (URLs, mentions, hashtags, media)
142
+ entities: nil,
143
+ # Whether this is a Note Tweet (long-form post, up to 25,000 characters)
144
+ is_note_tweet: nil,
145
+ # Whether this tweet quotes another tweet
146
+ is_quote_status: nil,
147
+ # Whether this tweet is a reply to another tweet
148
+ is_reply: nil,
149
+ # Attached media items, omitted when the tweet has no media
150
+ media: nil,
151
+ # The quoted tweet object, present when isQuoteStatus is true
152
+ quoted_tweet: nil,
153
+ # Client application used to post this tweet
154
+ source: nil
68
155
  )
69
156
  end
70
157
 
@@ -79,12 +166,117 @@ module XTwitterScraper
79
166
  retweet_count: Integer,
80
167
  text: String,
81
168
  view_count: Integer,
82
- created_at: String
169
+ conversation_id: String,
170
+ created_at: String,
171
+ entities: T::Hash[Symbol, T.anything],
172
+ is_note_tweet: T::Boolean,
173
+ is_quote_status: T::Boolean,
174
+ is_reply: T::Boolean,
175
+ media: T::Array[XTwitterScraper::X::TweetDetail::Media],
176
+ quoted_tweet: T::Hash[Symbol, T.anything],
177
+ source: String
83
178
  }
84
179
  )
85
180
  end
86
181
  def to_hash
87
182
  end
183
+
184
+ class Media < XTwitterScraper::Internal::Type::BaseModel
185
+ OrHash =
186
+ T.type_alias do
187
+ T.any(
188
+ XTwitterScraper::X::TweetDetail::Media,
189
+ XTwitterScraper::Internal::AnyHash
190
+ )
191
+ end
192
+
193
+ sig { returns(T.nilable(String)) }
194
+ attr_reader :media_url
195
+
196
+ sig { params(media_url: String).void }
197
+ attr_writer :media_url
198
+
199
+ sig do
200
+ returns(
201
+ T.nilable(
202
+ XTwitterScraper::X::TweetDetail::Media::Type::TaggedSymbol
203
+ )
204
+ )
205
+ end
206
+ attr_reader :type
207
+
208
+ sig do
209
+ params(
210
+ type: XTwitterScraper::X::TweetDetail::Media::Type::OrSymbol
211
+ ).void
212
+ end
213
+ attr_writer :type
214
+
215
+ sig { returns(T.nilable(String)) }
216
+ attr_reader :url
217
+
218
+ sig { params(url: String).void }
219
+ attr_writer :url
220
+
221
+ sig do
222
+ params(
223
+ media_url: String,
224
+ type: XTwitterScraper::X::TweetDetail::Media::Type::OrSymbol,
225
+ url: String
226
+ ).returns(T.attached_class)
227
+ end
228
+ def self.new(media_url: nil, type: nil, url: nil)
229
+ end
230
+
231
+ sig do
232
+ override.returns(
233
+ {
234
+ media_url: String,
235
+ type:
236
+ XTwitterScraper::X::TweetDetail::Media::Type::TaggedSymbol,
237
+ url: String
238
+ }
239
+ )
240
+ end
241
+ def to_hash
242
+ end
243
+
244
+ module Type
245
+ extend XTwitterScraper::Internal::Type::Enum
246
+
247
+ TaggedSymbol =
248
+ T.type_alias do
249
+ T.all(Symbol, XTwitterScraper::X::TweetDetail::Media::Type)
250
+ end
251
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
252
+
253
+ PHOTO =
254
+ T.let(
255
+ :photo,
256
+ XTwitterScraper::X::TweetDetail::Media::Type::TaggedSymbol
257
+ )
258
+ VIDEO =
259
+ T.let(
260
+ :video,
261
+ XTwitterScraper::X::TweetDetail::Media::Type::TaggedSymbol
262
+ )
263
+ ANIMATED_GIF =
264
+ T.let(
265
+ :animated_gif,
266
+ XTwitterScraper::X::TweetDetail::Media::Type::TaggedSymbol
267
+ )
268
+
269
+ sig do
270
+ override.returns(
271
+ T::Array[
272
+ XTwitterScraper::X::TweetDetail::Media::Type::TaggedSymbol
273
+ ]
274
+ )
275
+ end
276
+ def self.values
277
+ end
278
+ end
279
+ end
88
280
  end
89
281
  end
90
282
  end
@@ -18,7 +18,7 @@ module XTwitterScraper
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
- # Pagination cursor from previous response
21
+ # Pagination cursor for favoriters
22
22
  sig { returns(T.nilable(String)) }
23
23
  attr_reader :cursor
24
24
 
@@ -34,7 +34,7 @@ module XTwitterScraper
34
34
  end
35
35
  def self.new(
36
36
  id:,
37
- # Pagination cursor from previous response
37
+ # Pagination cursor for favoriters
38
38
  cursor: nil,
39
39
  request_options: {}
40
40
  )
@@ -18,28 +18,28 @@ module XTwitterScraper
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
- # Pagination cursor
21
+ # Pagination cursor for quote tweets
22
22
  sig { returns(T.nilable(String)) }
23
23
  attr_reader :cursor
24
24
 
25
25
  sig { params(cursor: String).void }
26
26
  attr_writer :cursor
27
27
 
28
- # Include replies (default false)
28
+ # Include reply quotes (default false)
29
29
  sig { returns(T.nilable(T::Boolean)) }
30
30
  attr_reader :include_replies
31
31
 
32
32
  sig { params(include_replies: T::Boolean).void }
33
33
  attr_writer :include_replies
34
34
 
35
- # Unix timestamp - filter after
35
+ # Unix timestamp - return quotes posted after this time
36
36
  sig { returns(T.nilable(String)) }
37
37
  attr_reader :since_time
38
38
 
39
39
  sig { params(since_time: String).void }
40
40
  attr_writer :since_time
41
41
 
42
- # Unix timestamp - filter before
42
+ # Unix timestamp - return quotes posted before this time
43
43
  sig { returns(T.nilable(String)) }
44
44
  attr_reader :until_time
45
45
 
@@ -58,13 +58,13 @@ module XTwitterScraper
58
58
  end
59
59
  def self.new(
60
60
  id:,
61
- # Pagination cursor
61
+ # Pagination cursor for quote tweets
62
62
  cursor: nil,
63
- # Include replies (default false)
63
+ # Include reply quotes (default false)
64
64
  include_replies: nil,
65
- # Unix timestamp - filter after
65
+ # Unix timestamp - return quotes posted after this time
66
66
  since_time: nil,
67
- # Unix timestamp - filter before
67
+ # Unix timestamp - return quotes posted before this time
68
68
  until_time: nil,
69
69
  request_options: {}
70
70
  )
@@ -18,21 +18,21 @@ module XTwitterScraper
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
- # Pagination cursor
21
+ # Pagination cursor for tweet replies
22
22
  sig { returns(T.nilable(String)) }
23
23
  attr_reader :cursor
24
24
 
25
25
  sig { params(cursor: String).void }
26
26
  attr_writer :cursor
27
27
 
28
- # Unix timestamp - filter after
28
+ # Unix timestamp - return replies posted after this time
29
29
  sig { returns(T.nilable(String)) }
30
30
  attr_reader :since_time
31
31
 
32
32
  sig { params(since_time: String).void }
33
33
  attr_writer :since_time
34
34
 
35
- # Unix timestamp - filter before
35
+ # Unix timestamp - return replies posted before this time
36
36
  sig { returns(T.nilable(String)) }
37
37
  attr_reader :until_time
38
38
 
@@ -50,11 +50,11 @@ module XTwitterScraper
50
50
  end
51
51
  def self.new(
52
52
  id:,
53
- # Pagination cursor
53
+ # Pagination cursor for tweet replies
54
54
  cursor: nil,
55
- # Unix timestamp - filter after
55
+ # Unix timestamp - return replies posted after this time
56
56
  since_time: nil,
57
- # Unix timestamp - filter before
57
+ # Unix timestamp - return replies posted before this time
58
58
  until_time: nil,
59
59
  request_options: {}
60
60
  )
@@ -18,7 +18,7 @@ module XTwitterScraper
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
- # Pagination cursor
21
+ # Pagination cursor for retweeters
22
22
  sig { returns(T.nilable(String)) }
23
23
  attr_reader :cursor
24
24
 
@@ -34,7 +34,7 @@ module XTwitterScraper
34
34
  end
35
35
  def self.new(
36
36
  id:,
37
- # Pagination cursor
37
+ # Pagination cursor for retweeters
38
38
  cursor: nil,
39
39
  request_options: {}
40
40
  )
@@ -18,7 +18,7 @@ module XTwitterScraper
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
- # Pagination cursor
21
+ # Pagination cursor for thread tweets
22
22
  sig { returns(T.nilable(String)) }
23
23
  attr_reader :cursor
24
24
 
@@ -34,7 +34,7 @@ module XTwitterScraper
34
34
  end
35
35
  def self.new(
36
36
  id:,
37
- # Pagination cursor
37
+ # Pagination cursor for thread tweets
38
38
  cursor: nil,
39
39
  request_options: {}
40
40
  )
@@ -16,23 +16,20 @@ module XTwitterScraper
16
16
  end
17
17
 
18
18
  sig { returns(String) }
19
- attr_accessor :tweet_id
19
+ attr_accessor :id
20
20
 
21
21
  sig do
22
22
  params(
23
- tweet_id: String,
23
+ id: String,
24
24
  request_options: XTwitterScraper::RequestOptions::OrHash
25
25
  ).returns(T.attached_class)
26
26
  end
27
- def self.new(tweet_id:, request_options: {})
27
+ def self.new(id:, request_options: {})
28
28
  end
29
29
 
30
30
  sig do
31
31
  override.returns(
32
- {
33
- tweet_id: String,
34
- request_options: XTwitterScraper::RequestOptions
35
- }
32
+ { id: String, request_options: XTwitterScraper::RequestOptions }
36
33
  )
37
34
  end
38
35
  def to_hash