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
@@ -9,9 +9,24 @@ module XTwitterScraper
9
9
  {
10
10
  id: String,
11
11
  after: String,
12
+ bio_contains: String,
12
13
  cursor: String,
14
+ has_location: bool,
15
+ has_website: bool,
13
16
  limit: Integer,
14
- page_size: Integer
17
+ location_contains: String,
18
+ max_followers: Integer,
19
+ max_following: Integer,
20
+ max_statuses: Integer,
21
+ min_account_age_days: Integer,
22
+ min_followers: Integer,
23
+ min_following: Integer,
24
+ min_statuses: Integer,
25
+ mode: XTwitterScraper::Models::X::UserRetrieveFollowersParams::mode,
26
+ page_size: Integer,
27
+ username_contains: String,
28
+ verified_only: bool,
29
+ verified_type: String
15
30
  }
16
31
  & XTwitterScraper::Internal::Type::request_parameters
17
32
 
@@ -25,35 +40,138 @@ module XTwitterScraper
25
40
 
26
41
  def after=: (String) -> String
27
42
 
43
+ attr_reader bio_contains: String?
44
+
45
+ def bio_contains=: (String) -> String
46
+
28
47
  attr_reader cursor: String?
29
48
 
30
49
  def cursor=: (String) -> String
31
50
 
51
+ attr_reader has_location: bool?
52
+
53
+ def has_location=: (bool) -> bool
54
+
55
+ attr_reader has_website: bool?
56
+
57
+ def has_website=: (bool) -> bool
58
+
32
59
  attr_reader limit: Integer?
33
60
 
34
61
  def limit=: (Integer) -> Integer
35
62
 
63
+ attr_reader location_contains: String?
64
+
65
+ def location_contains=: (String) -> String
66
+
67
+ attr_reader max_followers: Integer?
68
+
69
+ def max_followers=: (Integer) -> Integer
70
+
71
+ attr_reader max_following: Integer?
72
+
73
+ def max_following=: (Integer) -> Integer
74
+
75
+ attr_reader max_statuses: Integer?
76
+
77
+ def max_statuses=: (Integer) -> Integer
78
+
79
+ attr_reader min_account_age_days: Integer?
80
+
81
+ def min_account_age_days=: (Integer) -> Integer
82
+
83
+ attr_reader min_followers: Integer?
84
+
85
+ def min_followers=: (Integer) -> Integer
86
+
87
+ attr_reader min_following: Integer?
88
+
89
+ def min_following=: (Integer) -> Integer
90
+
91
+ attr_reader min_statuses: Integer?
92
+
93
+ def min_statuses=: (Integer) -> Integer
94
+
95
+ attr_reader mode: XTwitterScraper::Models::X::UserRetrieveFollowersParams::mode?
96
+
97
+ def mode=: (
98
+ XTwitterScraper::Models::X::UserRetrieveFollowersParams::mode
99
+ ) -> XTwitterScraper::Models::X::UserRetrieveFollowersParams::mode
100
+
36
101
  attr_reader page_size: Integer?
37
102
 
38
103
  def page_size=: (Integer) -> Integer
39
104
 
105
+ attr_reader username_contains: String?
106
+
107
+ def username_contains=: (String) -> String
108
+
109
+ attr_reader verified_only: bool?
110
+
111
+ def verified_only=: (bool) -> bool
112
+
113
+ attr_reader verified_type: String?
114
+
115
+ def verified_type=: (String) -> String
116
+
40
117
  def initialize: (
41
118
  id: String,
42
119
  ?after: String,
120
+ ?bio_contains: String,
43
121
  ?cursor: String,
122
+ ?has_location: bool,
123
+ ?has_website: bool,
44
124
  ?limit: Integer,
125
+ ?location_contains: String,
126
+ ?max_followers: Integer,
127
+ ?max_following: Integer,
128
+ ?max_statuses: Integer,
129
+ ?min_account_age_days: Integer,
130
+ ?min_followers: Integer,
131
+ ?min_following: Integer,
132
+ ?min_statuses: Integer,
133
+ ?mode: XTwitterScraper::Models::X::UserRetrieveFollowersParams::mode,
45
134
  ?page_size: Integer,
135
+ ?username_contains: String,
136
+ ?verified_only: bool,
137
+ ?verified_type: String,
46
138
  ?request_options: XTwitterScraper::request_opts
47
139
  ) -> void
48
140
 
