x-twitter-scraper 0.6.0 → 0.7.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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/x_twitter_scraper/internal/type/union.rb +25 -9
  5. data/lib/x_twitter_scraper/models/content_disclosure.rb +1 -9
  6. data/lib/x_twitter_scraper/models/embedded_tweet.rb +389 -1
  7. data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -5
  8. data/lib/x_twitter_scraper/models/search_tweet.rb +371 -1
  9. data/lib/x_twitter_scraper/models/support/ticket_list_response.rb +30 -17
  10. data/lib/x_twitter_scraper/models/support/ticket_retrieve_response.rb +49 -24
  11. data/lib/x_twitter_scraper/models/support/ticket_update_response.rb +18 -6
  12. data/lib/x_twitter_scraper/models/trend_list_response.rb +28 -1
  13. data/lib/x_twitter_scraper/models/tweet_media.rb +213 -1
  14. data/lib/x_twitter_scraper/models/user_profile.rb +211 -21
  15. data/lib/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rb +60 -26
  16. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rb +4 -4
  17. data/lib/x_twitter_scraper/models/x/account_create_response.rb +149 -2
  18. data/lib/x_twitter_scraper/models/x/account_reauth_response.rb +4 -4
  19. data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +3 -5
  20. data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +3 -5
  21. data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +1 -17
  22. data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +3 -5
  23. data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +3 -5
  24. data/lib/x_twitter_scraper/models/x/tweet_author.rb +14 -1
  25. data/lib/x_twitter_scraper/models/x/tweet_detail.rb +373 -1
  26. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +3 -5
  27. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +34 -6
  28. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +345 -0
  29. data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +3 -5
  30. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +3 -5
  31. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +3 -5
  32. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +3 -5
  33. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +3 -5
  34. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +3 -5
  35. data/lib/x_twitter_scraper/models/x_get_article_response.rb +1 -7
  36. data/lib/x_twitter_scraper/models/x_get_trends_response.rb +28 -1
  37. data/lib/x_twitter_scraper/resources/x/account_connection_attempts.rb +1 -1
  38. data/lib/x_twitter_scraper/resources/x/accounts.rb +2 -2
  39. data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +2 -2
  40. data/lib/x_twitter_scraper/resources/x/communities.rb +1 -1
  41. data/lib/x_twitter_scraper/resources/x/lists.rb +1 -1
  42. data/lib/x_twitter_scraper/resources/x/tweets.rb +14 -11
  43. data/lib/x_twitter_scraper/resources/x/users.rb +5 -5
  44. data/lib/x_twitter_scraper/version.rb +1 -1
  45. data/lib/x_twitter_scraper.rb +2 -1
  46. data/rbi/x_twitter_scraper/models/content_disclosure.rbi +1 -15
  47. data/rbi/x_twitter_scraper/models/embedded_tweet.rbi +708 -3
  48. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -5
  49. data/rbi/x_twitter_scraper/models/search_tweet.rbi +674 -3
  50. data/rbi/x_twitter_scraper/models/support/ticket_list_response.rbi +75 -55
  51. data/rbi/x_twitter_scraper/models/support/ticket_retrieve_response.rbi +129 -87
  52. data/rbi/x_twitter_scraper/models/support/ticket_update_response.rbi +62 -13
  53. data/rbi/x_twitter_scraper/models/trend_list_response.rbi +40 -3
  54. data/rbi/x_twitter_scraper/models/tweet_media.rbi +313 -3
  55. data/rbi/x_twitter_scraper/models/user_profile.rbi +340 -29
  56. data/rbi/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rbi +61 -83
  57. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbi +6 -6
  58. data/rbi/x_twitter_scraper/models/x/account_create_response.rbi +264 -2
  59. data/rbi/x_twitter_scraper/models/x/account_reauth_response.rbi +6 -6
  60. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +4 -8
  61. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +4 -8
  62. data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +0 -22
  63. data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +4 -8
  64. data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +4 -8
  65. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +13 -3
  66. data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +690 -3
  67. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +4 -8
  68. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +68 -8
  69. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +527 -0
  70. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +4 -8
  71. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +4 -8
  72. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +4 -8
  73. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +4 -8
  74. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +4 -8
  75. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +4 -8
  76. data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +0 -9
  77. data/rbi/x_twitter_scraper/models/x_get_trends_response.rbi +40 -3
  78. data/rbi/x_twitter_scraper/resources/x/accounts.rbi +1 -1
  79. data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +4 -8
  80. data/rbi/x_twitter_scraper/resources/x/communities.rbi +2 -4
  81. data/rbi/x_twitter_scraper/resources/x/lists.rbi +2 -4
  82. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +20 -18
  83. data/rbi/x_twitter_scraper/resources/x/users.rbi +10 -20
  84. data/sig/x_twitter_scraper/models/content_disclosure.rbs +1 -11
  85. data/sig/x_twitter_scraper/models/embedded_tweet.rbs +343 -62
  86. data/sig/x_twitter_scraper/models/search_tweet.rbs +333 -70
  87. data/sig/x_twitter_scraper/models/support/ticket_list_response.rbs +29 -32
  88. data/sig/x_twitter_scraper/models/support/ticket_retrieve_response.rbs +49 -48
  89. data/sig/x_twitter_scraper/models/support/ticket_update_response.rbs +25 -7
  90. data/sig/x_twitter_scraper/models/trend_list_response.rbs +16 -20
  91. data/sig/x_twitter_scraper/models/tweet_media.rbs +146 -15
  92. data/sig/x_twitter_scraper/models/user_profile.rbs +164 -86
  93. data/sig/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rbs +50 -33
  94. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbs +5 -5
  95. data/sig/x_twitter_scraper/models/x/account_create_response.rbs +147 -1
  96. data/sig/x_twitter_scraper/models/x/account_reauth_response.rbs +5 -5
  97. data/sig/x_twitter_scraper/models/x/community_retrieve_info_response.rbs +0 -14
  98. data/sig/x_twitter_scraper/models/x/tweet_author.rbs +11 -3
  99. data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +333 -70
  100. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +26 -0
  101. data/sig/x_twitter_scraper/models/x/tweet_get_replies_response.rbs +274 -0
  102. data/sig/x_twitter_scraper/models/x_get_article_response.rbs +0 -7
  103. data/sig/x_twitter_scraper/models/x_get_trends_response.rbs +25 -3
  104. data/sig/x_twitter_scraper/resources/x/accounts.rbs +1 -1
  105. data/sig/x_twitter_scraper/resources/x/tweets.rbs +3 -1
  106. metadata +4 -1
