x-twitter-scraper 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/x_twitter_scraper/internal/type/union.rb +25 -9
  5. data/lib/x_twitter_scraper/models/content_disclosure.rb +1 -9
  6. data/lib/x_twitter_scraper/models/embedded_tweet.rb +389 -1
  7. data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -5
  8. data/lib/x_twitter_scraper/models/search_tweet.rb +371 -1
  9. data/lib/x_twitter_scraper/models/support/ticket_list_response.rb +30 -17
  10. data/lib/x_twitter_scraper/models/support/ticket_retrieve_response.rb +49 -24
  11. data/lib/x_twitter_scraper/models/support/ticket_update_response.rb +18 -6
  12. data/lib/x_twitter_scraper/models/trend_list_response.rb +28 -1
  13. data/lib/x_twitter_scraper/models/tweet_media.rb +213 -1
  14. data/lib/x_twitter_scraper/models/user_profile.rb +211 -21
  15. data/lib/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rb +60 -26
  16. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rb +4 -4
  17. data/lib/x_twitter_scraper/models/x/account_create_response.rb +149 -2
  18. data/lib/x_twitter_scraper/models/x/account_reauth_response.rb +4 -4
  19. data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +3 -5
  20. data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +3 -5
  21. data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +1 -17
  22. data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +3 -5
  23. data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +3 -5
  24. data/lib/x_twitter_scraper/models/x/tweet_author.rb +14 -1
  25. data/lib/x_twitter_scraper/models/x/tweet_detail.rb +373 -1
  26. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +3 -5
  27. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +34 -6
  28. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +345 -0
  29. data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +3 -5
  30. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +3 -5
  31. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +3 -5
  32. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +3 -5
  33. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +3 -5
  34. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +3 -5
  35. data/lib/x_twitter_scraper/models/x_get_article_response.rb +1 -7
  36. data/lib/x_twitter_scraper/models/x_get_trends_response.rb +28 -1
  37. data/lib/x_twitter_scraper/resources/x/account_connection_attempts.rb +1 -1
  38. data/lib/x_twitter_scraper/resources/x/accounts.rb +2 -2
  39. data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +2 -2
  40. data/lib/x_twitter_scraper/resources/x/communities.rb +1 -1
  41. data/lib/x_twitter_scraper/resources/x/lists.rb +1 -1
  42. data/lib/x_twitter_scraper/resources/x/tweets.rb +14 -11
  43. data/lib/x_twitter_scraper/resources/x/users.rb +5 -5
  44. data/lib/x_twitter_scraper/version.rb +1 -1
  45. data/lib/x_twitter_scraper.rb +2 -1
  46. data/rbi/x_twitter_scraper/models/content_disclosure.rbi +1 -15
  47. data/rbi/x_twitter_scraper/models/embedded_tweet.rbi +708 -3
  48. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -5
  49. data/rbi/x_twitter_scraper/models/search_tweet.rbi +674 -3
  50. data/rbi/x_twitter_scraper/models/support/ticket_list_response.rbi +75 -55
  51. data/rbi/x_twitter_scraper/models/support/ticket_retrieve_response.rbi +129 -87
  52. data/rbi/x_twitter_scraper/models/support/ticket_update_response.rbi +62 -13
  53. data/rbi/x_twitter_scraper/models/trend_list_response.rbi +40 -3
  54. data/rbi/x_twitter_scraper/models/tweet_media.rbi +313 -3
  55. data/rbi/x_twitter_scraper/models/user_profile.rbi +340 -29
  56. data/rbi/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rbi +61 -83
  57. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbi +6 -6
  58. data/rbi/x_twitter_scraper/models/x/account_create_response.rbi +264 -2
  59. data/rbi/x_twitter_scraper/models/x/account_reauth_response.rbi +6 -6
  60. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +4 -8
  61. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +4 -8
  62. data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +0 -22
  63. data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +4 -8
  64. data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +4 -8
  65. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +13 -3
  66. data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +690 -3
  67. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +4 -8
  68. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +68 -8
  69. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +527 -0
  70. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +4 -8
  71. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +4 -8
  72. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +4 -8
  73. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +4 -8
  74. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +4 -8
  75. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +4 -8
  76. data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +0 -9
  77. data/rbi/x_twitter_scraper/models/x_get_trends_response.rbi +40 -3
  78. data/rbi/x_twitter_scraper/resources/x/accounts.rbi +1 -1
  79. data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +4 -8
  80. data/rbi/x_twitter_scraper/resources/x/communities.rbi +2 -4
  81. data/rbi/x_twitter_scraper/resources/x/lists.rbi +2 -4
  82. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +20 -18
  83. data/rbi/x_twitter_scraper/resources/x/users.rbi +10 -20
  84. data/sig/x_twitter_scraper/models/content_disclosure.rbs +1 -11
  85. data/sig/x_twitter_scraper/models/embedded_tweet.rbs +343 -62
  86. data/sig/x_twitter_scraper/models/search_tweet.rbs +333 -70
  87. data/sig/x_twitter_scraper/models/support/ticket_list_response.rbs +29 -32
  88. data/sig/x_twitter_scraper/models/support/ticket_retrieve_response.rbs +49 -48
  89. data/sig/x_twitter_scraper/models/support/ticket_update_response.rbs +25 -7
  90. data/sig/x_twitter_scraper/models/trend_list_response.rbs +16 -20
  91. data/sig/x_twitter_scraper/models/tweet_media.rbs +146 -15
  92. data/sig/x_twitter_scraper/models/user_profile.rbs +164 -86
  93. data/sig/x_twitter_scraper/models/x/account_connection_attempt_retrieve_response.rbs +50 -33
  94. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbs +5 -5
  95. data/sig/x_twitter_scraper/models/x/account_create_response.rbs +147 -1
  96. data/sig/x_twitter_scraper/models/x/account_reauth_response.rbs +5 -5
  97. data/sig/x_twitter_scraper/models/x/community_retrieve_info_response.rbs +0 -14
  98. data/sig/x_twitter_scraper/models/x/tweet_author.rbs +11 -3
  99. data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +333 -70
  100. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +26 -0
  101. data/sig/x_twitter_scraper/models/x/tweet_get_replies_response.rbs +274 -0
  102. data/sig/x_twitter_scraper/models/x_get_article_response.rbs +0 -7
  103. data/sig/x_twitter_scraper/models/x_get_trends_response.rbs +25 -3
  104. data/sig/x_twitter_scraper/resources/x/accounts.rbs +1 -1
  105. data/sig/x_twitter_scraper/resources/x/tweets.rbs +3 -1
  106. metadata +4 -1
