x-twitter-scraper 0.7.2 → 0.9.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 (157) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +3 -3
  4. data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +5 -5
  5. data/lib/x_twitter_scraper/models/draw_export_params.rb +8 -3
  6. data/lib/x_twitter_scraper/models/draw_list_params.rb +2 -2
  7. data/lib/x_twitter_scraper/models/error.rb +8 -0
  8. data/lib/x_twitter_scraper/models/event_list_params.rb +13 -5
  9. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +731 -82
  10. data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +1 -0
  11. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +145 -1
  12. data/lib/x_twitter_scraper/models/extraction_list_params.rb +2 -2
  13. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +70 -3
  14. data/lib/x_twitter_scraper/models/extraction_run_params.rb +662 -1
  15. data/lib/x_twitter_scraper/models/extraction_run_response.rb +27 -48
  16. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +8 -8
  17. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +9 -9
  18. data/lib/x_twitter_scraper/models/monitor.rb +29 -1
  19. data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -4
  20. data/lib/x_twitter_scraper/models/paginated_users.rb +5 -5
  21. data/lib/x_twitter_scraper/models/support/attachment_download_params.rb +28 -0
  22. data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +113 -1
  23. data/lib/x_twitter_scraper/models/x/community_retrieve_moderators_params.rb +117 -1
  24. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +117 -6
  25. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +116 -1
  26. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +117 -6
  27. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +153 -1
  28. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +246 -16
  29. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +3 -2
  30. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +117 -6
  31. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +187 -14
  32. data/lib/x_twitter_scraper/models/x/tweet_search_response.rb +299 -0
  33. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +143 -10
  34. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_response.rb +241 -0
  35. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +117 -6
  36. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +143 -10
  37. data/lib/x_twitter_scraper/models/x/user_retrieve_following_response.rb +241 -0
  38. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +153 -1
  39. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +153 -1
  40. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +153 -1
  41. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +159 -7
  42. data/lib/x_twitter_scraper/models/x/user_retrieve_search_params.rb +116 -1
  43. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +159 -7
  44. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +157 -8
  45. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rb +245 -0
  46. data/lib/x_twitter_scraper/models/x/x_account.rb +7 -11
  47. data/lib/x_twitter_scraper/resources/credits.rb +2 -2
  48. data/lib/x_twitter_scraper/resources/draws.rb +5 -2
  49. data/lib/x_twitter_scraper/resources/events.rb +10 -4
  50. data/lib/x_twitter_scraper/resources/extractions.rb +383 -84
  51. data/lib/x_twitter_scraper/resources/guest_wallets.rb +9 -13
  52. data/lib/x_twitter_scraper/resources/support/attachments.rb +42 -0
  53. data/lib/x_twitter_scraper/resources/support.rb +5 -0
  54. data/lib/x_twitter_scraper/resources/x/communities.rb +95 -4
  55. data/lib/x_twitter_scraper/resources/x/lists.rb +96 -5
  56. data/lib/x_twitter_scraper/resources/x/tweets.rb +286 -28
  57. data/lib/x_twitter_scraper/resources/x/users.rb +531 -41
  58. data/lib/x_twitter_scraper/version.rb +1 -1
  59. data/lib/x_twitter_scraper.rb +7 -1
  60. data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +6 -6
  61. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +6 -3
  62. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +2 -2
  63. data/rbi/x_twitter_scraper/models/error.rbi +40 -0
  64. data/rbi/x_twitter_scraper/models/event_list_params.rbi +15 -4
  65. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +1338 -86
  66. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +5 -0
  67. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +198 -0
  68. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +2 -2
  69. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +194 -2
  70. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +1221 -0
  71. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +35 -162
  72. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +8 -6
  73. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +9 -7
  74. data/rbi/x_twitter_scraper/models/monitor.rbi +54 -3
  75. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -4
  76. data/rbi/x_twitter_scraper/models/paginated_users.rbi +5 -5
  77. data/rbi/x_twitter_scraper/models/support/attachment_download_params.rbi +51 -0
  78. data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +154 -0
  79. data/rbi/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbi +154 -0
  80. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +160 -8
  81. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +154 -0
  82. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +160 -8
  83. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +209 -0
  84. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +403 -20
  85. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +3 -2
  86. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +160 -8
  87. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +279 -16
  88. data/rbi/x_twitter_scraper/models/x/tweet_search_response.rbi +543 -0
  89. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +228 -12
  90. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_response.rbi +440 -0
  91. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +160 -8
  92. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +228 -12
  93. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_response.rbi +440 -0
  94. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +209 -0
  95. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +209 -0
  96. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +209 -0
  97. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +217 -8
  98. data/rbi/x_twitter_scraper/models/x/user_retrieve_search_params.rbi +154 -0
  99. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +217 -8
  100. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +248 -10
  101. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbi +440 -0
  102. data/rbi/x_twitter_scraper/models/x/x_account.rbi +9 -15
  103. data/rbi/x_twitter_scraper/resources/credits.rbi +2 -2
  104. data/rbi/x_twitter_scraper/resources/draws.rbi +3 -2
  105. data/rbi/x_twitter_scraper/resources/events.rbi +5 -2
  106. data/rbi/x_twitter_scraper/resources/extractions.rbi +525 -83
  107. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +9 -13
  108. data/rbi/x_twitter_scraper/resources/support/attachments.rbi +35 -0
  109. data/rbi/x_twitter_scraper/resources/support.rbi +4 -0
  110. data/rbi/x_twitter_scraper/resources/x/communities.rbi +84 -0
  111. data/rbi/x_twitter_scraper/resources/x/lists.rbi +87 -4
  112. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +307 -31
  113. data/rbi/x_twitter_scraper/resources/x/users.rbi +558 -34
  114. data/sig/x_twitter_scraper/models/error.rbs +16 -0
  115. data/sig/x_twitter_scraper/models/event_list_params.rbs +7 -0
  116. data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +605 -1
  117. data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +2 -0
  118. data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +127 -1
  119. data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +74 -1
  120. data/sig/x_twitter_scraper/models/extraction_run_params.rbs +611 -1
  121. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +29 -67
  122. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +4 -4
  123. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +4 -4
  124. data/sig/x_twitter_scraper/models/monitor.rbs +29 -3
  125. data/sig/x_twitter_scraper/models/support/attachment_download_params.rbs +32 -0
  126. data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +103 -1
  127. data/sig/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbs +102 -1
  128. data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +103 -1
  129. data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +103 -1
  130. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +103 -1
  131. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +134 -1
  132. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +207 -2
  133. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +103 -1
  134. data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +154 -1
  135. data/sig/x_twitter_scraper/models/x/tweet_search_response.rbs +258 -0
  136. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +119 -1
  137. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_response.rbs +216 -0
  138. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +103 -1
  139. data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +119 -1
  140. data/sig/x_twitter_scraper/models/x/user_retrieve_following_response.rbs +216 -0
  141. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +134 -1
  142. data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +134 -1
  143. data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +134 -1
  144. data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +134 -1
  145. data/sig/x_twitter_scraper/models/x/user_retrieve_search_params.rbs +102 -1
  146. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +134 -1
  147. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +137 -1
  148. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbs +216 -0
  149. data/sig/x_twitter_scraper/resources/events.rbs +1 -0
  150. data/sig/x_twitter_scraper/resources/extractions.rbs +137 -0
  151. data/sig/x_twitter_scraper/resources/support/attachments.rbs +15 -0
  152. data/sig/x_twitter_scraper/resources/support.rbs +2 -0
  153. data/sig/x_twitter_scraper/resources/x/communities.rbs +28 -0
  154. data/sig/x_twitter_scraper/resources/x/lists.rbs +28 -0
  155. data/sig/x_twitter_scraper/resources/x/tweets.rbs +93 -1
  156. data/sig/x_twitter_scraper/resources/x/users.rbs +173 -3
  157. metadata +19 -1
