post-for-me 0.1.0.pre.alpha.7 → 0.1.0.pre.alpha.9

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/post_for_me/errors.rb +25 -11
  5. data/lib/post_for_me/file_part.rb +10 -7
  6. data/lib/post_for_me/internal/transport/base_client.rb +11 -7
  7. data/lib/post_for_me/internal/transport/pooled_net_requester.rb +7 -10
  8. data/lib/post_for_me/internal/type/base_page.rb +1 -1
  9. data/lib/post_for_me/internal/type/file_input.rb +7 -4
  10. data/lib/post_for_me/internal/util.rb +3 -2
  11. data/lib/post_for_me/models/bluesky_configuration_dto.rb +118 -3
  12. data/lib/post_for_me/models/create_social_post.rb +221 -2
  13. data/lib/post_for_me/models/facebook_configuration_dto.rb +137 -4
  14. data/lib/post_for_me/models/instagram_configuration_dto.rb +135 -4
  15. data/lib/post_for_me/models/linkedin_configuration_dto.rb +118 -3
  16. data/lib/post_for_me/models/pinterest_configuration_dto.rb +118 -3
  17. data/lib/post_for_me/models/social_account_create_auth_url_params.rb +43 -1
  18. data/lib/post_for_me/models/social_post.rb +221 -2
  19. data/lib/post_for_me/models/threads_configuration_dto.rb +118 -3
  20. data/lib/post_for_me/models/tiktok_configuration.rb +127 -4
  21. data/lib/post_for_me/models/twitter_configuration_dto.rb +211 -4
  22. data/lib/post_for_me/models/youtube_configuration_dto.rb +118 -3
  23. data/lib/post_for_me/version.rb +1 -1
  24. data/rbi/post_for_me/errors.rbi +29 -2
  25. data/rbi/post_for_me/file_part.rbi +1 -1
  26. data/rbi/post_for_me/internal/transport/base_client.rbi +4 -5
  27. data/rbi/post_for_me/internal/type/base_page.rbi +1 -1
  28. data/rbi/post_for_me/internal/util.rbi +1 -1
  29. data/rbi/post_for_me/models/bluesky_configuration_dto.rbi +243 -3
  30. data/rbi/post_for_me/models/create_social_post.rbi +424 -0
  31. data/rbi/post_for_me/models/facebook_configuration_dto.rbi +258 -3
  32. data/rbi/post_for_me/models/instagram_configuration_dto.rbi +267 -6
  33. data/rbi/post_for_me/models/linkedin_configuration_dto.rbi +245 -3
  34. data/rbi/post_for_me/models/pinterest_configuration_dto.rbi +246 -3
  35. data/rbi/post_for_me/models/social_account_create_auth_url_params.rbi +104 -0
  36. data/rbi/post_for_me/models/social_post.rbi +414 -0
  37. data/rbi/post_for_me/models/threads_configuration_dto.rbi +240 -3
  38. data/rbi/post_for_me/models/tiktok_configuration.rbi +237 -3
  39. data/rbi/post_for_me/models/twitter_configuration_dto.rbi +452 -4
  40. data/rbi/post_for_me/models/youtube_configuration_dto.rbi +240 -3
  41. data/sig/post_for_me/errors.rbs +7 -0
  42. data/sig/post_for_me/file_part.rbs +1 -1
  43. data/sig/post_for_me/models/bluesky_configuration_dto.rbs +109 -4
  44. data/sig/post_for_me/models/create_social_post.rbs +180 -1
  45. data/sig/post_for_me/models/facebook_configuration_dto.rbs +109 -4
  46. data/sig/post_for_me/models/instagram_configuration_dto.rbs +112 -7
  47. data/sig/post_for_me/models/linkedin_configuration_dto.rbs +109 -4
  48. data/sig/post_for_me/models/pinterest_configuration_dto.rbs +99 -4
  49. data/sig/post_for_me/models/social_account_create_auth_url_params.rbs +37 -0
  50. data/sig/post_for_me/models/social_post.rbs +180 -1
  51. data/sig/post_for_me/models/threads_configuration_dto.rbs +99 -4
  52. data/sig/post_for_me/models/tiktok_configuration.rbs +104 -4
  53. data/sig/post_for_me/models/twitter_configuration_dto.rbs +196 -4
  54. data/sig/post_for_me/models/youtube_configuration_dto.rbs +107 -4
  55. metadata +2 -2