@@ -10,52 +10,38 @@ module XTwitterScraper
10
10
  created_at: Time,
11
11
  messages: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message],
12
12
  public_id: String,
13
- status: String,
13
+ status: XTwitterScraper::Models::Support::TicketRetrieveResponse::status,
14
14
  subject: String,
15
15
  updated_at: Time
16
16
  }
17
17
 
18
18
  class TicketRetrieveResponse < XTwitterScraper::Internal::Type::BaseModel
19
- attr_reader created_at: Time?
19
+ attr_accessor created_at: Time
20
20
 
21
- def created_at=: (Time) -> Time
21
+ attr_accessor messages: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message]
22
22
 
23
- attr_reader messages: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message]?
23
+ attr_accessor public_id: String
24
24
 
25
- def messages=: (
26
- ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message]
27
- ) -> ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message]
25
+ attr_accessor status: XTwitterScraper::Models::Support::TicketRetrieveResponse::status
28
26
 
29
- attr_reader public_id: String?
27
+ attr_accessor subject: String
30
28
 
31
- def public_id=: (String) -> String
32
-
33
- attr_reader status: String?
34
-
35
- def status=: (String) -> String
36
-
37
- attr_reader subject: String?
38
-
39
- def subject=: (String) -> String
40
-
41
- attr_reader updated_at: Time?
42
-
43
- def updated_at=: (Time) -> Time
29
+ attr_accessor updated_at: Time
44
30
 