@@ -11,11 +11,9 @@ module XTwitterScraper
11
11
  # Some parameter documentations has been truncated, see
12
12
  # {XTwitterScraper::Models::GuestWalletCreateParams} for more details.
13
13
  #
14
- # Create a one-use Stripe-hosted checkout after the user explicitly confirms a
15
- # $10-$250 USD amount. This request creates no charge by itself. The user opens
16
- # checkout_url on Stripe. This endpoint returns the paid-read API key without
17
- # requiring an Xquik account, email, dashboard, or Xquik web page. An idempotent
18
- # replay returns the same key.
14
+ # Create a one-use hosted checkout after the user confirms $10-$250 USD. The
15
+ # request creates no charge. It returns a paid-read API key without an Xquik
16
+ # account. Replays return the same key.
19
17
  #
20
18
  # @overload create(amount_minor:, idempotency_key:, currency: :usd, request_options: {})
21
19
  #
@@ -44,10 +42,9 @@ module XTwitterScraper
44
42
  )
45
43
  end
46
44
 
47
- # Poll after Stripe payment. Use usable to decide whether paid reads can run. An
48
- # active wallet can remain usable while a top-up is pending. A new wallet becomes
49
- # usable only after verified webhook fulfillment. Send the guest key as
50
- # Authorization: Bearer.
45
+ # Poll after payment. Use usable to decide whether paid reads can run. An active
46
+ # wallet can remain usable while a top-up is pending. A new wallet becomes usable
47
+ # only after payment is verified. Send the guest key as Authorization: Bearer.
51
48
  #
