x-twitter-scraper 0.5.5 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +1 -1
  4. data/lib/x_twitter_scraper/internal/type/union.rb +25 -9
  5. data/lib/x_twitter_scraper/models/compose_create_response.rb +62 -1
  6. data/lib/x_twitter_scraper/models/content_disclosure.rb +1 -9
  7. data/lib/x_twitter_scraper/models/embedded_tweet.rb +389 -1
  8. data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -5
  9. data/lib/x_twitter_scraper/models/radar_item.rb +144 -7
  10. data/lib/x_twitter_scraper/models/search_tweet.rb +371 -1
  11. data/lib/x_twitter_scraper/models/support/ticket_list_response.rb +30 -17
  12. data/lib/x_twitter_scraper/models/support/ticket_retrieve_response.rb +49 -24
  13. data/lib/x_twitter_scraper/models/support/ticket_update_response.rb +18 -6
  14. data/lib/x_twitter_scraper/models/trend_list_response.rb +28 -1
  15. data/lib/x_twitter_scraper/models/tweet_media.rb +213 -1
  16. data/lib/x_twitter_scraper/models/user_profile.rb +211 -21
  17. data/lib/x_twitter_scraper/models/x/account_connection_attempt_retrieve_params.rb +22 -0
  18. data/lib/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rb +224 -0
  19. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rb +4 -4
  20. data/lib/x_twitter_scraper/models/x/account_create_params.rb +9 -9
  21. data/lib/x_twitter_scraper/models/x/account_create_response.rb +146 -54
  22. data/lib/x_twitter_scraper/models/x/account_reauth_params.rb +2 -2
  23. data/lib/x_twitter_scraper/models/x/account_reauth_response.rb +4 -4
  24. data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +3 -5
  25. data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +3 -5
  26. data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +1 -17
  27. data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +3 -5
  28. data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +3 -5
  29. data/lib/x_twitter_scraper/models/x/tweet_author.rb +14 -1
  30. data/lib/x_twitter_scraper/models/x/tweet_detail.rb +373 -1
  31. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +3 -5
  32. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +34 -6
  33. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +345 -0
  34. data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +3 -5
  35. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +3 -5
  36. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +3 -5
  37. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +3 -5
  38. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +3 -5
  39. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +3 -5
  40. data/lib/x_twitter_scraper/models/x/x_account.rb +9 -9
  41. data/lib/x_twitter_scraper/models/x_get_article_response.rb +1 -7
  42. data/lib/x_twitter_scraper/models/x_get_trends_response.rb +28 -1
  43. data/lib/x_twitter_scraper/resources/compose.rb +4 -4
  44. data/lib/x_twitter_scraper/resources/x/account_connection_attempts.rb +37 -0
  45. data/lib/x_twitter_scraper/resources/x/accounts.rb +5 -5
  46. data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +2 -2
  47. data/lib/x_twitter_scraper/resources/x/communities.rb +1 -1
  48. data/lib/x_twitter_scraper/resources/x/lists.rb +1 -1
  49. data/lib/x_twitter_scraper/resources/x/tweets.rb +14 -11
  50. data/lib/x_twitter_scraper/resources/x/users.rb +5 -5
  51. data/lib/x_twitter_scraper/resources/x.rb +6 -0
  52. data/lib/x_twitter_scraper/version.rb +1 -1
  53. data/lib/x_twitter_scraper.rb +5 -1
  54. data/rbi/x_twitter_scraper/models/compose_create_response.rbi +142 -0
  55. data/rbi/x_twitter_scraper/models/content_disclosure.rbi +1 -15
  56. data/rbi/x_twitter_scraper/models/embedded_tweet.rbi +708 -3
  57. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -5
  58. data/rbi/x_twitter_scraper/models/radar_item.rbi +245 -8
  59. data/rbi/x_twitter_scraper/models/search_tweet.rbi +674 -3
  60. data/rbi/x_twitter_scraper/models/support/ticket_list_response.rbi +75 -55
  61. data/rbi/x_twitter_scraper/models/support/ticket_retrieve_response.rbi +129 -87
  62. data/rbi/x_twitter_scraper/models/support/ticket_update_response.rbi +62 -13
  63. data/rbi/x_twitter_scraper/models/trend_list_response.rbi +40 -3
  64. data/rbi/x_twitter_scraper/models/tweet_media.rbi +313 -3
  65. data/rbi/x_twitter_scraper/models/user_profile.rbi +340 -29
  66. data/rbi/x_twitter_scraper/models/x/account_connection_attempt_retrieve_params.rbi +40 -0
  67. data/rbi/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rbi +295 -0
  68. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbi +6 -6
  69. data/rbi/x_twitter_scraper/models/x/account_create_params.rbi +8 -11
  70. data/rbi/x_twitter_scraper/models/x/account_create_response.rbi +232 -91
  71. data/rbi/x_twitter_scraper/models/x/account_reauth_params.rbi +2 -2
  72. data/rbi/x_twitter_scraper/models/x/account_reauth_response.rbi +6 -6
  73. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +4 -8
  74. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +4 -8
  75. data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +0 -22
  76. data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +4 -8
  77. data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +4 -8
  78. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +13 -3
  79. data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +690 -3
  80. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +4 -8
  81. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +68 -8
  82. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +527 -0
  83. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +4 -8
  84. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +4 -8
  85. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +4 -8
  86. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +4 -8
  87. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +4 -8
  88. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +4 -8
  89. data/rbi/x_twitter_scraper/models/x/x_account.rbi +12 -12
  90. data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +0 -9
  91. data/rbi/x_twitter_scraper/models/x_get_trends_response.rbi +40 -3
  92. data/rbi/x_twitter_scraper/resources/compose.rbi +4 -4
  93. data/rbi/x_twitter_scraper/resources/x/account_connection_attempts.rbi +33 -0
  94. data/rbi/x_twitter_scraper/resources/x/accounts.rbi +5 -5
  95. data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +4 -8
  96. data/rbi/x_twitter_scraper/resources/x/communities.rbi +2 -4
  97. data/rbi/x_twitter_scraper/resources/x/lists.rbi +2 -4
  98. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +20 -18
  99. data/rbi/x_twitter_scraper/resources/x/users.rbi +10 -20
  100. data/rbi/x_twitter_scraper/resources/x.rbi +4 -0
  101. data/sig/x_twitter_scraper/models/compose_create_response.rbs +60 -0
  102. data/sig/x_twitter_scraper/models/content_disclosure.rbs +1 -11
  103. data/sig/x_twitter_scraper/models/embedded_tweet.rbs +343 -62
  104. data/sig/x_twitter_scraper/models/radar_item.rbs +100 -4
  105. data/sig/x_twitter_scraper/models/search_tweet.rbs +333 -70
  106. data/sig/x_twitter_scraper/models/support/ticket_list_response.rbs +29 -32
  107. data/sig/x_twitter_scraper/models/support/ticket_retrieve_response.rbs +49 -48
  108. data/sig/x_twitter_scraper/models/support/ticket_update_response.rbs +25 -7
  109. data/sig/x_twitter_scraper/models/trend_list_response.rbs +16 -20
  110. data/sig/x_twitter_scraper/models/tweet_media.rbs +146 -15
  111. data/sig/x_twitter_scraper/models/user_profile.rbs +164 -86
  112. data/sig/x_twitter_scraper/models/x/account_connection_attempt_retrieve_params.rbs +25 -0
  113. data/sig/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rbs +199 -0
  114. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbs +5 -5
  115. data/sig/x_twitter_scraper/models/x/account_create_params.rbs +6 -8
  116. data/sig/x_twitter_scraper/models/x/account_create_response.rbs +144 -59
  117. data/sig/x_twitter_scraper/models/x/account_reauth_response.rbs +5 -5
  118. data/sig/x_twitter_scraper/models/x/community_retrieve_info_response.rbs +0 -14
  119. data/sig/x_twitter_scraper/models/x/tweet_author.rbs +11 -3
  120. data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +333 -70
  121. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +26 -0
  122. data/sig/x_twitter_scraper/models/x/tweet_get_replies_response.rbs +274 -0
  123. data/sig/x_twitter_scraper/models/x_get_article_response.rbs +0 -7
  124. data/sig/x_twitter_scraper/models/x_get_trends_response.rbs +25 -3
  125. data/sig/x_twitter_scraper/resources/x/account_connection_attempts.rbs +14 -0
  126. data/sig/x_twitter_scraper/resources/x/accounts.rbs +2 -2
  127. data/sig/x_twitter_scraper/resources/x/tweets.rbs +3 -1
  128. data/sig/x_twitter_scraper/resources/x.rbs +2 -0
  129. metadata +14 -2