45
31
  def initialize: (
46
- ?created_at: Time,
47
- ?messages: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message],
48
- ?public_id: String,
49
- ?status: String,
50
- ?subject: String,
51
- ?updated_at: Time
32
+ created_at: Time,
33
+ messages: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message],
34
+ public_id: String,
35
+ status: XTwitterScraper::Models::Support::TicketRetrieveResponse::status,
36
+ subject: String,
37
+ updated_at: Time
52
38
  ) -> void
53
39
 
54
40
  def to_hash: -> {
55
41
  created_at: Time,
56
42
  messages: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message],
57
43
  public_id: String,
58
- status: String,
44
+ status: XTwitterScraper::Models::Support::TicketRetrieveResponse::status,
59
45
  subject: String,
60
46
  updated_at: Time
61
47
  }
@@ -65,40 +51,30 @@ module XTwitterScraper
65
51
  attachments: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment],
66
52
  body: String,
67
53
  created_at: Time,
68
- sender: String
54
+ sender: XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::sender
69
55
  }
70
56
 
71
57
  class Message < XTwitterScraper::Internal::Type::BaseModel
72
- attr_reader attachments: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment]?
73
-
74
- def attachments=: (
75
- ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment]
76
- ) -> ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment]
77
-
78
- attr_reader body: String?
79
-
80
- def body=: (String) -> String
58
+ attr_accessor attachments: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment]
81
59
 
82
- attr_reader created_at: Time?
60
+ attr_accessor body: String
83
61
 
84
- def created_at=: (Time) -> Time
62
+ attr_accessor created_at: Time
85
63
 
86
- attr_reader sender: String?
87
-
88
- def sender=: (String) -> String
64
+ attr_accessor sender: XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::sender
89
65
 
90
66
  def initialize: (
91
- ?attachments: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment],
92
- ?body: String,
93
- ?created_at: Time,
94
- ?sender: String
67
+ attachments: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment],
68
+ body: String,
69
+ created_at: Time,
70
+ sender: XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::sender
95
71
  ) -> void
96
72
 
97
73
  def to_hash: -> {
98
74
  attachments: ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment],
99
75
  body: String,
100
76
  created_at: Time,
101
- sender: String
77
+ sender: XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::sender
102
78
  }
103
79
 
104
80
  type attachment =
@@ -193,6 +169,31 @@ module XTwitterScraper
193
169
  def self?.values: -> ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::Attachment::status]
194
170
  end
195
171
  end
172
+
173
+ type sender = :user | :support | :system
174
+
175
+ module Sender
176
+ extend XTwitterScraper::Internal::Type::Enum
177
+
178
+ USER: :user
179
+ SUPPORT: :support
180
+ SYSTEM: :system
181
+
182
+ def self?.values: -> ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::Message::sender]
183
+ end
184
+ end
185
+
186
+ type status = :open | :in_progress | :resolved | :closed
187
+
188
+ module Status
189
+ extend XTwitterScraper::Internal::Type::Enum
190
+
191
+ OPEN: :open
192
+ IN_PROGRESS: :in_progress
193
+ RESOLVED: :resolved
194
+ CLOSED: :closed
195
+
196
+ def self?.values: -> ::Array[XTwitterScraper::Models::Support::TicketRetrieveResponse::status]
196
197
  end
197
198
  end
198
199
  end
@@ -5,20 +5,38 @@
5
5
  module XTwitterScraper
6
6
  module Models
7
7
  module Support
