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
@@ -50,6 +50,7 @@ module XTwitterScraper
50
50
  type source =
51
51
  :followers
52
52
  | :following
53
+ | :collection
53
54
  | :paginationCap
54
55
  | :posts
55
56
  | :quoteCount
@@ -63,6 +64,7 @@ module XTwitterScraper
63
64
 
64
65
  FOLLOWERS: :followers
65
66
  FOLLOWING: :following
67
+ COLLECTION: :collection
66
68
  PAGINATION_CAP: :paginationCap
67
69
  POSTS: :posts
68
70
  QUOTE_COUNT: :quoteCount
@@ -7,7 +7,25 @@ module XTwitterScraper
7
7
  type extraction_export_results_params =
8
8
  {
9
9
  id: String,
10
- format_: XTwitterScraper::Models::ExtractionExportResultsParams::format_
10
+ format_: XTwitterScraper::Models::ExtractionExportResultsParams::format_,
11
+ has_description: bool,
12
+ has_location: bool,
13
+ has_media: bool,
14
+ lang: String,
15
+ max_followers: Integer,
16
+ max_following: Integer,
17
+ max_posts: Integer,
18
+ min_followers: Integer,
19
+ min_following: Integer,
20
+ min_likes: Integer,
21
+ min_posts: Integer,
22
+ min_replies: Integer,
23
+ min_retweets: Integer,
24
+ min_views: Integer,
25
+ search: String,
26
+ since_date: Date,
27
+ until_date: Date,
28
+ verified: bool
11
29
  }
12
30
  & XTwitterScraper::Internal::Type::request_parameters
13
31
 
@@ -19,15 +37,123 @@ module XTwitterScraper
19
37
 
20
38
  attr_accessor format_: XTwitterScraper::Models::ExtractionExportResultsParams::format_
21
39
 
