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
@@ -8,64 +8,43 @@ module XTwitterScraper
8
8
  module Models
9
9
  # @see XTwitterScraper::Resources::Extractions#run
10
10
  class ExtractionRunResponse < XTwitterScraper::Internal::Type::BaseModel
11
- # @!attribute id
11
+ # @!attribute allowed
12
12
  #
13
- # @return [String]
14
- required :id, String
13
+ # @return [Boolean]
14
+ required :allowed, XTwitterScraper::Internal::Type::Boolean
15
15
 
16
- # @!attribute status
16
+ # @!attribute credits_available
17
17
  #
18
- # @return [Symbol, :running]
19
- required :status, const: :running
18
+ # @return [String]
19
+ required :credits_available, String, api_name: :creditsAvailable
20
20
 
21
- # @!attribute tool_type
22
- # Identifier for the extraction tool used to run a job.
21
+ # @!attribute credits_required
23
22
  #
24
- # @return [Symbol, XTwitterScraper::Models::ExtractionRunResponse::ToolType]
25
- required :tool_type,
26
- enum: -> { XTwitterScraper::Models::ExtractionRunResponse::ToolType },
27
- api_name: :toolType
23
+ # @return [String]
24
+ required :credits_required, String, api_name: :creditsRequired
28
25
 
29
- # @!method initialize(id:, tool_type:, status: :running)
30
- # @param id [String]
31
- #
32
- # @param tool_type [Symbol, XTwitterScraper::Models::ExtractionRunResponse::ToolType] Identifier for the extraction tool used to run a job.
26
+ # @!attribute estimated_results
33
27
  #
34
- # @param status [Symbol, :running]
28
+ # @return [Integer]
29
+ required :estimated_results, Integer, api_name: :estimatedResults
35
30
 
36
- # Identifier for the extraction tool used to run a job.
31
+ # @!attribute source
37
32
  #
38
- # @see XTwitterScraper::Models::ExtractionRunResponse#tool_type
39
- module ToolType
40
- extend XTwitterScraper::Internal::Type::Enum
41
-
42
- ARTICLE_EXTRACTOR = :article_extractor
43
- COMMUNITY_EXTRACTOR = :community_extractor
44
- COMMUNITY_MODERATOR_EXPLORER = :community_moderator_explorer
45
- COMMUNITY_POST_EXTRACTOR = :community_post_extractor
46
- COMMUNITY_SEARCH = :community_search
47
- FAVORITERS = :favoriters
48
- FOLLOWER_EXPLORER = :follower_explorer
49
- FOLLOWING_EXPLORER = :following_explorer
50
- LIST_FOLLOWER_EXPLORER = :list_follower_explorer
51
- LIST_MEMBER_EXTRACTOR = :list_member_extractor
52
- LIST_POST_EXTRACTOR = :list_post_extractor
53
- MENTION_EXTRACTOR = :mention_extractor
54
- PEOPLE_SEARCH = :people_search
55
- POST_EXTRACTOR = :post_extractor
56
- QUOTE_EXTRACTOR = :quote_extractor
57
- REPLY_EXTRACTOR = :reply_extractor
58
- REPOST_EXTRACTOR = :repost_extractor
59
- SPACE_EXPLORER = :space_explorer
60
- THREAD_EXTRACTOR = :thread_extractor
61
- TWEET_SEARCH_EXTRACTOR = :tweet_search_extractor
62
- USER_LIKES = :user_likes
63
- USER_MEDIA = :user_media
64
- VERIFIED_FOLLOWER_EXPLORER = :verified_follower_explorer
33
+ # @return [String]
34
+ required :source, String
65
35
 
66
- # @!method self.values
67
- # @return [Array<Symbol>]
68
- end
36
+ # @!attribute resolved_x_user_id
37
+ #
38
+ # @return [String, nil]
39
+ optional :resolved_x_user_id, String, api_name: :resolvedXUserId
40
+
41
+ # @!method initialize(allowed:, credits_available:, credits_required:, estimated_results:, source:, resolved_x_user_id: nil)
42
+ # @param allowed [Boolean]
43
+ # @param credits_available [String]
44
+ # @param credits_required [String]
45
+ # @param estimated_results [Integer]
46
+ # @param source [String]
47
+ # @param resolved_x_user_id [String]
69
48
  end