8
- type ticket_update_response = { public_id: String, status: String }
8
+ type ticket_update_response =
9
+ {
10
+ public_id: String,
11
+ status: XTwitterScraper::Models::Support::TicketUpdateResponse::status
12
+ }
9
13
 
10
14
  class TicketUpdateResponse < XTwitterScraper::Internal::Type::BaseModel
11
- attr_reader public_id: String?
15
+ attr_accessor public_id: String
12
16
 
13
- def public_id=: (String) -> String
17
+ attr_accessor status: XTwitterScraper::Models::Support::TicketUpdateResponse::status
14
18
 
15
- attr_reader status: String?
19
+ def initialize: (
20
+ public_id: String,
21
+ status: XTwitterScraper::Models::Support::TicketUpdateResponse::status
22
+ ) -> void
16
23
 
17
- def status=: (String) -> String
24
+ def to_hash: -> {
25
+ public_id: String,
26
+ status: XTwitterScraper::Models::Support::TicketUpdateResponse::status
27
+ }
18
28
 
19
- def initialize: (?public_id: String, ?status: String) -> void
29
+ type status = :open | :resolved | :closed
20
30
 
21
- def to_hash: -> { public_id: String, status: String }
31
+ module Status
32
+ extend XTwitterScraper::Internal::Type::Enum
33
+
34
+ OPEN: :open
35
+ RESOLVED: :resolved
36
+ CLOSED: :closed
37
+
38
+ def self?.values: -> ::Array[XTwitterScraper::Models::Support::TicketUpdateResponse::status]
39
+ end
22
40
  end
23
41
  end
24
42
  end
@@ -4,12 +4,7 @@
4
4
 
5
5
  module XTwitterScraper
6
6
  module Models
7
- type trend_list_response =
8
- {
9
- total: Integer,
10
- trends: ::Array[XTwitterScraper::Models::TrendListResponse::Trend],
11
- woeid: Integer
12
- }
7
+ type trend_list_response = ::Hash[Symbol, top]
13
8
 
14
9
  class TrendListResponse < XTwitterScraper::Internal::Type::BaseModel
15
10
  attr_accessor total: Integer
@@ -24,14 +19,9 @@ module XTwitterScraper
24
19
  woeid: Integer
25
20
  ) -> void
26
21
 
27
- def to_hash: -> {
28
- total: Integer,
29
- trends: ::Array[XTwitterScraper::Models::TrendListResponse::Trend],
30
- woeid: Integer
31
- }
22
+ def to_hash: -> ::Hash[Symbol, top]
32
23
 
33
- type trend =
34
- { name: String, description: String, query: String, rank: Integer }
24
+ type trend = ::Hash[Symbol, top]
35
25
 
36
26
  class Trend < XTwitterScraper::Internal::Type::BaseModel
37
27
  attr_accessor name: String
@@ -40,6 +30,8 @@ module XTwitterScraper
40
30
 
41
31
  def description=: (String) -> String
42
32
 
33
+ attr_accessor promoted_content: String?
34
+
43
35
  attr_reader query: String?
44
36
 
45
37
  def query=: (String) -> String
@@ -48,19 +40,23 @@ module XTwitterScraper
48
40
 
49
41
  def rank=: (Integer) -> Integer
50
42
 
43
+ attr_accessor tweet_volume: Integer?
44
+
45
+ attr_reader url: String?
46
+
47
+ def url=: (String) -> String
48
+
51
49
  def initialize: (
52
50
  name: String,
53
51
  ?description: String,
52
+ ?promoted_content: String?,
54
53
  ?query: String,
55
- ?rank: Integer
54
+ ?rank: Integer,
55
+ ?tweet_volume: Integer?,
56
+ ?url: String
56
57
  ) -> void
57
58
 
58
- def to_hash: -> {
59
- name: String,
60
- description: String,
61
- query: String,
62
- rank: Integer
63
- }
59
+ def to_hash: -> ::Hash[Symbol, top]
64
60
  end