52
49
  # @overload retrieve_status(request_options: {})
53
50
  #
@@ -69,10 +66,9 @@ module XTwitterScraper
69
66
  # Some parameter documentations has been truncated, see
70
67
  # {XTwitterScraper::Models::GuestWalletTopupParams} for more details.
71
68
  #
72
- # Create a one-use Stripe-hosted checkout for an existing paid-read guest key
73
- # after the user explicitly confirms a $10-$250 USD amount. The key remains the
74
- # same. This request creates no charge by itself and never redirects through an
75
- # Xquik web page.
69
+ # Create a one-use hosted checkout after the user confirms a $10-$250 USD amount
70
+ # for an existing paid-read guest key. The key remains the same. This request
71
+ # creates no charge and never redirects through Xquik.
76
72
  #
77
73
  # @overload topup(amount_minor:, idempotency_key:, currency: :usd, request_options: {})
78
74
  #
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module XTwitterScraper
4
+ module Resources
5
+ class Support
6
+ # Support ticket management
7
+ class Attachments
8
+ # Streams an authenticated user's support image or video. Video requests support
9
+ # one standard byte range for seeking and resumable playback.
10
+ #
11
+ # @overload download(id, range: nil, request_options: {})
12
+ #
13
+ # @param id [String] Support attachment public ID
14
+ #
15
+ # @param range [String] Optional single byte range
16
+ #
17
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
18
+ #
19
+ # @return [StringIO]
20
+ #
21
+ # @see XTwitterScraper::Models::Support::AttachmentDownloadParams
22
+ def download(id, params = {})
23
+ parsed, options = XTwitterScraper::Support::AttachmentDownloadParams.dump_request(params)
24
+ @client.request(
25
+ method: :get,
26
+ path: ["support/attachments/%1$s", id],
27
+ headers: {"accept" => "application/octet-stream", **parsed}.transform_keys(range: "range"),
28
+ model: StringIO,
29
+ options: options
30
+ )
31
+ end
32
+
33
+ # @api private
34
+ #
35
+ # @param client [XTwitterScraper::Client]
36
+ def initialize(client:)
37
+ @client = client
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -7,6 +7,10 @@
7
7
  module XTwitterScraper
8
8
  module Resources
9
9
  class Support
10
+ # Support ticket management
11
+ # @return [XTwitterScraper::Resources::Support::Attachments]
12
+ attr_reader :attachments
13
+
10
14
  # Support ticket management
11
15
  # @return [XTwitterScraper::Resources::Support::Tickets]
12
16
  attr_reader :tickets
@@ -16,6 +20,7 @@ module XTwitterScraper
16
20
  # @param client [XTwitterScraper::Client]
17
21
  def initialize(client:)
18
22
  @client = client
23
+ @attachments = XTwitterScraper::Resources::Support::Attachments.new(client: client)
19
24
  @tickets = XTwitterScraper::Resources::Support::Tickets.new(client: client)
20
25
  end
21
26
  end
@@ -107,14 +107,42 @@ module XTwitterScraper
107
107
  #
108
108
  # List members of a community
109
109
  #
110
- # @overload retrieve_members(id, cursor: nil, page_size: nil, request_options: {})
110
+ # @overload retrieve_members(id, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
111
111
  #
112
112
  # @param id [String] Community ID for member lookup
113
113
  #
114
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
115
+ #
114
116
  # @param cursor [String] Pagination cursor
115
117
  #
118
+ # @param has_location [Boolean] Only return profiles with a location.
119
+ #
120
+ # @param has_website [Boolean] Only return profiles with a website.
121
+ #
122
+ # @param location_contains [String] Match a location substring, ignoring case.
123
+ #
124
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
125
+ #
126
+ # @param max_following [Integer] Maximum following count.
127
+ #
128
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
129
+ #
130
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
131
+ #
132
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
133
+ #
134
+ # @param min_following [Integer] Minimum following count.
135
+ #
136
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
137
+ #
116
138
  # @param page_size [Integer] Items per page (20-200, default 20). This is an upper bound for paid authenticat