70
49
  end
71
50
  end
@@ -32,7 +32,7 @@ module XTwitterScraper
32
32
  required :authorization, -> { XTwitterScraper::Models::GuestWalletCreateResponse::Authorization }
33
33
 
34
34
  # @!attribute checkout_url
35
- # Raw Stripe-hosted checkout URL for user interaction.
35
+ # Hosted checkout URL for user interaction.
36
36
  #
37
37
  # @return [String]
38
38
  required :checkout_url, String
@@ -56,10 +56,10 @@ module XTwitterScraper
56
56
  required :expires_at, Time
57
57
 
58
58
  # @!attribute instructions
59
+ # Hosted checkout and status polling instructions.
59
60
  #
60
- # @return [Symbol, :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending."]
61
- required :instructions,
62
- const: :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending."
61
+ # @return [String]
62
+ required :instructions, String
63
63
 
64
64
  # @!attribute poll_after_seconds
65
65
  # Wait at least this long before polling status_url.
@@ -92,7 +92,7 @@ module XTwitterScraper
92
92
  # @return [String]
93
93
  required :wallet_id, String
94
94
 
95
- # @!method initialize(amount:, api_key:, authorization:, checkout_url:, credits:, expires_at:, purchase_id:, status:, wallet_id:, account_required: false, credential_notice: :"Store api_key and the Idempotency-Key securely before sharing checkout_url. No email recovery is available.", instructions: :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending.", poll_after_seconds: 2, requires_user_interaction: true, status_url: :"https://xquik.com/api/v1/guest-wallets/status")
95
+ # @!method initialize(amount:, api_key:, authorization:, checkout_url:, credits:, expires_at:, instructions:, purchase_id:, status:, wallet_id:, account_required: false, credential_notice: :"Store api_key and the Idempotency-Key securely before sharing checkout_url. No email recovery is available.", poll_after_seconds: 2, requires_user_interaction: true, status_url: :"https://xquik.com/api/v1/guest-wallets/status")
96
96
  # Some parameter documentations has been truncated, see
97
97
  # {XTwitterScraper::Models::GuestWalletCreateResponse} for more details.
98
98
  #
@@ -104,12 +104,14 @@ module XTwitterScraper
104
104
  #
105
105
  # @param authorization [XTwitterScraper::Models::GuestWalletCreateResponse::Authorization]
106
106
  #
107
- # @param checkout_url [String] Raw Stripe-hosted checkout URL for user interaction.
107
+ # @param checkout_url [String] Hosted checkout URL for user interaction.
108
108
  #
109
109
  # @param credits [String] Credits granted after verified payment.
110
110
  #
111
111
  # @param expires_at [Time] Time when the pending checkout expires.
112
112
  #
113
+ # @param instructions [String] Hosted checkout and status polling instructions.
114
+ #
113
115
  # @param purchase_id [String]
114
116
  #
115
117
  # @param status [Symbol, XTwitterScraper::Models::GuestWalletCreateResponse::Status]
@@ -120,8 +122,6 @@ module XTwitterScraper
120
122
  #
121
123
  # @param credential_notice [Symbol, :"Store api_key and the Idempotency-Key securely before sharing checkout_url. No email recovery is available."]
122
124
  #
123
- # @param instructions [Symbol, :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending."]
124
- #
125
125
  # @param poll_after_seconds [Integer, 2] Wait at least this long before polling status_url.
126
126
  #
127
127
  # @param requires_user_interaction [Boolean, true]
@@ -20,7 +20,7 @@ module XTwitterScraper
20
20
  required :amount, -> { XTwitterScraper::GuestWalletAmount }
21
21
 
22
22
  # @!attribute checkout_url
23
- # Raw Stripe-hosted checkout URL for user interaction.
23
+ # Hosted checkout URL for user interaction.
24
24
  #
25
25
  # @return [String]
26
26
  required :checkout_url, String
@@ -38,10 +38,10 @@ module XTwitterScraper
38
38
  required :expires_at, Time