@@ -29,10 +29,8 @@ module XTwitterScraper
29
29
  sig { params(cursor: String).void }
30
30
  attr_writer :cursor
31
31
 
32
- # Maximum items requested from this page (1-100, default 20). The response can
33
- # contain fewer items because the source returned fewer, filters removed items, or
34
- # remaining credits cover fewer results. Keep requesting next_cursor while
35
- # has_next_page is true, even when a page is empty. The deprecated limit and count
32
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
33
+ # results. Continue while has_next_page is true. Deprecated limit and count
36
34
  # aliases remain accepted.
37
35
  sig { returns(T.nilable(Integer)) }
38
36
  attr_reader :page_size
@@ -52,10 +50,8 @@ module XTwitterScraper
52
50
  id:,
53
51
  # Pagination cursor for thread tweets
54
52
  cursor: nil,
55
- # Maximum items requested from this page (1-100, default 20). The response can
56
- # contain fewer items because the source returned fewer, filters removed items, or
57
- # remaining credits cover fewer results. Keep requesting next_cursor while
58
- # has_next_page is true, even when a page is empty. The deprecated limit and count
53
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
54
+ # results. Continue while has_next_page is true. Deprecated limit and count
59
55
  # aliases remain accepted.
60
56
  page_size: nil,
61
57
  request_options: {}
@@ -146,10 +146,8 @@ module XTwitterScraper
146
146
  sig { params(min_retweets: Integer).void }
147
147
  attr_writer :min_retweets
148
148
 
149
- # Maximum items requested from this page (1-100, default 20). The response can
150
- # contain fewer items because the source returned fewer, filters removed items, or
151
- # remaining credits cover fewer results. Keep requesting next_cursor while
152
- # has_next_page is true, even when a page is empty. The deprecated limit and count
149
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
150
+ # results. Continue while has_next_page is true. Deprecated limit and count
153
151
  # aliases remain accepted.
154
152
  sig { returns(T.nilable(Integer)) }
155
153
  attr_reader :page_size
@@ -332,10 +330,8 @@ module XTwitterScraper
332
330
  min_replies: nil,