49
141
  def to_hash: -> {
50
142
  id: String,
51
143
  after: String,
144
+ bio_contains: String,
52
145
  cursor: String,
146
+ has_location: bool,
147
+ has_website: bool,
53
148
  limit: Integer,
149
+ location_contains: String,
150
+ max_followers: Integer,
151
+ max_following: Integer,
152
+ max_statuses: Integer,
153
+ min_account_age_days: Integer,
154
+ min_followers: Integer,
155
+ min_following: Integer,
156
+ min_statuses: Integer,
157
+ mode: XTwitterScraper::Models::X::UserRetrieveFollowersParams::mode,
54
158
  page_size: Integer,
159
+ username_contains: String,
160
+ verified_only: bool,
161
+ verified_type: String,
55
162
  request_options: XTwitterScraper::RequestOptions
56
163
  }
164
+
165
+ type mode = :standard | :coverage
166
+
167
+ module Mode
168
+ extend XTwitterScraper::Internal::Type::Enum
169
+
170
+ STANDARD: :standard
171
+ COVERAGE: :coverage
172
+
173
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersParams::mode]
174
+ end
57
175
  end
58
176
  end
59
177
  end
@@ -0,0 +1,216 @@
1
+ module XTwitterScraper
2
+ module Models
3
+ module X
4
+ type user_retrieve_followers_response =
5
+ XTwitterScraper::PaginatedUsers
6
+ | XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse
7
+
8
+ module UserRetrieveFollowersResponse
9
+ extend XTwitterScraper::Internal::Type::Union
10
+
11
+ type user_list_coverage_response =
12
+ {
13
+ diagnostic: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic,
14
+ has_next_page: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::has_next_page,
15
+ next_cursor: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::next_cursor
16
+ }
17
+
18
+ class UserListCoverageResponse < XTwitterScraper::Models::PaginatedUsers
19
+ def diagnostic: -> XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic
20
+
21
+ def diagnostic=: (
22
+ XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic _
23
+ ) -> XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic
24
+
25
+ def has_next_page: -> XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::has_next_page?
26
+
27
+ def has_next_page=: (
28
+ XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::has_next_page _
29
+ ) -> XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::has_next_page
30
+
31
+ def next_cursor: -> XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::next_cursor?
32
+
33
+ def next_cursor=: (
34
+ XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::next_cursor _
35
+ ) -> XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::next_cursor
36
+
37
+ def initialize: (
38
+ diagnostic: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic,
39
+ ?has_next_page: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::has_next_page,
40
+ ?next_cursor: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::next_cursor
41
+ ) -> void
42
+
43
+ def to_hash: -> {
44
+ diagnostic: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic,
45
+ has_next_page: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::has_next_page,
46
+ next_cursor: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::next_cursor
47
+ }
48
+
49
+ type diagnostic =
50
+ {
51
+ complete: bool,
52
+ cursor_failure_count: Integer,
53
+ deadline_reached: bool,
54
+ duplicate_count: Integer,
55
+ failed_strategy_count: Integer,
56
+ malformed_count: Integer,
57
+ pages_fetched: Integer,
58
+ response_truncated: bool,
59
+ result_limit_reached: bool,
60
+ returned_users: Integer,
61
+ stalled_strategy_count: Integer,
62
+ strategies: ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy],
63
+ strategy_count: Integer,
64
+ unique_users: Integer
65
+ }
66
+
67
+ class Diagnostic < XTwitterScraper::Internal::Type::BaseModel
68
+ attr_accessor complete: bool
69
+
70
+ attr_accessor cursor_failure_count: Integer
71
+
72
+ attr_accessor deadline_reached: bool
73
+
74
+ attr_accessor duplicate_count: Integer
75
+
76
+ attr_accessor failed_strategy_count: Integer
77
+
78
+ attr_accessor malformed_count: Integer
79
+
80
+ attr_accessor pages_fetched: Integer
81
+
82
+ attr_accessor response_truncated: bool
83
+
84
+ attr_accessor result_limit_reached: bool
85
+
86
+ attr_accessor returned_users: Integer
87
+
88
+ attr_accessor stalled_strategy_count: Integer
89
+
90
+ attr_accessor strategies: ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy]
91
+
92
+ attr_accessor strategy_count: Integer
93
+
94
+ attr_accessor unique_users: Integer
95
+
96
+ def initialize: (
97
+ complete: bool,
98
+ cursor_failure_count: Integer,
99
+ deadline_reached: bool,
100
+ duplicate_count: Integer,
101
+ failed_strategy_count: Integer,
102
+ malformed_count: Integer,
103
+ pages_fetched: Integer,
104
+ response_truncated: bool,
105
+ result_limit_reached: bool,
106
+ returned_users: Integer,
107
+ stalled_strategy_count: Integer,
108
+ strategies: ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy],
109
+ strategy_count: Integer,
110
+ unique_users: Integer
111
+ ) -> void
112
+
113
+ def to_hash: -> {
114
+ complete: bool,
115
+ cursor_failure_count: Integer,
116
+ deadline_reached: bool,
117
+ duplicate_count: Integer,
118
+ failed_strategy_count: Integer,
119
+ malformed_count: Integer,
120
+ pages_fetched: Integer,
121
+ response_truncated: bool,
122
+ result_limit_reached: bool,
123
+ returned_users: Integer,
124
+ stalled_strategy_count: Integer,
125
+ strategies: ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy],
126
+ strategy_count: Integer,
127
+ unique_users: Integer
128
+ }
129
+
130
+ type strategy =
131
+ {
132
+ duplicate_count: Integer,
133
+ pages_fetched: Integer,
134
+ stop_reason: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::stop_reason,
135
+ strategy: Integer,
136
+ unique_added: Integer
137
+ }
138
+
139
+ class Strategy < XTwitterScraper::Internal::Type::BaseModel
140
+ attr_accessor duplicate_count: Integer
141
+
142
+ attr_accessor pages_fetched: Integer
143
+
144
+ attr_accessor stop_reason: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::stop_reason
145
+
146
+ attr_accessor strategy: Integer
147
+
148
+ attr_accessor unique_added: Integer
149
+
150
+ def initialize: (
151
+ duplicate_count: Integer,
152
+ pages_fetched: Integer,
153
+ stop_reason: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::stop_reason,
154
+ strategy: Integer,
155
+ unique_added: Integer
156
+ ) -> void
157
+
158
+ def to_hash: -> {
159
+ duplicate_count: Integer,
160
+ pages_fetched: Integer,
161
+ stop_reason: XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::stop_reason,
162
+ strategy: Integer,
163
+ unique_added: Integer
164
+ }
165
+
166
+ type stop_reason =
167
+ :cursor_failure
168
+ | :deadline
169
+ | :exhausted
170
+ | :failed
171
+ | :page_limit
172
+ | :result_limit
173
+ | :stalled
174
+
175
+ module StopReason
176
+ extend XTwitterScraper::Internal::Type::Enum
177
+
178
+ CURSOR_FAILURE: :cursor_failure
179
+ DEADLINE: :deadline
180
+ EXHAUSTED: :exhausted
181
+ FAILED: :failed
182
+ PAGE_LIMIT: :page_limit
183
+ RESULT_LIMIT: :result_limit
184
+ STALLED: :stalled
185
+
186
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::stop_reason]
187
+ end
188
+ end
189
+ end
190
+
191
+ type has_next_page = false
192
+
193
+ module HasNextPage
194
+ extend XTwitterScraper::Internal::Type::Enum
195
+
196
+ FALSE: false
197
+
198
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::has_next_page]
199
+ end
200
+
201
+ type next_cursor = :""
202
+
203
+ module NextCursor
204
+ extend XTwitterScraper::Internal::Type::Enum
205
+
206
+ EMPTY: :""
207
+
208
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::next_cursor]
209
+ end
210
+ end
211
+
212
+ def self?.variants: -> ::Array[XTwitterScraper::Models::X::user_retrieve_followers_response]
213
+ end
214
+ end
215
+ end
216
+ end
@@ -6,7 +6,25 @@ module XTwitterScraper
6
6
  module Models