39
39
 
40
40
  # @!attribute instructions
41
+ # Hosted checkout and status polling instructions.
41
42
  #
42
- # @return [Symbol, :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending."]
43
- required :instructions,
44
- const: :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending."
43
+ # @return [String]
44
+ required :instructions, String
45
45
 
46
46
  # @!attribute poll_after_seconds
47
47
  # Wait at least this long before polling status_url.
@@ -92,20 +92,22 @@ module XTwitterScraper
92
92
  optional :credential_notice,
93
93
  enum: -> { XTwitterScraper::Models::GuestWalletTopupResponse::CredentialNotice }
94
94
 
95
- # @!method initialize(amount:, checkout_url:, credits:, expires_at:, purchase_id:, status:, wallet_id:, api_key: nil, authorization: nil, credential_notice: nil, account_required: false, instructions: :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending.", poll_after_seconds: 2, requires_user_interaction: true, status_url: :"https://xquik.com/api/v1/guest-wallets/status")
95
+ # @!method initialize(amount:, checkout_url:, credits:, expires_at:, instructions:, purchase_id:, status:, wallet_id:, api_key: nil, authorization: nil, credential_notice: nil, account_required: false, poll_after_seconds: 2, requires_user_interaction: true, status_url: :"https://xquik.com/api/v1/guest-wallets/status")
96
96
  # Some parameter documentations has been truncated, see
97
97
  # {XTwitterScraper::Models::GuestWalletTopupResponse} for more details.
98
98
  #
99
- # Pending Stripe checkout and guest wallet purchase details.
99
+ # Pending hosted checkout and guest wallet purchase details.
100
100
  #
101
101
  # @param amount [XTwitterScraper::Models::GuestWalletAmount] Confirmed USD amount for a guest wallet purchase.
102
102
  #
103
- # @param checkout_url [String] Raw Stripe-hosted checkout URL for user interaction.
103
+ # @param checkout_url [String] Hosted checkout URL for user interaction.
104
104
  #
105
105
  # @param credits [String] Credits granted after verified payment.
106
106
  #
107
107
  # @param expires_at [Time] Time when the pending checkout expires.
108
108
  #
109
+ # @param instructions [String] Hosted checkout and status polling instructions.
110
+ #
109
111
  # @param purchase_id [String]
110
112
  #
111
113
  # @param status [Symbol, XTwitterScraper::Models::GuestWalletTopupResponse::Status]
@@ -120,8 +122,6 @@ module XTwitterScraper
120
122
  #
121
123
  # @param account_required [Boolean, false]
122
124
  #
123
- # @param instructions [Symbol, :"Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending."]
124
- #
125
125
  # @param poll_after_seconds [Integer, 2] Wait at least this long before polling status_url.
126
126
  #
127
127
  # @param requires_user_interaction [Boolean, true]
@@ -47,7 +47,19 @@ module XTwitterScraper
47
47
  # @return [String]
48
48
  required :x_user_id, String, api_name: :xUserId
49
49
 
50
- # @!method initialize(id:, created_at:, event_types:, is_active:, next_billing_at:, username:, x_user_id:)
50
+ # @!attribute paused_at
51
+ # When Xquik automatically paused this monitor.
52
+ #
53
+ # @return [Time, nil]
54
+ optional :paused_at, Time, api_name: :pausedAt
55
+
56
+ # @!attribute paused_reason
57
+ # Why Xquik automatically paused this monitor.
58
+ #
59
+ # @return [Symbol, XTwitterScraper::Models::Monitor::PausedReason, nil]
60
+ optional :paused_reason, enum: -> { XTwitterScraper::Monitor::PausedReason }, api_name: :pausedReason
61
+
62
+ # @!method initialize(id:, created_at:, event_types:, is_active:, next_billing_at:, username:, x_user_id:, paused_at: nil, paused_reason: nil)
51
63
  # Account monitor that tracks activity for a given X user.
52
64
  #
53
65
  # @param id [String]
@@ -63,6 +75,22 @@ module XTwitterScraper
63
75
  # @param username [String]
64
76
  #
65
77
  # @param x_user_id [String]