@@ -7,62 +7,154 @@
7
7
  module XTwitterScraper
8
8
  module Models
9
9
  module X
10
+ # Sanitized X account summary returned by connect and reauth.
11
+ #
10
12
  # @see XTwitterScraper::Resources::X::Accounts#create
11
- class AccountCreateResponse < XTwitterScraper::Internal::Type::BaseModel
12
- # @!attribute id
13
- #
14
- # @return [String]
15
- required :id, String
16
-
17
- # @!attribute created_at
18
- #
19
- # @return [Time]
20
- required :created_at, Time, api_name: :createdAt
21
-
22
- # @!attribute health
23
- #
24
- # @return [Symbol, XTwitterScraper::Models::X::AccountCreateResponse::Health]
25
- required :health, enum: -> { XTwitterScraper::Models::X::AccountCreateResponse::Health }
26
-
27
- # @!attribute status
28
- #
29
- # @return [String]
30
- required :status, String
31
-
32
- # @!attribute x_user_id
33
- #
34
- # @return [String]
35
- required :x_user_id, String, api_name: :xUserId
36
-
37
- # @!attribute x_username
38
- #
39
- # @return [String]
40
- required :x_username, String, api_name: :xUsername
41
-
42
- # @!method initialize(id:, created_at:, health:, status:, x_user_id:, x_username:)
43
- # Sanitized X account summary returned by connect and reauth.
44
- #
45
- # @param id [String]
46
- # @param created_at [Time]
47
- # @param health [Symbol, XTwitterScraper::Models::X::AccountCreateResponse::Health]
48
- # @param status [String]
49
- # @param x_user_id [String]
50
- # @param x_username [String]
51
-
52
- # @see XTwitterScraper::Models::X::AccountCreateResponse#health
53
- module Health
54
- extend XTwitterScraper::Internal::Type::Enum
55
-
56
- HEALTHY = :healthy
57
- LOCKED = :locked
58
- NEEDS_REAUTH = :needsReauth
59
- RECOVERING = :recovering
60
- SUSPENDED = :suspended
61
- TEMPORARY_ISSUE = :temporaryIssue
62
-
63
- # @!method self.values
64
- # @return [Array<Symbol>]
13
+ module AccountCreateResponse
14
+ extend XTwitterScraper::Internal::Type::Union
15
+
16
+ # Sanitized X account summary returned by connect and reauth.
17
+ variant -> { XTwitterScraper::Models::X::AccountCreateResponse::SanitizedXAccount }
18
+
19
+ # The connection is still in progress.
20
+ variant -> { XTwitterScraper::Models::X::AccountCreateResponse::XAccountConnectionAttemptPending }
21
+
22
+ # Resumable account connection challenge. Submit the email code to finish the same connection attempt.
23
+ variant -> { XTwitterScraper::Models::X::AccountCreateResponse::XAccountConnectionChallenge }
24
+
25
+ class SanitizedXAccount < XTwitterScraper::Internal::Type::BaseModel
26
+ # @!attribute id
27
+ #
28
+ # @return [String]
29
+ required :id, String
30
+
31
+ # @!attribute created_at
32
+ #
33
+ # @return [Time]
34
+ required :created_at, Time, api_name: :createdAt
35
+
36
+ # @!attribute health
37
+ #
38
+ # @return [Symbol, XTwitterScraper::Models::X::AccountCreateResponse::SanitizedXAccount::Health]
39
+ required :health,
40
+ enum: -> { XTwitterScraper::Models::X::AccountCreateResponse::SanitizedXAccount::Health }
41
+
42
+ # @!attribute status
43
+ #
44
+ # @return [Symbol, :active]
45
+ required :status, const: :active
46
+
47
+ # @!attribute x_user_id
48
+ #
49
+ # @return [String]
50
+ required :x_user_id, String, api_name: :xUserId
51
+
52
+ # @!attribute x_username
53
+ #
54
+ # @return [String]
55
+ required :x_username, String, api_name: :xUsername
56
+
57
+ # @!method initialize(id:, created_at:, health:, x_user_id:, x_username:, status: :active)
58
+ # Sanitized X account summary returned by connect and reauth.
59
+ #
60
+ # @param id [String]
61
+ # @param created_at [Time]
62
+ # @param health [Symbol, XTwitterScraper::Models::X::AccountCreateResponse::SanitizedXAccount::Health]
63
+ # @param x_user_id [String]
64
+ # @param x_username [String]
65
+ # @param status [Symbol, :active]
66
+
67
+ # @see XTwitterScraper::Models::X::AccountCreateResponse::SanitizedXAccount#health
68
+ module Health
69
+ extend XTwitterScraper::Internal::Type::Enum
70
+
71
+ HEALTHY = :healthy
72
+ LOCKED = :locked
73
+ NEEDS_REAUTH = :needsReauth
74
+ RECOVERING = :recovering
75
+ SUSPENDED = :suspended
76
+ TEMPORARY_ISSUE = :temporaryIssue
77
+
78
+ # @!method self.values
79
+ # @return [Array<Symbol>]
80
+ end
81
+ end
82
+
83
+ class XAccountConnectionAttemptPending < XTwitterScraper::Internal::Type::BaseModel
84
+ # @!attribute id
85
+ #
86
+ # @return [String]
87
+ required :id, String
88
+
89
+ # @!attribute object
90
+ #
91
+ # @return [Symbol, :x_account_connection_attempt]
92
+ required :object, const: :x_account_connection_attempt
93
+
94
+ # @!attribute poll_after_ms
95
+ #
96
+ # @return [Integer]
97
+ required :poll_after_ms, Integer, api_name: :pollAfterMs
98
+
99
+ # @!attribute status
100
+ #
101
+ # @return [Symbol, :pending]
102
+ required :status, const: :pending
103
+
104
+ # @!method initialize(id:, poll_after_ms:, object: :x_account_connection_attempt, status: :pending)
105
+ # The connection is still in progress.
106
+ #
107
+ # @param id [String]
108
+ # @param poll_after_ms [Integer]
109
+ # @param object [Symbol, :x_account_connection_attempt]
110
+ # @param status [Symbol, :pending]
111
+ end
112
+
113
+ class XAccountConnectionChallenge < XTwitterScraper::Internal::Type::BaseModel
114
+ # @!attribute id
115
+ #
116
+ # @return [String]
117
+ required :id, String
118
+
119
+ # @!attribute expires_at
120
+ #
121
+ # @return [Time]
122
+ required :expires_at, Time, api_name: :expiresAt
123
+
124
+ # @!attribute message
125
+ #
126
+ # @return [String]
127
+ required :message, String
128
+
129
+ # @!attribute object
130
+ #
131
+ # @return [Symbol, :x_account_connection_challenge]
132
+ required :object, const: :x_account_connection_challenge
133
+
134
+ # @!attribute status
135
+ #
136
+ # @return [Symbol, :requires_email_code]
137
+ required :status, const: :requires_email_code
138
+
139
+ # @!attribute username
140
+ #
141
+ # @return [String]
142
+ required :username, String
143
+
144
+ # @!method initialize(id:, expires_at:, message:, username:, object: :x_account_connection_challenge, status: :requires_email_code)
145
+ # Resumable account connection challenge. Submit the email code to finish the same
146
+ # connection attempt.
147
+ #
148
+ # @param id [String]
149
+ # @param expires_at [Time]
150
+ # @param message [String]
151
+ # @param username [String]
152
+ # @param object [Symbol, :x_account_connection_challenge]
153
+ # @param status [Symbol, :requires_email_code]
65
154
  end