333
331
  # Minimum retweets threshold.
334
332
  min_retweets: nil,
335
- # Maximum items requested from this page (1-100, default 20). The response can
336
- # contain fewer items because the source returned fewer, filters removed items, or
337
- # remaining credits cover fewer results. Keep requesting next_cursor while
338
- # has_next_page is true, even when a page is empty. The deprecated limit and count
333
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
334
+ # results. Continue while has_next_page is true. Deprecated limit and count
339
335
  # aliases remain accepted.
340
336
  page_size: nil,
341
337
  # Quote mode.
@@ -146,10 +146,8 @@ module XTwitterScraper
146
146
  sig { params(min_retweets: Integer).void }
147
147
  attr_writer :min_retweets
148
148
 
149
- # Maximum items requested from this page (1-100, default 20). The response can
150
- # contain fewer items because the source returned fewer, filters removed items, or
151
- # remaining credits cover fewer results. Keep requesting next_cursor while
152
- # has_next_page is true, even when a page is empty. The deprecated limit and count
149
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
150
+ # results. Continue while has_next_page is true. Deprecated limit and count
153
151
  # aliases remain accepted.
154
152
  sig { returns(T.nilable(Integer)) }
155
153
  attr_reader :page_size
@@ -332,10 +330,8 @@ module XTwitterScraper
332
330
  min_replies: nil,
333
331
  # Minimum retweets threshold.
334
332
  min_retweets: nil,
335
- # Maximum items requested from this page (1-100, default 20). The response can
336
- # contain fewer items because the source returned fewer, filters removed items, or
337
- # remaining credits cover fewer results. Keep requesting next_cursor while
338
- # has_next_page is true, even when a page is empty. The deprecated limit and count
333
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
334
+ # results. Continue while has_next_page is true. Deprecated limit and count
339
335
  # aliases remain accepted.
340
336
  page_size: nil,
341
337
  # Quote mode.
@@ -146,10 +146,8 @@ module XTwitterScraper
146
146
  sig { params(min_retweets: Integer).void }
147
147
  attr_writer :min_retweets
148
148
 
149
- # Maximum items requested from this page (1-100, default 20). The response can
150
- # contain fewer items because the source returned fewer, filters removed items, or
151
- # remaining credits cover fewer results. Keep requesting next_cursor while
152
- # has_next_page is true, even when a page is empty. The deprecated limit and count
149
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
150
+ # results. Continue while has_next_page is true. Deprecated limit and count
153
151
  # aliases remain accepted.
154
152
  sig { returns(T.nilable(Integer)) }
155
153
  attr_reader :page_size
@@ -348,10 +346,8 @@ module XTwitterScraper
348
346
  min_replies: nil,
349
347
  # Minimum retweets threshold.
350
348
  min_retweets: nil,
351
- # Maximum items requested from this page (1-100, default 20). The response can
352
- # contain fewer items because the source returned fewer, filters removed items, or
353
- # remaining credits cover fewer results. Keep requesting next_cursor while
354
- # has_next_page is true, even when a page is empty. The deprecated limit and count
349
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
350
+ # results. Continue while has_next_page is true. Deprecated limit and count
355
351
  # aliases remain accepted.
356
352
  page_size: nil,
357
353
  # Quote mode.
@@ -153,10 +153,8 @@ module XTwitterScraper
153
153
  sig { params(min_retweets: Integer).void }
154
154
  attr_writer :min_retweets
155
155
 
156
- # Maximum items requested from this page (1-100, default 20). The response can
157
- # contain fewer items because the source returned fewer, filters removed items, or
158
- # remaining credits cover fewer results. Keep requesting next_cursor while
159
- # has_next_page is true, even when a page is empty. The deprecated limit and count
156
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
157
+ # results. Continue while has_next_page is true. Deprecated limit and count
160
158
  # aliases remain accepted.
161
159
  sig { returns(T.nilable(Integer)) }
162
160
  attr_reader :page_size
@@ -342,10 +340,8 @@ module XTwitterScraper
342
340
  min_replies: nil,
343
341
  # Minimum retweets threshold.
344
342
  min_retweets: nil,
345
- # Maximum items requested from this page (1-100, default 20). The response can
346
- # contain fewer items because the source returned fewer, filters removed items, or
347
- # remaining credits cover fewer results. Keep requesting next_cursor while
348
- # has_next_page is true, even when a page is empty. The deprecated limit and count
343
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
344
+ # results. Continue while has_next_page is true. Deprecated limit and count
349
345
  # aliases remain accepted.