117
139
  #
140
+ # @param username_contains [String] Match a username substring, ignoring case.
141
+ #
142
+ # @param verified_only [Boolean] Only return verified profiles.
143
+ #
144
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
145
+ #
118
146
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
119
147
  #
120
148
  # @return [XTwitterScraper::Models::PaginatedUsers]
@@ -126,20 +154,68 @@ module XTwitterScraper
126
154
  @client.request(
127
155
  method: :get,
128
156
  path: ["x/communities/%1$s/members", id],
129
- query: query.transform_keys(page_size: "pageSize"),
157
+ query: query.transform_keys(
158
+ bio_contains: "bioContains",
159
+ has_location: "hasLocation",
160
+ has_website: "hasWebsite",
161
+ location_contains: "locationContains",
162
+ max_followers: "maxFollowers",
163
+ max_following: "maxFollowing",
164
+ max_statuses: "maxStatuses",
165
+ min_account_age_days: "minAccountAgeDays",
166
+ min_followers: "minFollowers",
167
+ min_following: "minFollowing",
168
+ min_statuses: "minStatuses",
169
+ page_size: "pageSize",
170
+ username_contains: "usernameContains",
171
+ verified_only: "verifiedOnly",
172
+ verified_type: "verifiedType"
173
+ ),
130
174
  model: XTwitterScraper::PaginatedUsers,
131
175
  options: options
132
176
  )
133
177
  end
134
178
 
179
+ # Some parameter documentations has been truncated, see
180
+ # {XTwitterScraper::Models::X::CommunityRetrieveModeratorsParams} for more
181
+ # details.
182
+ #
135
183
  # List moderators of a community
136
184
  #
137
- # @overload retrieve_moderators(id, cursor: nil, request_options: {})
185
+ # @overload retrieve_moderators(id, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
138
186
  #
139
187
  # @param id [String] Community ID for moderator lookup
140
188
  #
189
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
190
+ #
141
191
  # @param cursor [String] Pagination cursor for community moderators
142
192
  #
193
+ # @param has_location [Boolean] Only return profiles with a location.
194
+ #
195
+ # @param has_website [Boolean] Only return profiles with a website.
196
+ #
197
+ # @param location_contains [String] Match a location substring, ignoring case.
198
+ #
199
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
200
+ #
201
+ # @param max_following [Integer] Maximum following count.
202
+ #
203
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
204
+ #
205
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
206
+ #
207
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
208
+ #
209
+ # @param min_following [Integer] Minimum following count.
210
+ #
211
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
212
+ #
213
+ # @param username_contains [String] Match a username substring, ignoring case.
214
+ #
215
+ # @param verified_only [Boolean] Only return verified profiles.
216
+ #
217
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
218
+ #
143
219
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
144
220
  #
145
221
  # @return [XTwitterScraper::Models::PaginatedUsers]
@@ -151,7 +227,22 @@ module XTwitterScraper
151
227
  @client.request(
152
228
  method: :get,
153
229
  path: ["x/communities/%1$s/moderators", id],
154
- query: query,
230
+ query: query.transform_keys(
231
+ bio_contains: "bioContains",
232
+ has_location: "hasLocation",
233
+ has_website: "hasWebsite",
234
+ location_contains: "locationContains",
235
+ max_followers: "maxFollowers",
236
+ max_following: "maxFollowing",
237
+ max_statuses: "maxStatuses",
238
+ min_account_age_days: "minAccountAgeDays",
239
+ min_followers: "minFollowers",
240
+ min_following: "minFollowing",
241
+ min_statuses: "minStatuses",
242
+ username_contains: "usernameContains",
243
+ verified_only: "verifiedOnly",
244
+ verified_type: "verifiedType"
245
+ ),
155
246
  model: XTwitterScraper::PaginatedUsers,
156
247
  options: options
157
248
  )
@@ -14,13 +14,41 @@ module XTwitterScraper
14
14
  #
15
15
  # List followers of an X List
16
16
  #
17
- # @overload retrieve_followers(id, cursor: nil, page_size: nil, request_options: {})
17
+ # @overload retrieve_followers(id, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
18
18
  #
19
19
  # @param id [String] List ID
20
20
  #
21
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
22
+ #
21
23
  # @param cursor [String] Pagination cursor for list followers