7
7
  module X
8
8
  type user_retrieve_followers_you_know_params =
9
- { id: String, cursor: String, page_size: Integer }
9
+ {
10
+ id: String,
11
+ bio_contains: String,
12
+ cursor: String,
13
+ has_location: bool,
14
+ has_website: bool,
15
+ location_contains: String,
16
+ max_followers: Integer,
17
+ max_following: Integer,
18
+ max_statuses: Integer,
19
+ min_account_age_days: Integer,
20
+ min_followers: Integer,
21
+ min_following: Integer,
22
+ min_statuses: Integer,
23
+ page_size: Integer,
24
+ username_contains: String,
25
+ verified_only: bool,
26
+ verified_type: String
27
+ }
10
28
  & XTwitterScraper::Internal::Type::request_parameters
11
29
 
12
30
  class UserRetrieveFollowersYouKnowParams < XTwitterScraper::Internal::Type::BaseModel
@@ -15,25 +33,109 @@ module XTwitterScraper
15
33
 
16
34
  attr_accessor id: String
17
35
 
36
+ attr_reader bio_contains: String?
37
+
38
+ def bio_contains=: (String) -> String
39
+
18
40
  attr_reader cursor: String?
19
41
 
20
42
  def cursor=: (String) -> String
21
43
 
44
+ attr_reader has_location: bool?
45
+
46
+ def has_location=: (bool) -> bool
47
+
48
+ attr_reader has_website: bool?
49
+
50
+ def has_website=: (bool) -> bool
51
+
52
+ attr_reader location_contains: String?
53
+
54
+ def location_contains=: (String) -> String
55
+
56
+ attr_reader max_followers: Integer?
57
+
58
+ def max_followers=: (Integer) -> Integer
59
+
60
+ attr_reader max_following: Integer?
61
+
62
+ def max_following=: (Integer) -> Integer
63
+
64
+ attr_reader max_statuses: Integer?
65
+
66
+ def max_statuses=: (Integer) -> Integer
67
+
68
+ attr_reader min_account_age_days: Integer?
69
+
70
+ def min_account_age_days=: (Integer) -> Integer
71
+
72
+ attr_reader min_followers: Integer?
73
+
74
+ def min_followers=: (Integer) -> Integer
75
+
76
+ attr_reader min_following: Integer?
77
+
78
+ def min_following=: (Integer) -> Integer
79
+
80
+ attr_reader min_statuses: Integer?
81
+
82
+ def min_statuses=: (Integer) -> Integer
83
+
22
84
  attr_reader page_size: Integer?