350
346
  page_size: nil,
351
347
  # Quote mode.
@@ -160,10 +160,8 @@ module XTwitterScraper
160
160
  sig { params(min_retweets: Integer).void }
161
161
  attr_writer :min_retweets
162
162
 
163
- # Maximum items requested from this page (1-100, default 20). The response can
164
- # contain fewer items because the source returned fewer, filters removed items, or
165
- # remaining credits cover fewer results. Keep requesting next_cursor while
166
- # has_next_page is true, even when a page is empty. The deprecated limit and count
163
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
164
+ # results. Continue while has_next_page is true. Deprecated limit and count
167
165
  # aliases remain accepted.
168
166
  sig { returns(T.nilable(Integer)) }
169
167
  attr_reader :page_size
@@ -352,10 +350,8 @@ module XTwitterScraper
352
350
  min_replies: nil,
353
351
  # Minimum retweets threshold.
354
352
  min_retweets: nil,
355
- # Maximum items requested from this page (1-100, default 20). The response can
356
- # contain fewer items because the source returned fewer, filters removed items, or
357
- # remaining credits cover fewer results. Keep requesting next_cursor while
358
- # has_next_page is true, even when a page is empty. The deprecated limit and count
353
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
354
+ # results. Continue while has_next_page is true. Deprecated limit and count
359
355
  # aliases remain accepted.
360
356
  page_size: nil,
361
357
  # Quote mode.
@@ -388,12 +388,6 @@ module XTwitterScraper
388
388
  sig { returns(String) }
389
389
  attr_accessor :username
390
390
 
391
- sig { returns(T.nilable(T::Boolean)) }
392
- attr_reader :can_dm
393
-
394
- sig { params(can_dm: T::Boolean).void }
395
- attr_writer :can_dm
396
-
397
391
  sig { returns(T.nilable(String)) }
398
392
  attr_reader :created_at
399
393
 
@@ -490,7 +484,6 @@ module XTwitterScraper
490
484
  id: String,
491
485
  name: String,
492
486
  username: String,
493
- can_dm: T::Boolean,
494
487
  created_at: String,
495
488
  description: String,
496
489
  favourites_count: Integer,
@@ -512,7 +505,6 @@ module XTwitterScraper
512
505
  id:,
513
506
  name:,
514
507
  username:,
515
- can_dm: nil,
516
508
  created_at: nil,
517
509
  description: nil,
518
510
  favourites_count: nil,
@@ -537,7 +529,6 @@ module XTwitterScraper
537
529
  id: String,
538
530
  name: String,
539
531
  username: String,
540
- can_dm: T::Boolean,
541
532
  created_at: String,
542
533
  description: String,
543
534
  favourites_count: Integer,
@@ -70,6 +70,10 @@ module XTwitterScraper
70
70
  sig { params(description: String).void }
71
71
  attr_writer :description
72
72
 
73
+ # Promotion identifier from X. Null for organic trends.
74
+ sig { returns(T.nilable(String)) }
75
+ attr_accessor :promoted_content
76
+
73
77
  sig { returns(T.nilable(String)) }
74
78
  attr_reader :query
75
79
 
@@ -82,20 +86,53 @@ module XTwitterScraper
82
86
  sig { params(rank: Integer).void }
83
87
  attr_writer :rank
84
88
 
89
+ # Approximate public post volume when X supplies it.
90
+ sig { returns(T.nilable(Integer)) }
91
+ attr_accessor :tweet_volume
92
+
93
+ # X search URL for the trend.
94
+ sig { returns(T.nilable(String)) }
95
+ attr_reader :url
96
+
97
+ sig { params(url: String).void }
98
+ attr_writer :url
99
+
85
100
  sig do
86
101
  params(
87
102
  name: String,
88
103
  description: String,
104
+ promoted_content: T.nilable(String),
89
105
  query: String,
90
- rank: Integer
106
+ rank: Integer,
107
+ tweet_volume: T.nilable(Integer),
108
+ url: String
91
109
  ).returns(T.attached_class)
92
110
  end