65
61
  end
66
62
  end
@@ -4,13 +4,7 @@
4
4
 
5
5
  module XTwitterScraper
6
6
  module Models
7
- type tweet_media =
8
- {
9
- media_url: String,
10
- type: XTwitterScraper::Models::TweetMedia::type_,
11
- url: String,
12
- video_variants: ::Array[XTwitterScraper::TweetMedia::VideoVariant]
13
- }
7
+ type tweet_media = ::Hash[Symbol, top]
14
8
 
15
9
  class TweetMedia < XTwitterScraper::Internal::Type::BaseModel
16
10
  attr_accessor media_url: String
@@ -19,25 +13,106 @@ module XTwitterScraper
19
13
 
20
14
  attr_accessor url: String
21
15
 
16
+ attr_reader id: String?
17
+
18
+ def id=: (String) -> String
19
+
20
+ attr_reader allow_download: bool?
21
+
22
+ def allow_download=: (bool) -> bool
23
+
24
+ attr_reader alt_text: String?
25
+
26
+ def alt_text=: (String) -> String
27
+
28
+ attr_reader aspect_ratio: ::Array[Integer]?
29
+
30
+ def aspect_ratio=: (::Array[Integer]) -> ::Array[Integer]
31
+
32
+ attr_reader availability_status: String?
33
+
34
+ def availability_status=: (String) -> String
35
+
36
+ attr_reader display_url: String?
37
+
38
+ def display_url=: (String) -> String
39
+
40
+ attr_reader duration_millis: Integer?
41
+
42
+ def duration_millis=: (Integer) -> Integer
43
+
44
+ attr_reader expanded_url: String?
45
+
46
+ def expanded_url=: (String) -> String
47
+
48
+ attr_reader face_rects: ::Hash[Symbol, ::Array[XTwitterScraper::TweetMedia::FaceRect]]?
49
+
50
+ def face_rects=: (
51
+ ::Hash[Symbol, ::Array[XTwitterScraper::TweetMedia::FaceRect]]
52
+ ) -> ::Hash[Symbol, ::Array[XTwitterScraper::TweetMedia::FaceRect]]
53
+
54
+ attr_reader focus_rects: ::Array[XTwitterScraper::TweetMedia::FocusRect]?
55
+
56
+ def focus_rects=: (
57
+ ::Array[XTwitterScraper::TweetMedia::FocusRect]
58
+ ) -> ::Array[XTwitterScraper::TweetMedia::FocusRect]
59
+
60
+ attr_reader height: Integer?
61
+
62
+ def height=: (Integer) -> Integer
63
+
64
+ attr_reader indices: ::Array[Integer]?
65
+
66
+ def indices=: (::Array[Integer]) -> ::Array[Integer]
67
+
68
+ attr_reader media_key: String?
69
+
70
+ def media_key=: (String) -> String
71
+
72
+ attr_reader monetizable: bool?
73
+
74
+ def monetizable=: (bool) -> bool
75
+
76
+ attr_reader sizes: ::Hash[Symbol, XTwitterScraper::TweetMedia::Size]?
77
+
78
+ def sizes=: (
79
+ ::Hash[Symbol, XTwitterScraper::TweetMedia::Size]
80
+ ) -> ::Hash[Symbol, XTwitterScraper::TweetMedia::Size]
81
+
22
82
  attr_reader video_variants: ::Array[XTwitterScraper::TweetMedia::VideoVariant]?
23
83
 
24
84
  def video_variants=: (
25
85
  ::Array[XTwitterScraper::TweetMedia::VideoVariant]
26
86
  ) -> ::Array[XTwitterScraper::TweetMedia::VideoVariant]
27
87
 