@@ -16,7 +16,9 @@ module PostForMe
16
16
  attr_accessor :caption
17
17
 
18
18
  # Overrides the `media` from the post
19
- sig { returns(T.nilable(T::Array[String])) }
19
+ sig do
20
+ returns(T.nilable(T::Array[PostForMe::ThreadsConfigurationDto::Media]))
21
+ end
20
22
  attr_accessor :media
21
23
 
22
24
  # Threads post placement
@@ -30,7 +32,10 @@ module PostForMe
30
32
  sig do
31
33
  params(
32
34
  caption: T.nilable(T.anything),
33
- media: T.nilable(T::Array[String]),
35
+ media:
36
+ T.nilable(
37
+ T::Array[PostForMe::ThreadsConfigurationDto::Media::OrHash]
38
+ ),
34
39
  placement:
35
40
  T.nilable(PostForMe::ThreadsConfigurationDto::Placement::OrSymbol)
36
41
  ).returns(T.attached_class)
@@ -49,7 +54,8 @@ module PostForMe
49
54
  override.returns(
50
55
  {
51
56
  caption: T.nilable(T.anything),
52
- media: T.nilable(T::Array[String]),
57
+ media:
58
+ T.nilable(T::Array[PostForMe::ThreadsConfigurationDto::Media]),
53
59
  placement:
54
60
  T.nilable(PostForMe::ThreadsConfigurationDto::Placement::OrSymbol)
55
61
  }
@@ -58,6 +64,237 @@ module PostForMe
58
64
  def to_hash
59
65
  end
60
66
 
67
+ class Media < PostForMe::Internal::Type::BaseModel
68
+ OrHash =
69
+ T.type_alias do
70
+ T.any(
71
+ PostForMe::ThreadsConfigurationDto::Media,
72
+ PostForMe::Internal::AnyHash
73
+ )
74
+ end
75
+
76
+ # Public URL of the media
77
+ sig { returns(String) }
78
+ attr_accessor :url
79
+
80
+ # List of tags to attach to the media
81
+ sig do
82
+ returns(
83
+ T.nilable(T::Array[PostForMe::ThreadsConfigurationDto::Media::Tag])
84
+ )
85
+ end
86
+ attr_accessor :tags
87
+
88
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
89
+ sig { returns(T.nilable(T.anything)) }
90
+ attr_accessor :thumbnail_timestamp_ms
91
+
92
+ # Public URL of the thumbnail for the media
93
+ sig { returns(T.nilable(T.anything)) }
94
+ attr_accessor :thumbnail_url
95
+
96
+ sig do
97
+ params(
98
+ url: String,
99
+ tags:
100
+ T.nilable(
101
+ T::Array[PostForMe::ThreadsConfigurationDto::Media::Tag::OrHash]
102
+ ),
103
+ thumbnail_timestamp_ms: T.nilable(T.anything),
104
+ thumbnail_url: T.nilable(T.anything)
105
+ ).returns(T.attached_class)
106
+ end
107
+ def self.new(
108
+ # Public URL of the media
109
+ url:,
110
+ # List of tags to attach to the media
111
+ tags: nil,
112
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
113
+ thumbnail_timestamp_ms: nil,
114
+ # Public URL of the thumbnail for the media
115
+ thumbnail_url: nil
116
+ )
117
+ end
118
+
119
+ sig do
120
+ override.returns(
121
+ {
122
+ url: String,
123
+ tags:
124
+ T.nilable(
125
+ T::Array[PostForMe::ThreadsConfigurationDto::Media::Tag]
126
+ ),
127
+ thumbnail_timestamp_ms: T.nilable(T.anything),
128
+ thumbnail_url: T.nilable(T.anything)
129
+ }
130
+ )
131
+ end
132
+ def to_hash
133
+ end
134
+
135
+ class Tag < PostForMe::Internal::Type::BaseModel
136
+ OrHash =
137
+ T.type_alias do
138
+ T.any(
139
+ PostForMe::ThreadsConfigurationDto::Media::Tag,
140
+ PostForMe::Internal::AnyHash
141
+ )
142
+ end
143
+
144
+ # Facebook User ID, Instagram Username or Instagram product id to tag
145
+ sig { returns(String) }
146
+ attr_accessor :id
147
+
148
+ # The platform for the tags
149
+ sig do
150
+ returns(
151
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Platform::OrSymbol
152
+ )
153
+ end
154
+ attr_accessor :platform
155
+
156
+ # The type of tag, user to tag accounts, product to tag products (only supported
157
+ # for instagram)
158
+ sig do
159
+ returns(
160
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Type::OrSymbol
161
+ )
162
+ end
163
+ attr_accessor :type
164
+
165
+ # Percentage distance from left edge of the image, Not required for videos or
166
+ # stories
167
+ sig { returns(T.nilable(Float)) }
168
+ attr_reader :x
169
+
170
+ sig { params(x: Float).void }
171
+ attr_writer :x
172
+
173
+ # Percentage distance from top edge of the image, Not required for videos or
174
+ # stories
175
+ sig { returns(T.nilable(Float)) }
176
+ attr_reader :y_
177
+
178
+ sig { params(y_: Float).void }
179
+ attr_writer :y_
180
+
181
+ sig do
182
+ params(
183
+ id: String,
184
+ platform:
185
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Platform::OrSymbol,
186
+ type:
187
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Type::OrSymbol,
188
+ x: Float,
189
+ y_: Float
190
+ ).returns(T.attached_class)
191
+ end
192
+ def self.new(
193
+ # Facebook User ID, Instagram Username or Instagram product id to tag
194
+ id:,
195
+ # The platform for the tags
196
+ platform:,
197
+ # The type of tag, user to tag accounts, product to tag products (only supported
198
+ # for instagram)
199
+ type:,
200
+ # Percentage distance from left edge of the image, Not required for videos or
201
+ # stories
202
+ x: nil,
203
+ # Percentage distance from top edge of the image, Not required for videos or
204
+ # stories
205
+ y_: nil
206
+ )
207
+ end
208
+
209
+ sig do
210
+ override.returns(
211
+ {
212
+ id: String,
213
+ platform:
214
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Platform::OrSymbol,
215
+ type:
216
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Type::OrSymbol,
217
+ x: Float,
218
+ y_: Float
219
+ }
220
+ )
221
+ end
222
+ def to_hash
223
+ end
224
+
225
+ # The platform for the tags
226
+ module Platform
227
+ extend PostForMe::Internal::Type::Enum
228
+
229
+ TaggedSymbol =
230
+ T.type_alias do
231
+ T.all(
232
+ Symbol,
233
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Platform
234
+ )
235
+ end
236
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
237
+
238
+ FACEBOOK =
239
+ T.let(
240
+ :facebook,
241
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Platform::TaggedSymbol
242
+ )
243
+ INSTAGRAM =
244
+ T.let(
245
+ :instagram,
246
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Platform::TaggedSymbol
247
+ )
248
+
249
+ sig do
250
+ override.returns(
251
+ T::Array[
252
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Platform::TaggedSymbol
253
+ ]
254
+ )
255
+ end
256
+ def self.values
257
+ end
258
+ end
259
+
260
+ # The type of tag, user to tag accounts, product to tag products (only supported
261
+ # for instagram)
262
+ module Type
263
+ extend PostForMe::Internal::Type::Enum
264
+
265
+ TaggedSymbol =
266
+ T.type_alias do
267
+ T.all(
268
+ Symbol,
269
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Type
270
+ )
271
+ end
272
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
273
+
274
+ USER =
275
+ T.let(
276
+ :user,
277
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Type::TaggedSymbol
278
+ )
279
+ PRODUCT =
280
+ T.let(
281
+ :product,
282
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Type::TaggedSymbol
283
+ )
284
+
285
+ sig do
286
+ override.returns(
287
+ T::Array[
288
+ PostForMe::ThreadsConfigurationDto::Media::Tag::Type::TaggedSymbol
289
+ ]
290
+ )
291
+ end
292
+ def self.values
293
+ end
294
+ end
295
+ end
296
+ end
297
+
61
298
  # Threads post placement
62
299
  module Placement
63
300
  extend PostForMe::Internal::Type::Enum
@@ -20,6 +20,10 @@ module PostForMe
20
20
  sig { returns(T.nilable(T::Boolean)) }
21
21
  attr_accessor :allow_stitch
22
22
 
23
+ # Will automatically add music to photo posts
24
+ sig { returns(T.nilable(T::Boolean)) }
25
+ attr_accessor :auto_add_music
26
+
23
27
  # Overrides the `caption` from the post
24
28
  sig { returns(T.nilable(T.anything)) }
25
29
  attr_accessor :caption
@@ -42,7 +46,9 @@ module PostForMe
42
46
  attr_accessor :is_draft
43
47
 
44
48
  # Overrides the `media` from the post
45
- sig { returns(T.nilable(T::Array[String])) }
49
+ sig do
50
+ returns(T.nilable(T::Array[PostForMe::TiktokConfiguration::Media]))
51
+ end
46
52
  attr_accessor :media
47
53
 
48
54
  # Sets the privacy status for TikTok (private, public)
@@ -58,12 +64,14 @@ module PostForMe
58
64
  allow_comment: T.nilable(T::Boolean),
59
65
  allow_duet: T.nilable(T::Boolean),
60
66
  allow_stitch: T.nilable(T::Boolean),
67
+ auto_add_music: T.nilable(T::Boolean),
61
68
  caption: T.nilable(T.anything),
62
69
  disclose_branded_content: T.nilable(T::Boolean),
63
70
  disclose_your_brand: T.nilable(T::Boolean),
64
71
  is_ai_generated: T.nilable(T::Boolean),
65
72
  is_draft: T.nilable(T::Boolean),
66
- media: T.nilable(T::Array[String]),
73
+ media:
74
+ T.nilable(T::Array[PostForMe::TiktokConfiguration::Media::OrHash]),
67
75
  privacy_status: T.nilable(String),
68
76
  title: T.nilable(String)
69
77
  ).returns(T.attached_class)