93
- def self.new(name:, description: nil, query: nil, rank: nil)
111
+ def self.new(
112
+ name:,
113
+ description: nil,
114
+ # Promotion identifier from X. Null for organic trends.
115
+ promoted_content: nil,
116
+ query: nil,
117
+ rank: nil,
118
+ # Approximate public post volume when X supplies it.
119
+ tweet_volume: nil,
120
+ # X search URL for the trend.
121
+ url: nil
122
+ )
94
123
  end
95
124
 
96
125
  sig do
97
126
  override.returns(
98
- { name: String, description: String, query: String, rank: Integer }
127
+ {
128
+ name: String,
129
+ description: String,
130
+ promoted_content: T.nilable(String),
131
+ query: String,
132
+ rank: Integer,
133
+ tweet_volume: T.nilable(Integer),
134
+ url: String
135
+ }
99
136
  )
100
137
  end
101
138
  def to_hash
@@ -17,7 +17,7 @@ module XTwitterScraper
17
17
  totp_secret: String,
18
18
  username: String,
19
19
  request_options: XTwitterScraper::RequestOptions::OrHash
20
- ).returns(T.anything)
20
+ ).returns(XTwitterScraper::Models::X::AccountCreateResponse::Variants)
21
21
  end
22
22
  def create(
23
23
  # Account email
@@ -29,10 +29,8 @@ module XTwitterScraper
29
29
  q:,
30
30
  # Pagination cursor for community results
31
31
  cursor: nil,
32
- # Maximum items requested from this page (1-100, default 20). The response can
33
- # contain fewer items because the source returned fewer, filters removed items, or
34
- # remaining credits cover fewer results. Keep requesting next_cursor while
35
- # has_next_page is true, even when a page is empty. The deprecated limit and count
32
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
33
+ # results. Continue while has_next_page is true. Deprecated limit and count
36
34
  # aliases remain accepted.
37
35
  page_size: nil,
38
36
  # Sort order for community results (Latest or Top)
@@ -55,10 +53,8 @@ module XTwitterScraper
55
53
  id,
56
54
  # Pagination cursor for community tweets
57
55
  cursor: nil,
58
- # Maximum items requested from this page (1-100, default 20). The response can
59
- # contain fewer items because the source returned fewer, filters removed items, or
60
- # remaining credits cover fewer results. Keep requesting next_cursor while
61
- # has_next_page is true, even when a page is empty. The deprecated limit and count
56
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
57
+ # results. Continue while has_next_page is true. Deprecated limit and count
62
58
  # aliases remain accepted.
63
59
  page_size: nil,
64
60
  request_options: {}
@@ -140,10 +140,8 @@ module XTwitterScraper
140
140
  q:,
141
141
  # Pagination cursor for community search
142
142
  cursor: nil,
143
- # Maximum items requested from this page (1-100, default 20). The response can
144
- # contain fewer items because the source returned fewer, filters removed items, or
145
- # remaining credits cover fewer results. Keep requesting next_cursor while
146
- # has_next_page is true, even when a page is empty. The deprecated limit and count
143
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
144
+ # results. Continue while has_next_page is true. Deprecated limit and count
147
145
  # aliases remain accepted.
148
146
  page_size: nil,
149
147
  # Sort order (Latest or Top)
@@ -71,10 +71,8 @@ module XTwitterScraper
71
71
  cursor: nil,
72
72
  # Include replies (default false)
73
73
  include_replies: nil,
74
- # Maximum items requested from this page (1-100, default 20). The response can
75
- # contain fewer items because the source returned fewer, filters removed items, or
76
- # remaining credits cover fewer results. Keep requesting next_cursor while
77
- # has_next_page is true, even when a page is empty. The deprecated limit and count
74
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
75
+ # results. Continue while has_next_page is true. Deprecated limit and count
78
76
  # aliases remain accepted.
79
77
  page_size: nil,
80
78
  # Unix timestamp - filter after
@@ -207,10 +207,8 @@ module XTwitterScraper
207
207
  min_replies: nil,
208
208
  # Minimum retweets threshold.
209
209
  min_retweets: nil,
210
- # Maximum items requested from this page (1-100, default 20). The response can
211
- # contain fewer items because the source returned fewer, filters removed items, or
212
- # remaining credits cover fewer results. Keep requesting next_cursor while
213
- # has_next_page is true, even when a page is empty. The deprecated limit and count
210
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
211
+ # results. Continue while has_next_page is true. Deprecated limit and count
214
212
  # aliases remain accepted.
215
213
  page_size: nil,
216
214
  # Quote mode.
@@ -241,11 +239,10 @@ module XTwitterScraper
241
239
  )