40
+ attr_reader has_description: bool?
41
+
42
+ def has_description=: (bool) -> bool
43
+
44
+ attr_reader has_location: bool?
45
+
46
+ def has_location=: (bool) -> bool
47
+
48
+ attr_reader has_media: bool?
49
+
50
+ def has_media=: (bool) -> bool
51
+
52
+ attr_reader lang: String?
53
+
54
+ def lang=: (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_posts: Integer?
65
+
66
+ def max_posts=: (Integer) -> Integer
67
+
68
+ attr_reader min_followers: Integer?
69
+
70
+ def min_followers=: (Integer) -> Integer
71
+
72
+ attr_reader min_following: Integer?
73
+
74
+ def min_following=: (Integer) -> Integer
75
+
76
+ attr_reader min_likes: Integer?
77
+
78
+ def min_likes=: (Integer) -> Integer
79
+
80
+ attr_reader min_posts: Integer?
81
+
82
+ def min_posts=: (Integer) -> Integer
83
+
84
+ attr_reader min_replies: Integer?
85
+
86
+ def min_replies=: (Integer) -> Integer
87
+
88
+ attr_reader min_retweets: Integer?
89
+
90
+ def min_retweets=: (Integer) -> Integer
91
+
92
+ attr_reader min_views: Integer?
93
+
94
+ def min_views=: (Integer) -> Integer
95
+
96
+ attr_reader search: String?
97
+
98
+ def search=: (String) -> String
99
+
100
+ attr_reader since_date: Date?
101
+
102
+ def since_date=: (Date) -> Date
103
+
104
+ attr_reader until_date: Date?
105
+
106
+ def until_date=: (Date) -> Date
107
+
108
+ attr_reader verified: bool?
109
+
110
+ def verified=: (bool) -> bool
111
+
22
112
  def initialize: (
23
113
  id: String,
24
114
  format_: XTwitterScraper::Models::ExtractionExportResultsParams::format_,
115
+ ?has_description: bool,
116
+ ?has_location: bool,
117
+ ?has_media: bool,
118
+ ?lang: String,
119
+ ?max_followers: Integer,
120
+ ?max_following: Integer,
121
+ ?max_posts: Integer,
122
+ ?min_followers: Integer,
123
+ ?min_following: Integer,
124
+ ?min_likes: Integer,
125
+ ?min_posts: Integer,
126
+ ?min_replies: Integer,
127
+ ?min_retweets: Integer,
128
+ ?min_views: Integer,
129
+ ?search: String,
130
+ ?since_date: Date,
131
+ ?until_date: Date,
132
+ ?verified: bool,
25
133
  ?request_options: XTwitterScraper::request_opts
26
134
  ) -> void
27
135
 
28
136
  def to_hash: -> {
29
137
  id: String,
30
138
  format_: XTwitterScraper::Models::ExtractionExportResultsParams::format_,
139
+ has_description: bool,
140
+ has_location: bool,
141
+ has_media: bool,
142
+ lang: String,
143
+ max_followers: Integer,
144
+ max_following: Integer,
145
+ max_posts: Integer,
146
+ min_followers: Integer,
147
+ min_following: Integer,
148
+ min_likes: Integer,
149
+ min_posts: Integer,
150
+ min_replies: Integer,
151
+ min_retweets: Integer,
152
+ min_views: Integer,
153
+ search: String,
154
+ since_date: Date,
155
+ until_date: Date,
156
+ verified: bool,
31
157
  request_options: XTwitterScraper::RequestOptions
32
158
  }
33
159
 
@@ -5,7 +5,15 @@
5
5
  module XTwitterScraper
6
6
  module Models
7
7
  type extraction_retrieve_params =
8
- { id: String, cursor: String, limit: Integer }
8
+ {
9
+ id: String,
10
+ cursor: String,
11
+ field_style: XTwitterScraper::Models::ExtractionRetrieveParams::field_style,
12
+ include_raw: bool,
13
+ limit: Integer,
14
+ output_mode: XTwitterScraper::Models::ExtractionRetrieveParams::output_mode,
15
+ output_preset: XTwitterScraper::Models::ExtractionRetrieveParams::output_preset
16
+ }
9
17
  & XTwitterScraper::Internal::Type::request_parameters
10
18
 
11
19
  class ExtractionRetrieveParams < XTwitterScraper::Internal::Type::BaseModel
@@ -18,23 +26,88 @@ module XTwitterScraper
18
26
 
19
27
  def cursor=: (String) -> String
20
28
 
29
+ attr_reader field_style: XTwitterScraper::Models::ExtractionRetrieveParams::field_style?
30
+
31
+ def field_style=: (
32
+ XTwitterScraper::Models::ExtractionRetrieveParams::field_style
33
+ ) -> XTwitterScraper::Models::ExtractionRetrieveParams::field_style
34
+
35
+ attr_reader include_raw: bool?
36
+
37
+ def include_raw=: (bool) -> bool
38
+
21
39
  attr_reader limit: Integer?
22
40
 
23
41
  def limit=: (Integer) -> Integer
24
42
 
43
+ attr_reader output_mode: XTwitterScraper::Models::ExtractionRetrieveParams::output_mode?
44
+
45
+ def output_mode=: (
46
+ XTwitterScraper::Models::ExtractionRetrieveParams::output_mode
47
+ ) -> XTwitterScraper::Models::ExtractionRetrieveParams::output_mode
48
+
49
+ attr_reader output_preset: XTwitterScraper::Models::ExtractionRetrieveParams::output_preset?
50
+
51
+ def output_preset=: (
52
+ XTwitterScraper::Models::ExtractionRetrieveParams::output_preset
53
+ ) -> XTwitterScraper::Models::ExtractionRetrieveParams::output_preset
54
+
25
55
  def initialize: (
26
56
  id: String,
27
57
  ?cursor: String,
58
+ ?field_style: XTwitterScraper::Models::ExtractionRetrieveParams::field_style,
59
+ ?include_raw: bool,
28
60
  ?limit: Integer,
61
+ ?output_mode: XTwitterScraper::Models::ExtractionRetrieveParams::output_mode,
62
+ ?output_preset: XTwitterScraper::Models::ExtractionRetrieveParams::output_preset,
29
63
  ?request_options: XTwitterScraper::request_opts
30
64
  ) -> void
31
65
 
32
66
  def to_hash: -> {
33
67
  id: String,
34
68
  cursor: String,
69
+ field_style: XTwitterScraper::Models::ExtractionRetrieveParams::field_style,
70
+ include_raw: bool,
35
71
  limit: Integer,
72
+ output_mode: XTwitterScraper::Models::ExtractionRetrieveParams::output_mode,
73
+ output_preset: XTwitterScraper::Models::ExtractionRetrieveParams::output_preset,
36
74
  request_options: XTwitterScraper::RequestOptions
37
75
  }
76
+
77
+ type field_style = :source | :camelCase | :snake_case
78
+
79
+ module FieldStyle
80
+ extend XTwitterScraper::Internal::Type::Enum
81
+
82
+ SOURCE: :source
83
+ CAMEL_CASE: :camelCase
84
+ SNAKE_CASE: :snake_case
85
+
86
+ def self?.values: -> ::Array[XTwitterScraper::Models::ExtractionRetrieveParams::field_style]
87
+ end
88
+
89
+ type output_mode = :compact | :full | :raw
90
+
91
+ module OutputMode
92
+ extend XTwitterScraper::Internal::Type::Enum
93
+
94
+ COMPACT: :compact
95
+ FULL: :full
96
+ RAW: :raw
97
+
98
+ def self?.values: -> ::Array[XTwitterScraper::Models::ExtractionRetrieveParams::output_mode]
99
+ end
100
+
101
+ type output_preset = :nested | :flat
102
+
103
+ module OutputPreset
104
+ extend XTwitterScraper::Internal::Type::Enum
105
+
106
+ NESTED: :nested
107
+ FLAT: :flat
108
+
109
+ def self?.values: -> ::Array[XTwitterScraper::Models::ExtractionRetrieveParams::output_preset]
110
+ end
38
111
  end
39
112
  end
40
113
  end