22
24
  #
23
- # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
25
+ # @param has_location [Boolean] Only return profiles with a location.
26
+ #
27
+ # @param has_website [Boolean] Only return profiles with a website.
28
+ #
29
+ # @param location_contains [String] Match a location substring, ignoring case.
30
+ #
31
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
32
+ #
33
+ # @param max_following [Integer] Maximum following count.
34
+ #
35
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
36
+ #
37
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
38
+ #
39
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
40
+ #
41
+ # @param min_following [Integer] Minimum following count.
42
+ #
43
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
44
+ #
45
+ # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). Source, fi
46
+ #
47
+ # @param username_contains [String] Match a username substring, ignoring case.
48
+ #
49
+ # @param verified_only [Boolean] Only return verified profiles.
50
+ #
51
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
24
52
  #
25
53
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
26
54
  #
@@ -33,22 +61,69 @@ module XTwitterScraper
33
61
  @client.request(
34
62
  method: :get,
35
63
  path: ["x/lists/%1$s/followers", id],
36
- query: query.transform_keys(page_size: "pageSize"),
64
+ query: query.transform_keys(
65
+ bio_contains: "bioContains",
66
+ has_location: "hasLocation",
67
+ has_website: "hasWebsite",
68
+ location_contains: "locationContains",
69
+ max_followers: "maxFollowers",
70
+ max_following: "maxFollowing",
71
+ max_statuses: "maxStatuses",
72
+ min_account_age_days: "minAccountAgeDays",
73
+ min_followers: "minFollowers",
74
+ min_following: "minFollowing",
75
+ min_statuses: "minStatuses",
76
+ page_size: "pageSize",
77
+ username_contains: "usernameContains",
78
+ verified_only: "verifiedOnly",
79
+ verified_type: "verifiedType"
80
+ ),
37
81
  model: XTwitterScraper::PaginatedUsers,
38
82
  options: options
39
83
  )
40
84
  end
41
85
 
86
+ # Some parameter documentations has been truncated, see
87
+ # {XTwitterScraper::Models::X::ListRetrieveMembersParams} for more details.
88
+ #
42
89
  # List members of an X List
43
90
  #
44
- # @overload retrieve_members(id, cursor: nil, page_size: nil, request_options: {})
91
+ # @overload retrieve_members(id, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
45
92
  #
46
93
  # @param id [String] List ID for member lookup
47
94
  #
95
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
96
+ #
48
97
  # @param cursor [String] Pagination cursor for list members
49
98
  #
99
+ # @param has_location [Boolean] Only return profiles with a location.
100
+ #
101
+ # @param has_website [Boolean] Only return profiles with a website.
102
+ #
103
+ # @param location_contains [String] Match a location substring, ignoring case.
104
+ #
105
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
106
+ #
107
+ # @param max_following [Integer] Maximum following count.
108
+ #
109
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
110
+ #
111
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
112
+ #
113
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
114
+ #
115
+ # @param min_following [Integer] Minimum following count.
116
+ #
117
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
118
+ #
50
119
  # @param page_size [Integer] Members per page (20-200, default 20)
51
120
  #
121
+ # @param username_contains [String] Match a username substring, ignoring case.
122
+ #
123
+ # @param verified_only [Boolean] Only return verified profiles.
124
+ #
125
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
126
+ #
52
127
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
53
128
  #
54
129
  # @return [XTwitterScraper::Models::PaginatedUsers]
@@ -60,7 +135,23 @@ module XTwitterScraper
60
135
  @client.request(
61
136
  method: :get,
62
137
  path: ["x/lists/%1$s/members", id],
63
- query: query.transform_keys(page_size: "pageSize"),
138
+ query: query.transform_keys(
139
+ bio_contains: "bioContains",
140
+ has_location: "hasLocation",
141
+ has_website: "hasWebsite",
142
+ location_contains: "locationContains",
143
+ max_followers: "maxFollowers",
144
+ max_following: "maxFollowing",
145
+ max_statuses: "maxStatuses",
146
+ min_account_age_days: "minAccountAgeDays",
147
+ min_followers: "minFollowers",
148
+ min_following: "minFollowing",
149
+ min_statuses: "minStatuses",
150
+ page_size: "pageSize",
151
+ username_contains: "usernameContains",
152
+ verified_only: "verifiedOnly",
153
+ verified_type: "verifiedType"
154
+ ),
64
155
  model: XTwitterScraper::PaginatedUsers,
65
156
  options: options
66
157
  )