155
+
156
+ # @!method self.variants
157
+ # @return [Array(XTwitterScraper::Models::X::AccountCreateResponse::SanitizedXAccount, XTwitterScraper::Models::X::AccountCreateResponse::XAccountConnectionAttemptPending, XTwitterScraper::Models::X::AccountCreateResponse::XAccountConnectionChallenge)]
66
158
  end
67
159
  end
68
160
  end
@@ -30,7 +30,7 @@ module XTwitterScraper
30
30
  optional :email, String
31
31
 
32
32
  # @!attribute totp_secret
33
- # TOTP secret for 2FA re-authentication
33
+ # Replacement Authenticator App TOTP secret. Omit it to reuse the saved secret.
34
34
  #
35
35
  # @return [String, nil]
36
36
  optional :totp_secret, String
@@ -42,7 +42,7 @@ module XTwitterScraper
42
42
  #
43
43
  # @param email [String] Email for the X account (updates stored email)
44
44
  #
45
- # @param totp_secret [String] TOTP secret for 2FA re-authentication
45
+ # @param totp_secret [String] Replacement Authenticator App TOTP secret. Omit it to reuse the saved secret.
46
46
  #
47
47
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
48
48
  end
@@ -26,8 +26,8 @@ module XTwitterScraper
26
26
 