23
85
 
24
86
  def page_size=: (Integer) -> Integer
25
87
 
88
+ attr_reader username_contains: String?
89
+
90
+ def username_contains=: (String) -> String
91
+
92
+ attr_reader verified_only: bool?
93
+
94
+ def verified_only=: (bool) -> bool
95
+
96
+ attr_reader verified_type: String?
97
+
98
+ def verified_type=: (String) -> String
99
+
26
100
  def initialize: (
27
101
  id: String,
102
+ ?bio_contains: String,
28
103
  ?cursor: String,
104
+ ?has_location: bool,
105
+ ?has_website: bool,
106
+ ?location_contains: String,
107
+ ?max_followers: Integer,
108
+ ?max_following: Integer,
109
+ ?max_statuses: Integer,
110
+ ?min_account_age_days: Integer,
111
+ ?min_followers: Integer,
112
+ ?min_following: Integer,
113
+ ?min_statuses: Integer,
29
114
  ?page_size: Integer,
115
+ ?username_contains: String,
116
+ ?verified_only: bool,
117
+ ?verified_type: String,
30
118
  ?request_options: XTwitterScraper::request_opts
31
119
  ) -> void
32
120
 
33
121
  def to_hash: -> {
34
122
  id: String,
123
+ bio_contains: String,
35
124
  cursor: String,
125
+ has_location: bool,
126
+ has_website: bool,
127
+ location_contains: String,
128
+ max_followers: Integer,
129
+ max_following: Integer,
130
+ max_statuses: Integer,
131
+ min_account_age_days: Integer,
132
+ min_followers: Integer,
133
+ min_following: Integer,
134
+ min_statuses: Integer,
36
135
  page_size: Integer,
136
+ username_contains: String,
137
+ verified_only: bool,
138
+ verified_type: String,
37
139
  request_options: XTwitterScraper::RequestOptions
38
140
  }
39
141
  end
@@ -9,9 +9,24 @@ module XTwitterScraper
9
9
  {
10
10
  id: String,
11
11
  after: String,
12
+ bio_contains: String,
12
13
  cursor: String,
14
+ has_location: bool,
15
+ has_website: bool,
13
16
  limit: Integer,
14
- page_size: Integer
17
+ location_contains: String,
18
+ max_followers: Integer,
19
+ max_following: Integer,
20
+ max_statuses: Integer,
21
+ min_account_age_days: Integer,
22
+ min_followers: Integer,
23
+ min_following: Integer,
24
+ min_statuses: Integer,
25
+ mode: XTwitterScraper::Models::X::UserRetrieveFollowingParams::mode,
26
+ page_size: Integer,
27
+ username_contains: String,
28
+ verified_only: bool,
29
+ verified_type: String
15
30
  }
16
31
  & XTwitterScraper::Internal::Type::request_parameters
17
32
 
@@ -25,35 +40,138 @@ module XTwitterScraper
25
40
 
26
41
  def after=: (String) -> String
27
42
 