242
240
  end
243
241
 
244
- # Returns visible replies. For an unfiltered first page, Xquik compares a terminal
245
- # page with the post's reported reply count. If the page is visibly incomplete,
246
- # the endpoint returns 424 `replies_incomplete` instead of presenting partial
247
- # coverage as complete. Use tweet search with a `conversation_id:{id}` query as
248
- # the broader fallback.
242
+ # Returns direct replies. Complete mode merges available timeline views, supported
243
+ # rankings, every forward cursor module, labeled hidden-content branches,
244
+ # exact-parent time partitions scaled to the reported reply count, and search. It
245
+ # separates nested replies and returns 424 below 80% coverage.
249
246
  sig do
250
247
  params(
251
248
  id: String,
@@ -259,6 +256,7 @@ module XTwitterScraper
259
256
  hashtags: String,
260
257
  in_reply_to_tweet_id: String,
261
258
  language: String,
259
+ limit: Integer,
262
260
  media_type:
263
261
  XTwitterScraper::X::TweetGetRepliesParams::MediaType::OrSymbol,
264
262
  mentioning: String,
@@ -266,6 +264,7 @@ module XTwitterScraper
266
264
  min_quotes: Integer,
267
265
  min_replies: Integer,
268
266
  min_retweets: Integer,
267
+ mode: XTwitterScraper::X::TweetGetRepliesParams::Mode::OrSymbol,
269
268
  page_size: Integer,
270
269
  quotes: XTwitterScraper::X::TweetGetRepliesParams::Quotes::OrSymbol,
271
270
  quotes_of_tweet_id: String,
@@ -282,7 +281,7 @@ module XTwitterScraper
282
281
  url: String,
283
282
  verified_only: T::Boolean,
284
283
  request_options: XTwitterScraper::RequestOptions::OrHash
285
- ).returns(XTwitterScraper::PaginatedTweets)
284
+ ).returns(XTwitterScraper::Models::X::TweetGetRepliesResponse)
286
285
  end