@@ -75,6 +83,8 @@ module PostForMe
75
83
  allow_duet: nil,
76
84
  # Allow stitch on TikTok
77
85
  allow_stitch: nil,
86
+ # Will automatically add music to photo posts
87
+ auto_add_music: nil,
78
88
  # Overrides the `caption` from the post
79
89
  caption: nil,
80
90
  # Disclose branded content on TikTok
@@ -101,12 +111,13 @@ module PostForMe
101
111
  allow_comment: T.nilable(T::Boolean),
102
112
  allow_duet: T.nilable(T::Boolean),
103
113
  allow_stitch: T.nilable(T::Boolean),
114
+ auto_add_music: T.nilable(T::Boolean),
104
115
  caption: T.nilable(T.anything),
105
116
  disclose_branded_content: T.nilable(T::Boolean),
106
117
  disclose_your_brand: T.nilable(T::Boolean),
107
118
  is_ai_generated: T.nilable(T::Boolean),
108
119
  is_draft: T.nilable(T::Boolean),
109
- media: T.nilable(T::Array[String]),
120
+ media: T.nilable(T::Array[PostForMe::TiktokConfiguration::Media]),
110
121
  privacy_status: T.nilable(String),
111
122
  title: T.nilable(String)
112
123
  }
@@ -114,6 +125,229 @@ module PostForMe
114
125
  end