43
+ attr_reader bio_contains: String?
44
+
45
+ def bio_contains=: (String) -> String
46
+
28
47
  attr_reader cursor: String?
29
48
 
30
49
  def cursor=: (String) -> String
31
50
 
51
+ attr_reader has_location: bool?
52
+
53
+ def has_location=: (bool) -> bool
54
+
55
+ attr_reader has_website: bool?
56
+
57
+ def has_website=: (bool) -> bool
58
+
32
59
  attr_reader limit: Integer?
33
60
 
34
61
  def limit=: (Integer) -> Integer
35
62
 
63
+ attr_reader location_contains: String?
64
+
65
+ def location_contains=: (String) -> String
66
+
67
+ attr_reader max_followers: Integer?
68
+
69
+ def max_followers=: (Integer) -> Integer
70
+
71
+ attr_reader max_following: Integer?
72
+
73
+ def max_following=: (Integer) -> Integer
74
+
75
+ attr_reader max_statuses: Integer?
76
+
77
+ def max_statuses=: (Integer) -> Integer
78
+
79
+ attr_reader min_account_age_days: Integer?
80
+
81
+ def min_account_age_days=: (Integer) -> Integer
82
+
83
+ attr_reader min_followers: Integer?
84
+
85
+ def min_followers=: (Integer) -> Integer
86
+
87
+ attr_reader min_following: Integer?
88
+
89
+ def min_following=: (Integer) -> Integer
90
+
91
+ attr_reader min_statuses: Integer?
92
+
93
+ def min_statuses=: (Integer) -> Integer
94
+
95
+ attr_reader mode: XTwitterScraper::Models::X::UserRetrieveFollowingParams::mode?
96
+
97
+ def mode=: (
98
+ XTwitterScraper::Models::X::UserRetrieveFollowingParams::mode
99
+ ) -> XTwitterScraper::Models::X::UserRetrieveFollowingParams::mode
100
+
36
101
  attr_reader page_size: Integer?
37
102
 
38
103
  def page_size=: (Integer) -> Integer
39
104
 
105
+ attr_reader username_contains: String?
106
+
107
+ def username_contains=: (String) -> String
108
+
109
+ attr_reader verified_only: bool?
110
+
111
+ def verified_only=: (bool) -> bool
112
+
113
+ attr_reader verified_type: String?
114
+
115
+ def verified_type=: (String) -> String
116
+
40
117
  def initialize: (
41
118
  id: String,
42
119
  ?after: String,
120
+ ?bio_contains: String,
43
121
  ?cursor: String,
122
+ ?has_location: bool,
123
+ ?has_website: bool,
44
124
  ?limit: Integer,
125
+ ?location_contains: String,
126
+ ?max_followers: Integer,
127
+ ?max_following: Integer,
128
+ ?max_statuses: Integer,
129
+ ?min_account_age_days: Integer,
130
+ ?min_followers: Integer,
131
+ ?min_following: Integer,
132
+ ?min_statuses: Integer,
133
+ ?mode: XTwitterScraper::Models::X::UserRetrieveFollowingParams::mode,
45
134
  ?page_size: Integer,
135
+ ?username_contains: String,
136
+ ?verified_only: bool,
137
+ ?verified_type: String,
46
138
  ?request_options: XTwitterScraper::request_opts
47
139
  ) -> void
48
140
 
49
141
  def to_hash: -> {
50
142
  id: String,
51
143
  after: String,
144
+ bio_contains: String,
52
145
  cursor: String,
146
+ has_location: bool,
147
+ has_website: bool,
53
148
  limit: Integer,
149
+ location_contains: String,
150
+ max_followers: Integer,
151
+ max_following: Integer,
152
+ max_statuses: Integer,
153
+ min_account_age_days: Integer,
154
+ min_followers: Integer,
155
+ min_following: Integer,
156
+ min_statuses: Integer,
157
+ mode: XTwitterScraper::Models::X::UserRetrieveFollowingParams::mode,
54
158
  page_size: Integer,
159
+ username_contains: String,
160
+ verified_only: bool,
161
+ verified_type: String,
55
162
  request_options: XTwitterScraper::RequestOptions
56
163
  }
164
+
165
+ type mode = :standard | :coverage
166
+
167
+ module Mode
168
+ extend XTwitterScraper::Internal::Type::Enum
169
+
170
+ STANDARD: :standard
171
+ COVERAGE: :coverage
172
+
173
+ def self?.values: -> ::Array[XTwitterScraper::Models::X::UserRetrieveFollowingParams::mode]
174
+ end
57
175
  end
58
176
  end
59
177
  end