27
27
  # @!attribute status
28
28
  #
29
- # @return [String]
30
- required :status, String
29
+ # @return [Symbol, :active]
30
+ required :status, const: :active
31
31
 
32
32
  # @!attribute x_user_id
33
33
  #
@@ -39,15 +39,15 @@ module XTwitterScraper
39
39
  # @return [String]
40
40
  required :x_username, String, api_name: :xUsername
41
41
 
42
- # @!method initialize(id:, created_at:, health:, status:, x_user_id:, x_username:)
42
+ # @!method initialize(id:, created_at:, health:, x_user_id:, x_username:, status: :active)
43
43
  # Sanitized X account summary returned by connect and reauth.
44
44
  #
45
45
  # @param id [String]
46
46
  # @param created_at [Time]
47
47
  # @param health [Symbol, XTwitterScraper::Models::X::AccountReauthResponse::Health]
48
- # @param status [String]
49
48
  # @param x_user_id [String]
50
49
  # @param x_username [String]
50
+ # @param status [Symbol, :active]
51
51
 
52
52
  # @see XTwitterScraper::Models::X::AccountReauthResponse#health
53
53
  module Health
@@ -25,10 +25,8 @@ module XTwitterScraper
25
25
  optional :cursor, String
26
26
 
27
27
  # @!attribute page_size