78
+ #
79
+ # @param paused_at [Time] When Xquik automatically paused this monitor.
80
+ #
81
+ # @param paused_reason [Symbol, XTwitterScraper::Models::Monitor::PausedReason] Why Xquik automatically paused this monitor.
82
+
83
+ # Why Xquik automatically paused this monitor.
84
+ #
85
+ # @see XTwitterScraper::Models::Monitor#paused_reason
86
+ module PausedReason
87
+ extend XTwitterScraper::Internal::Type::Enum
88
+
89
+ X_USER_NOT_FOUND = :x_user_not_found
90
+
91
+ # @!method self.values
92
+ # @return [Array<Symbol>]
93
+ end
66
94
  end
67
95
  end
68
96
  end
@@ -23,10 +23,10 @@ module XTwitterScraper
23
23
  required :tweets, -> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::SearchTweet] }
24
24
 
25
25
  # @!method initialize(has_next_page:, next_cursor:, tweets:)
26
- # Paginated tweets. Source visibility, filters, or remaining credits can reduce
27
- # results. An empty filtered page can still have has_next_page true. Follow
28
- # next_cursor while has_next_page is true. Zero affordable results returns 402
29
- # insufficient_credits.
26
+ # No-mode search, user Tweet, user reply, and direct reply reads use automatic
27
+ # coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed
28
+ # cursors remain legacy. Follow next_cursor while has_next_page is true. An empty
29
+ # filtered page can still have has_next_page true.
30
30
  #
31
31
  # @param has_next_page [Boolean]
32
32
  # @param next_cursor [String]
@@ -23,11 +23,11 @@ module XTwitterScraper
23
23
  required :users, -> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::UserProfile] }
24
24
 
25
25
  # @!method initialize(has_next_page:, next_cursor:, users:)
26
- # Paginated user profiles. The item count can be lower than pageSize when the
27
- # source returns fewer profiles or remaining credits cover fewer results. Follow
28
- # next_cursor while has_next_page is true. A relationship can naturally contain
29
- # fewer profiles than requested. Zero affordable results returns 402
30
- # insufficient_credits.
26
+ # Paginated user profiles. No-mode follower, following, and verified follower
27
+ # requests merge independent views automatically. Response fields, page size,
28
+ # aliases, filters, and per-returned-profile billing stay unchanged. Existing
29
+ # unprefixed cursors retain legacy behavior. Follow next_cursor while
30
+ # has_next_page is true.
31
31
  #
32
32
  # @param has_next_page [Boolean]
33
33
  # @param next_cursor [String]
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ module Support
6
+ # @see XTwitterScraper::Resources::Support::Attachments#download
7
+ class AttachmentDownloadParams < XTwitterScraper::Internal::Type::BaseModel
8
+ extend XTwitterScraper::Internal::Type::RequestParameters::Converter
9
+ include XTwitterScraper::Internal::Type::RequestParameters
10
+
11
+ # @!attribute id
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute range
17
+ #
18
+ # @return [String, nil]
19
+ optional :range, String
20
+
21
+ # @!method initialize(id:, range: nil, request_options: {})
22
+ # @param id [String]
23
+ # @param range [String]
24
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
25
+ end
26
+ end
27
+ end
28
+ end
@@ -17,12 +17,78 @@ module XTwitterScraper
17
17
  # @return [String]
18
18
  required :id, String
19
19
 
20
+ # @!attribute bio_contains
21
+ # Match any comma-separated or line-separated bio term, ignoring case.
22
+ #
23
+ # @return [String, nil]
24
+ optional :bio_contains, String
25
+
20
26
  # @!attribute cursor
21
27
  # Pagination cursor
22
28
  #
23
29
  # @return [String, nil]
24
30
  optional :cursor, String
25
31
 