115
126
  def to_hash
116
127
  end
128
+
129
+ class Media < PostForMe::Internal::Type::BaseModel
130
+ OrHash =
131
+ T.type_alias do
132
+ T.any(
133
+ PostForMe::TiktokConfiguration::Media,
134
+ PostForMe::Internal::AnyHash
135
+ )
136
+ end
137
+
138
+ # Public URL of the media
139
+ sig { returns(String) }
140
+ attr_accessor :url
141
+
142
+ # List of tags to attach to the media
143
+ sig do
144
+ returns(
145
+ T.nilable(T::Array[PostForMe::TiktokConfiguration::Media::Tag])
146
+ )
147
+ end
148
+ attr_accessor :tags
149
+
150
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
151
+ sig { returns(T.nilable(T.anything)) }
152
+ attr_accessor :thumbnail_timestamp_ms
153
+
154
+ # Public URL of the thumbnail for the media
155
+ sig { returns(T.nilable(T.anything)) }
156
+ attr_accessor :thumbnail_url
157
+
158
+ sig do
159
+ params(
160
+ url: String,
161
+ tags:
162
+ T.nilable(
163
+ T::Array[PostForMe::TiktokConfiguration::Media::Tag::OrHash]
164
+ ),
165
+ thumbnail_timestamp_ms: T.nilable(T.anything),
166
+ thumbnail_url: T.nilable(T.anything)
167
+ ).returns(T.attached_class)
168
+ end
169
+ def self.new(
170
+ # Public URL of the media
171
+ url:,
172
+ # List of tags to attach to the media
173
+ tags: nil,
174
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
175
+ thumbnail_timestamp_ms: nil,
176
+ # Public URL of the thumbnail for the media
177
+ thumbnail_url: nil
178
+ )
179
+ end
180
+
181
+ sig do
182
+ override.returns(
183
+ {
184
+ url: String,
185
+ tags:
186
+ T.nilable(T::Array[PostForMe::TiktokConfiguration::Media::Tag]),
187
+ thumbnail_timestamp_ms: T.nilable(T.anything),
188
+ thumbnail_url: T.nilable(T.anything)
189
+ }
190
+ )
191
+ end
192
+ def to_hash
193
+ end
194
+
195
+ class Tag < PostForMe::Internal::Type::BaseModel
196
+ OrHash =
197
+ T.type_alias do
198
+ T.any(
199
+ PostForMe::TiktokConfiguration::Media::Tag,
200
+ PostForMe::Internal::AnyHash
201
+ )
202
+ end
203
+
204
+ # Facebook User ID, Instagram Username or Instagram product id to tag
205
+ sig { returns(String) }
206
+ attr_accessor :id
207
+
208
+ # The platform for the tags
209
+ sig do
210
+ returns(
211
+ PostForMe::TiktokConfiguration::Media::Tag::Platform::OrSymbol
212
+ )
213
+ end
214
+ attr_accessor :platform
215
+
216
+ # The type of tag, user to tag accounts, product to tag products (only supported
217
+ # for instagram)
218
+ sig do
219
+ returns(PostForMe::TiktokConfiguration::Media::Tag::Type::OrSymbol)
220
+ end
221
+ attr_accessor :type
222
+
223
+ # Percentage distance from left edge of the image, Not required for videos or
224
+ # stories
225
+ sig { returns(T.nilable(Float)) }
226
+ attr_reader :x
227
+
228
+ sig { params(x: Float).void }
229
+ attr_writer :x
230
+
231
+ # Percentage distance from top edge of the image, Not required for videos or
232
+ # stories
233
+ sig { returns(T.nilable(Float)) }
234
+ attr_reader :y_
235
+
236
+ sig { params(y_: Float).void }
237
+ attr_writer :y_
238
+
239
+ sig do
240
+ params(
241
+ id: String,
242
+ platform:
243
+ PostForMe::TiktokConfiguration::Media::Tag::Platform::OrSymbol,
244
+ type: PostForMe::TiktokConfiguration::Media::Tag::Type::OrSymbol,
245
+ x: Float,
246
+ y_: Float
247
+ ).returns(T.attached_class)
248
+ end
249
+ def self.new(
250
+ # Facebook User ID, Instagram Username or Instagram product id to tag
251
+ id:,
252
+ # The platform for the tags
253
+ platform:,
254
+ # The type of tag, user to tag accounts, product to tag products (only supported
255
+ # for instagram)
256
+ type:,
257
+ # Percentage distance from left edge of the image, Not required for videos or
258
+ # stories
259
+ x: nil,
260
+ # Percentage distance from top edge of the image, Not required for videos or
261
+ # stories
262
+ y_: nil
263
+ )
264
+ end
265
+
266
+ sig do
267
+ override.returns(
268
+ {
269
+ id: String,
270
+ platform:
271
+ PostForMe::TiktokConfiguration::Media::Tag::Platform::OrSymbol,
272
+ type:
273
+ PostForMe::TiktokConfiguration::Media::Tag::Type::OrSymbol,
274
+ x: Float,
275
+ y_: Float
276
+ }
277
+ )
278
+ end
279
+ def to_hash
280
+ end
281
+
282
+ # The platform for the tags
283
+ module Platform
284
+ extend PostForMe::Internal::Type::Enum
285
+
286
+ TaggedSymbol =
287
+ T.type_alias do
288
+ T.all(
289
+ Symbol,
290
+ PostForMe::TiktokConfiguration::Media::Tag::Platform
291
+ )
292
+ end
293
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
294
+
295
+ FACEBOOK =
296
+ T.let(
297
+ :facebook,
298
+ PostForMe::TiktokConfiguration::Media::Tag::Platform::TaggedSymbol
299
+ )
300
+ INSTAGRAM =
301
+ T.let(
302
+ :instagram,
303
+ PostForMe::TiktokConfiguration::Media::Tag::Platform::TaggedSymbol
304
+ )
305
+
306
+ sig do
307
+ override.returns(
308
+ T::Array[
309
+ PostForMe::TiktokConfiguration::Media::Tag::Platform::TaggedSymbol
310
+ ]
311
+ )
312
+ end
313
+ def self.values
314
+ end
315
+ end
316
+
317
+ # The type of tag, user to tag accounts, product to tag products (only supported
318
+ # for instagram)
319
+ module Type
320
+ extend PostForMe::Internal::Type::Enum
321
+
322
+ TaggedSymbol =
323
+ T.type_alias do
324
+ T.all(Symbol, PostForMe::TiktokConfiguration::Media::Tag::Type)
325
+ end
326
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
327
+
328
+ USER =
329
+ T.let(
330
+ :user,
331
+ PostForMe::TiktokConfiguration::Media::Tag::Type::TaggedSymbol
332
+ )
333
+ PRODUCT =
334
+ T.let(
335
+ :product,
336
+ PostForMe::TiktokConfiguration::Media::Tag::Type::TaggedSymbol
337
+ )
338
+
339
+ sig do
340
+ override.returns(
341
+ T::Array[
342
+ PostForMe::TiktokConfiguration::Media::Tag::Type::TaggedSymbol
343
+ ]
344
+ )
345
+ end
346
+ def self.values
347
+ end
348
+ end
349
+ end
350
+ end
117
351
  end
118
352
  end
119
353
  end