28
- # Maximum items requested from this page (1-100, default 20). The response can
29
- # contain fewer items because the source returned fewer, filters removed items, or
30
- # remaining credits cover fewer results. Keep requesting next_cursor while
31
- # has_next_page is true, even when a page is empty. The deprecated limit and count
28
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
29
+ # results. Continue while has_next_page is true. Deprecated limit and count
32
30
  # aliases remain accepted.
33
31
  #
34
32
  # @return [Integer, nil]
@@ -43,7 +41,7 @@ module XTwitterScraper
43
41
  #
44
42
  # @param cursor [String] Pagination cursor for community tweets
45
43
  #
46
- # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
44
+ # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
47
45
  #
48
46
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
49
47
  end
@@ -32,10 +32,8 @@ module XTwitterScraper
32
32
  optional :cursor, String
33
33
 
34
34
  # @!attribute page_size
35
- # Maximum items requested from this page (1-100, default 20). The response can
36
- # contain fewer items because the source returned fewer, filters removed items, or
37
- # remaining credits cover fewer results. Keep requesting next_cursor while
38
- # has_next_page is true, even when a page is empty. The deprecated limit and count
35
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
36
+ # results. Continue while has_next_page is true. Deprecated limit and count
39
37
  # aliases remain accepted.
40
38
  #
41
39
  # @return [Integer, nil]
@@ -57,7 +55,7 @@ module XTwitterScraper
57
55
  #
58
56
  # @param cursor [String] Pagination cursor for community results
59
57
  #
60
- # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
58
+ # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
61
59
  #
62
60
  # @param query_type [Symbol, XTwitterScraper::Models::X::Communities::TweetListParams::QueryType] Sort order for community results (Latest or Top)
63
61
  #
@@ -55,12 +55,6 @@ module XTwitterScraper
55
55
  # @return [String, nil]
56
56
  optional :invites_policy, String
57
57
 
58
- # @!attribute is_member
59
- # Whether the authenticated viewer is a member
60
- #
61
- # @return [Boolean, nil]
62
- optional :is_member, XTwitterScraper::Internal::Type::Boolean
63
-
64
58
  # @!attribute is_nsfw
65
59
  # Whether the community is marked sensitive
66
60
  #
@@ -98,12 +92,6 @@ module XTwitterScraper
98
92
  optional :primary_topic,
99
93
  -> { XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::PrimaryTopic }
100
94
 
101
- # @!attribute role
102
- # Authenticated viewer's community role
103
- #
104
- # @return [String, nil]
105
- optional :role, String
106
-
107
95
  # @!attribute rules
108
96
  # Community rules
109
97
  #
@@ -111,7 +99,7 @@ module XTwitterScraper
111
99
  optional :rules,
112
100
  -> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Rule] }