32
+ # @!attribute has_location
33
+ # Only return profiles with a location.
34
+ #
35
+ # @return [Boolean, nil]
36
+ optional :has_location, XTwitterScraper::Internal::Type::Boolean
37
+
38
+ # @!attribute has_website
39
+ # Only return profiles with a website.
40
+ #
41
+ # @return [Boolean, nil]
42
+ optional :has_website, XTwitterScraper::Internal::Type::Boolean
43
+
44
+ # @!attribute location_contains
45
+ # Match a location substring, ignoring case.
46
+ #
47
+ # @return [String, nil]
48
+ optional :location_contains, String
49
+
50
+ # @!attribute max_followers
51
+ # Maximum follower count. Missing counts pass this maximum.
52
+ #
53
+ # @return [Integer, nil]
54
+ optional :max_followers, Integer
55
+
56
+ # @!attribute max_following
57
+ # Maximum following count.
58
+ #
59
+ # @return [Integer, nil]
60
+ optional :max_following, Integer
61
+
62
+ # @!attribute max_statuses
63
+ # Maximum post count. maxPosts is also accepted.
64
+ #
65
+ # @return [Integer, nil]
66
+ optional :max_statuses, Integer
67
+
68
+ # @!attribute min_account_age_days
69
+ # Minimum account age in whole days.
70
+ #
71
+ # @return [Integer, nil]
72
+ optional :min_account_age_days, Integer
73
+
74
+ # @!attribute min_followers
75
+ # Minimum follower count. Filtering happens before billing.
76
+ #
77
+ # @return [Integer, nil]
78
+ optional :min_followers, Integer
79
+
80
+ # @!attribute min_following
81
+ # Minimum following count.
82
+ #
83
+ # @return [Integer, nil]
84
+ optional :min_following, Integer
85
+
86
+ # @!attribute min_statuses
87
+ # Minimum post count. minPosts is also accepted.
88
+ #
89
+ # @return [Integer, nil]
90
+ optional :min_statuses, Integer
91
+
26
92
  # @!attribute page_size
27
93
  # Items per page (20-200, default 20). This is an upper bound for paid
28
94
  # authenticated calls: remaining credits can reduce the returned page size, and
@@ -31,16 +97,62 @@ module XTwitterScraper
31
97
  # @return [Integer, nil]
32
98
  optional :page_size, Integer
33
99
 
34
- # @!method initialize(id:, cursor: nil, page_size: nil, request_options: {})
100
+ # @!attribute username_contains
101
+ # Match a username substring, ignoring case.
102
+ #
103
+ # @return [String, nil]
104
+ optional :username_contains, String
105
+
106
+ # @!attribute verified_only
107
+ # Only return verified profiles.
108
+ #
109
+ # @return [Boolean, nil]
110
+ optional :verified_only, XTwitterScraper::Internal::Type::Boolean
111
+
112
+ # @!attribute verified_type
113
+ # Match the verification type exactly, ignoring case.
114
+ #
115
+ # @return [String, nil]
116
+ optional :verified_type, String
117
+
118
+ # @!method initialize(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: {})
35
119
  # Some parameter documentations has been truncated, see
36
120
  # {XTwitterScraper::Models::X::CommunityRetrieveMembersParams} for more details.
37
121
  #
38
122
  # @param id [String]
39
123
  #
124
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
125
+ #
40
126
  # @param cursor [String] Pagination cursor
41
127
  #
128
+ # @param has_location [Boolean] Only return profiles with a location.
129
+ #
130
+ # @param has_website [Boolean] Only return profiles with a website.
131
+ #
132
+ # @param location_contains [String] Match a location substring, ignoring case.
133
+ #
134
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
135
+ #
136
+ # @param max_following [Integer] Maximum following count.
137
+ #
138
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
139
+ #
140
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
141
+ #
142
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
143
+ #
144
+ # @param min_following [Integer] Minimum following count.
145
+ #
146
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
147
+ #
42
148
  # @param page_size [Integer] Items per page (20-200, default 20). This is an upper bound for paid authenticat
43
149
  #
150
+ # @param username_contains [String] Match a username substring, ignoring case.
151
+ #
152
+ # @param verified_only [Boolean] Only return verified profiles.
153
+ #
154
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
155
+ #
44
156
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
45
157
  end
46
158
  end
@@ -17,17 +17,133 @@ module XTwitterScraper
17
17
  # @return [String]
18
18
  required :id, String
19
19
 