88
+ attr_reader width: Integer?
89
+
90
+ def width=: (Integer) -> Integer
91
+
28
92
  def initialize: (
29
93
  media_url: String,
30
94
  type: XTwitterScraper::Models::TweetMedia::type_,
31
95
  url: String,
32
- ?video_variants: ::Array[XTwitterScraper::TweetMedia::VideoVariant]
96
+ ?id: String,
97
+ ?allow_download: bool,
98
+ ?alt_text: String,
99
+ ?aspect_ratio: ::Array[Integer],
100
+ ?availability_status: String,
101
+ ?display_url: String,
102
+ ?duration_millis: Integer,
103
+ ?expanded_url: String,
104
+ ?face_rects: ::Hash[Symbol, ::Array[XTwitterScraper::TweetMedia::FaceRect]],
105
+ ?focus_rects: ::Array[XTwitterScraper::TweetMedia::FocusRect],
106
+ ?height: Integer,
107
+ ?indices: ::Array[Integer],
108
+ ?media_key: String,
109
+ ?monetizable: bool,
110
+ ?sizes: ::Hash[Symbol, XTwitterScraper::TweetMedia::Size],
111
+ ?video_variants: ::Array[XTwitterScraper::TweetMedia::VideoVariant],
112
+ ?width: Integer
33
113
  ) -> void
34
114
 
35
- def to_hash: -> {
36
- media_url: String,
37
- type: XTwitterScraper::Models::TweetMedia::type_,
38
- url: String,
39
- video_variants: ::Array[XTwitterScraper::TweetMedia::VideoVariant]
40
- }
115
+ def to_hash: -> ::Hash[Symbol, top]
41
116
 
42
117
  type type_ = :photo | :video | :animated_gif
43
118
 
@@ -51,6 +126,62 @@ module XTwitterScraper
51
126
  def self?.values: -> ::Array[XTwitterScraper::Models::TweetMedia::type_]
52
127
  end
53
128
 
129
+ type face_rect = ::Hash[Symbol, top]
130
+
131
+ class FaceRect < XTwitterScraper::Internal::Type::BaseModel
132
+ attr_accessor h: Integer
133
+
134
+ attr_accessor w: Integer
135
+
136
+ attr_accessor x: Integer
137
+
138
+ attr_accessor y_: Integer
139
+
140
+ def initialize: (
141
+ h: Integer,
142
+ w: Integer,
143
+ x: Integer,
144
+ y_: Integer
145
+ ) -> void
146
+
147
+ def to_hash: -> ::Hash[Symbol, top]
148
+ end
149
+
150
+ type focus_rect = ::Hash[Symbol, top]
151
+
152
+ class FocusRect < XTwitterScraper::Internal::Type::BaseModel
153
+ attr_accessor h: Integer
154
+
155
+ attr_accessor w: Integer
156
+
157
+ attr_accessor x: Integer
158
+
159
+ attr_accessor y_: Integer
160
+
161
+ def initialize: (
162
+ h: Integer,
163
+ w: Integer,
164
+ x: Integer,
165
+ y_: Integer
166
+ ) -> void
167
+
168
+ def to_hash: -> ::Hash[Symbol, top]
169
+ end
170
+
171
+ type size = ::Hash[Symbol, top]
172
+
173
+ class Size < XTwitterScraper::Internal::Type::BaseModel
174
+ attr_accessor h: Integer
175
+
176
+ attr_accessor resize: String
177
+
178
+ attr_accessor w: Integer
179
+
180
+ def initialize: (h: Integer, resize: String, w: Integer) -> void
181
+
182
+ def to_hash: -> ::Hash[Symbol, top]
183
+ end
184
+
54
185
  type video_variant =
55
186
  { content_type: String, url: String, bitrate: Integer }
56
187
 
@@ -69,7 +200,7 @@ module XTwitterScraper
69
200
  ?bitrate: Integer
70
201
  ) -> void
71
202
 
72
- def to_hash: -> { content_type: String, url: String, bitrate: Integer }
203
+ def to_hash: -> ::Hash[Symbol, top]
73
204
  end
74
205
  end
75
206
  end