113
101
 
114
- # @!method initialize(id:, banner_url: nil, created_at: nil, creator: nil, description: nil, invites_policy: nil, is_member: nil, is_nsfw: nil, join_policy: nil, member_count: nil, moderator_count: nil, name: nil, primary_topic: nil, role: nil, rules: nil)
102
+ # @!method initialize(id:, banner_url: nil, created_at: nil, creator: nil, description: nil, invites_policy: nil, is_nsfw: nil, join_policy: nil, member_count: nil, moderator_count: nil, name: nil, primary_topic: nil, rules: nil)
115
103
  # Community info object
116
104
  #
117
105
  # @param id [String] Unique community identifier
@@ -126,8 +114,6 @@ module XTwitterScraper
126
114
  #
127
115
  # @param invites_policy [String] Invitation policy
128
116
  #
129
- # @param is_member [Boolean] Whether the authenticated viewer is a member
130
- #
131
117
  # @param is_nsfw [Boolean] Whether the community is marked sensitive
132
118
  #
133
119
  # @param join_policy [String] Join policy (open or restricted)
@@ -140,8 +126,6 @@ module XTwitterScraper
140
126
  #
141
127
  # @param primary_topic [XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::PrimaryTopic] Primary topic
142
128
  #
143
- # @param role [String] Authenticated viewer's community role
144
- #
145
129
  # @param rules [Array<XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community::Rule>] Community rules
146
130
 
147
131
  # @see XTwitterScraper::Models::X::CommunityRetrieveInfoResponse::Community#creator
@@ -31,10 +31,8 @@ module XTwitterScraper
31
31
  optional :cursor, String
32
32
 
33
33
  # @!attribute page_size
34
- # Maximum items requested from this page (1-100, default 20). The response can
35
- # contain fewer items because the source returned fewer, filters removed items, or
36
- # remaining credits cover fewer results. Keep requesting next_cursor while
37
- # has_next_page is true, even when a page is empty. The deprecated limit and count
34
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
35
+ # results. Continue while has_next_page is true. Deprecated limit and count
38
36
  # aliases remain accepted.
39
37
  #
40
38
  # @return [Integer, nil]
@@ -56,7 +54,7 @@ module XTwitterScraper
56
54
  #
57
55
  # @param cursor [String] Pagination cursor for community search
58
56
  #
59
- # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
57
+ # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
60
58
  #
61
59
  # @param query_type [Symbol, XTwitterScraper::Models::X::CommunityRetrieveSearchParams::QueryType] Sort order (Latest or Top)
62
60
  #
@@ -30,10 +30,8 @@ module XTwitterScraper
30
30
  optional :include_replies, XTwitterScraper::Internal::Type::Boolean
31
31
 
32
32
  # @!attribute page_size
33
- # Maximum items requested from this page (1-100, default 20). The response can
34
- # contain fewer items because the source returned fewer, filters removed items, or
35
- # remaining credits cover fewer results. Keep requesting next_cursor while
36
- # has_next_page is true, even when a page is empty. The deprecated limit and count
33
+ # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
34
+ # results. Continue while has_next_page is true. Deprecated limit and count
37
35
  # aliases remain accepted.
38
36
  #
39
37
  # @return [Integer, nil]
@@ -61,7 +59,7 @@ module XTwitterScraper
61
59
  #
62
60
  # @param include_replies [Boolean] Include replies (default false)
63
61
  #
64
- # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
62
+ # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
65
63
  #
66
64
  # @param since_time [String] Unix timestamp - filter after
67
65
  #
@@ -8,9 +8,22 @@ module XTwitterScraper
8
8
  module Models
9
9
  module X
10
10
  class TweetAuthor < XTwitterScraper::Models::UserProfile
11
- # @!method initialize
11
+ # @!attribute followers
12
+ #
13
+ # @return [Integer]
14
+ required :followers, Integer
15
+
16
+ # @!attribute verified
17
+ #
18
+ # @return [Boolean]
19
+ required :verified, XTwitterScraper::Internal::Type::Boolean
20
+
21
+ # @!method initialize(followers:, verified:)
12
22
  # Tweet author profile. The lookup route always includes follower count and
13
23
  # verification state. Other profile fields appear when available.
24
+ #
25
+ # @param followers [Integer]
26
+ # @param verified [Boolean]
14
27
  end
15
28
  end
16
29
  end