20
+ # @!attribute bio_contains
21
+ # Match any comma-separated or line-separated bio term, ignoring case.
22
+ #
23
+ # @return [String, nil]
24
+ optional :bio_contains, String
25
+
20
26
  # @!attribute cursor
21
27
  # Pagination cursor for community moderators
22
28
  #
23
29
  # @return [String, nil]
24
30
  optional :cursor, String
25
31
 
26
- # @!method initialize(id:, cursor: nil, request_options: {})
32
+ # @!attribute has_location
33
+ # Only return profiles with a location.
34
+ #
35
+ # @return [Boolean, nil]
36
+ optional :has_location, XTwitterScraper::Internal::Type::Boolean
37
+
38
+ # @!attribute has_website
39
+ # Only return profiles with a website.
40
+ #
41
+ # @return [Boolean, nil]
42
+ optional :has_website, XTwitterScraper::Internal::Type::Boolean
43
+
44
+ # @!attribute location_contains
45
+ # Match a location substring, ignoring case.
46
+ #
47
+ # @return [String, nil]
48
+ optional :location_contains, String
49
+
50
+ # @!attribute max_followers
51
+ # Maximum follower count. Missing counts pass this maximum.
52
+ #
53
+ # @return [Integer, nil]
54
+ optional :max_followers, Integer
55
+
56
+ # @!attribute max_following
57
+ # Maximum following count.
58
+ #
59
+ # @return [Integer, nil]
60
+ optional :max_following, Integer
61
+
62
+ # @!attribute max_statuses
63
+ # Maximum post count. maxPosts is also accepted.
64
+ #
65
+ # @return [Integer, nil]
66
+ optional :max_statuses, Integer
67
+
68
+ # @!attribute min_account_age_days
69
+ # Minimum account age in whole days.
70
+ #
71
+ # @return [Integer, nil]
72
+ optional :min_account_age_days, Integer
73
+
74
+ # @!attribute min_followers
75
+ # Minimum follower count. Filtering happens before billing.
76
+ #
77
+ # @return [Integer, nil]
78
+ optional :min_followers, Integer
79
+
80
+ # @!attribute min_following
81
+ # Minimum following count.
82
+ #
83
+ # @return [Integer, nil]
84
+ optional :min_following, Integer
85
+
86
+ # @!attribute min_statuses
87
+ # Minimum post count. minPosts is also accepted.
88
+ #
89
+ # @return [Integer, nil]
90
+ optional :min_statuses, Integer
91
+
92
+ # @!attribute username_contains
93
+ # Match a username substring, ignoring case.
94
+ #
95
+ # @return [String, nil]
96
+ optional :username_contains, String
97
+
98
+ # @!attribute verified_only
99
+ # Only return verified profiles.
100
+ #
101
+ # @return [Boolean, nil]
102
+ optional :verified_only, XTwitterScraper::Internal::Type::Boolean
103
+
104
+ # @!attribute verified_type
105
+ # Match the verification type exactly, ignoring case.
106
+ #
107
+ # @return [String, nil]
108
+ optional :verified_type, String
109
+
110
+ # @!method initialize(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: {})
111
+ # Some parameter documentations has been truncated, see
112
+ # {XTwitterScraper::Models::X::CommunityRetrieveModeratorsParams} for more
113
+ # details.
114
+ #
27
115
  # @param id [String]
28
116
  #
117
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
118
+ #
29
119
  # @param cursor [String] Pagination cursor for community moderators
30
120
  #
121
+ # @param has_location [Boolean] Only return profiles with a location.
122
+ #
123
+ # @param has_website [Boolean] Only return profiles with a website.
124
+ #
125
+ # @param location_contains [String] Match a location substring, ignoring case.
126
+ #
127
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
128
+ #
129
+ # @param max_following [Integer] Maximum following count.
130
+ #
131
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
132
+ #
133
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
134
+ #
135
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
136
+ #
137
+ # @param min_following [Integer] Minimum following count.
138
+ #
139
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
140
+ #
141
+ # @param username_contains [String] Match a username substring, ignoring case.
142
+ #
143
+ # @param verified_only [Boolean] Only return verified profiles.
144
+ #
145
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
146
+ #
31
147
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
32
148
  end
33
149
  end