287
286
  def get_replies(
288
287
  # Tweet ID to get replies
@@ -308,6 +307,10 @@ module XTwitterScraper
308
307
  in_reply_to_tweet_id: nil,
309
308
  # Language code filter, e.g. en or tr.
310
309
  language: nil,
310
+ # With mode=complete, maximum combined direct and nested reply rows (1-25000).
311
+ # Without complete mode, this is the deprecated pageSize alias and uses the normal
312
+ # 1-100 page range.
313
+ limit: nil,
311
314
  # Filter by media type.
312
315
  media_type: nil,
313
316
  # Filter tweets mentioning a username.
@@ -320,10 +323,11 @@ module XTwitterScraper
320
323
  min_replies: nil,
321
324
  # Minimum retweets threshold.
322
325
  min_retweets: nil,
323
- # Maximum items requested from this page (1-100, default 20). The response can
324
- # contain fewer items because the source returned fewer, filters removed items, or
325
- # remaining credits cover fewer results. Keep requesting next_cursor while
326
- # has_next_page is true, even when a page is empty. The deprecated limit and count
326
+ # Set complete for maximum-coverage collection. Complete mode accepts only limit.
327
+ # Remove cursor, pageSize, count, time ranges, and tweet filters.
328
+ mode: nil,
329
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
330
+ # results. Continue while has_next_page is true. Deprecated limit and count
327
331
  # aliases remain accepted.
328
332
  page_size: nil,
329
333
  # Quote mode.
@@ -391,10 +395,8 @@ module XTwitterScraper
391
395
  id,
392
396
  # Pagination cursor for thread tweets
393
397
  cursor: nil,
394
- # Maximum items requested from this page (1-100, default 20). The response can
395
- # contain fewer items because the source returned fewer, filters removed items, or
396
- # remaining credits cover fewer results. Keep requesting next_cursor while
397
- # has_next_page is true, even when a page is empty. The deprecated limit and count
398
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
399
+ # results. Continue while has_next_page is true. Deprecated limit and count
398
400
  # aliases remain accepted.
399
401
  page_size: nil,
400
402
  request_options: {}
@@ -219,10 +219,8 @@ module XTwitterScraper
219
219
  min_replies: nil,
220
220
  # Minimum retweets threshold.
221
221
  min_retweets: nil,
222
- # Maximum items requested from this page (1-100, default 20). The response can
223
- # contain fewer items because the source returned fewer, filters removed items, or
224
- # remaining credits cover fewer results. Keep requesting next_cursor while
225
- # has_next_page is true, even when a page is empty. The deprecated limit and count
222
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
223
+ # results. Continue while has_next_page is true. Deprecated limit and count
226
224
  # aliases remain accepted.
227
225
  page_size: nil,
228
226
  # Quote mode.
@@ -323,10 +321,8 @@ module XTwitterScraper
323
321
  min_replies: nil,
324
322
  # Minimum retweets threshold.
325
323
  min_retweets: nil,
326
- # Maximum items requested from this page (1-100, default 20). The response can
327
- # contain fewer items because the source returned fewer, filters removed items, or
328
- # remaining credits cover fewer results. Keep requesting next_cursor while
329
- # has_next_page is true, even when a page is empty. The deprecated limit and count
324
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
325
+ # results. Continue while has_next_page is true. Deprecated limit and count
330
326
  # aliases remain accepted.
331
327
  page_size: nil,
332
328
  # Quote mode.
@@ -429,10 +425,8 @@ module XTwitterScraper
429
425
  min_replies: nil,
430
426
  # Minimum retweets threshold.
431
427
  min_retweets: nil,
432
- # Maximum items requested from this page (1-100, default 20). The response can
433
- # contain fewer items because the source returned fewer, filters removed items, or
434
- # remaining credits cover fewer results. Keep requesting next_cursor while
435
- # has_next_page is true, even when a page is empty. The deprecated limit and count
428
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
429
+ # results. Continue while has_next_page is true. Deprecated limit and count
436
430
  # aliases remain accepted.
437
431
  page_size: nil,
438
432
  # Quote mode.
@@ -540,10 +534,8 @@ module XTwitterScraper
540
534
  min_replies: nil,
541
535
  # Minimum retweets threshold.
542
536
  min_retweets: nil,
543
- # Maximum items requested from this page (1-100, default 20). The response can
544
- # contain fewer items because the source returned fewer, filters removed items, or
545
- # remaining credits cover fewer results. Keep requesting next_cursor while
546
- # has_next_page is true, even when a page is empty. The deprecated limit and count
537
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
538
+ # results. Continue while has_next_page is true. Deprecated limit and count
547
539
  # aliases remain accepted.
548
540
  page_size: nil,
549
541
  # Quote mode.
@@ -667,10 +659,8 @@ module XTwitterScraper
667
659
  min_replies: nil,
668
660
  # Minimum retweets threshold.
669
661
  min_retweets: nil,
670
- # Maximum items requested from this page (1-100, default 20). The response can
671
- # contain fewer items because the source returned fewer, filters removed items, or
672
- # remaining credits cover fewer results. Keep requesting next_cursor while
673
- # has_next_page is true, even when a page is empty. The deprecated limit and count
662
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
663
+ # results. Continue while has_next_page is true. Deprecated limit and count
674
664
  # aliases remain accepted.
675
665
  page_size: nil,
676
666
  # Quote mode.
@@ -46,17 +46,9 @@ module XTwitterScraper
46
46
  end
47
47
 
48
48
  type ai_generated =
49
- {
50
- can_edit: bool,
51
- detection_source: String,
52
- has_ai_generated_media: bool
53
- }
49
+ { detection_source: String, has_ai_generated_media: bool }
54
50
 
55
51
  class AIGenerated < XTwitterScraper::Internal::Type::BaseModel
56
- attr_reader can_edit: bool?
57
-
58
- def can_edit=: (bool) -> bool
59
-
60
52
  attr_reader detection_source: String?
61
53
 
62
54
  def detection_source=: (String) -> String
@@ -66,13 +58,11 @@ module XTwitterScraper
66
58
  def has_ai_generated_media=: (bool) -> bool
67
59
 
68
60
  def initialize: (
69
- ?can_edit: bool,
70
61
  ?detection_source: String,
71
62
  ?has_ai_generated_media: bool
72
63
  ) -> void
73
64
 
74
65
  def to_hash: -> {
75
- can_edit: bool,
76
66
  detection_source: String,
77
67
  has_ai_generated_media: bool
78
68
  }