post-for-me 0.1.0.pre.alpha.10 → 0.1.0.pre.alpha.12

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +42 -0
  3. data/README.md +10 -1
  4. data/lib/post_for_me/client.rb +4 -0
  5. data/lib/post_for_me/internal/transport/pooled_net_requester.rb +12 -10
  6. data/lib/post_for_me/internal/util.rb +7 -2
  7. data/lib/post_for_me/models/create_social_post.rb +158 -8
  8. data/lib/post_for_me/models/platform_post.rb +843 -0
  9. data/lib/post_for_me/models/social_account_create_auth_url_params.rb +245 -9
  10. data/lib/post_for_me/models/social_account_feed_list_params.rb +81 -0
  11. data/lib/post_for_me/models/social_account_feed_list_response.rb +58 -0
  12. data/lib/post_for_me/models/social_post.rb +155 -8
  13. data/lib/post_for_me/models/social_post_list_params.rb +9 -1
  14. data/lib/post_for_me/models/social_post_result_list_params.rb +10 -1
  15. data/lib/post_for_me/models/youtube_configuration_dto.rb +31 -1
  16. data/lib/post_for_me/models.rb +4 -0
  17. data/lib/post_for_me/resources/social_account_feeds.rb +51 -0
  18. data/lib/post_for_me/resources/social_accounts.rb +8 -1
  19. data/lib/post_for_me/resources/social_post_results.rb +3 -1
  20. data/lib/post_for_me/resources/social_posts.rb +3 -1
  21. data/lib/post_for_me/version.rb +1 -1
  22. data/lib/post_for_me.rb +5 -0
  23. data/manifest.yaml +1 -0
  24. data/rbi/post_for_me/client.rbi +3 -0
  25. data/rbi/post_for_me/models/create_social_post.rbi +328 -8
  26. data/rbi/post_for_me/models/platform_post.rbi +1287 -0
  27. data/rbi/post_for_me/models/social_account_create_auth_url_params.rbi +545 -15
  28. data/rbi/post_for_me/models/social_account_feed_list_params.rbi +157 -0
  29. data/rbi/post_for_me/models/social_account_feed_list_response.rbi +110 -0
  30. data/rbi/post_for_me/models/social_post.rbi +328 -8
  31. data/rbi/post_for_me/models/social_post_list_params.rbi +11 -0
  32. data/rbi/post_for_me/models/social_post_result_list_params.rbi +13 -0
  33. data/rbi/post_for_me/models/youtube_configuration_dto.rbi +63 -0
  34. data/rbi/post_for_me/models.rbi +4 -0
  35. data/rbi/post_for_me/resources/social_account_feeds.rbi +51 -0
  36. data/rbi/post_for_me/resources/social_accounts.rbi +13 -0
  37. data/rbi/post_for_me/resources/social_post_results.rbi +4 -0
  38. data/rbi/post_for_me/resources/social_posts.rbi +3 -0
  39. data/sig/post_for_me/client.rbs +2 -0
  40. data/sig/post_for_me/models/create_social_post.rbs +120 -8
  41. data/sig/post_for_me/models/platform_post.rbs +660 -0
  42. data/sig/post_for_me/models/social_account_create_auth_url_params.rbs +193 -10
  43. data/sig/post_for_me/models/social_account_feed_list_params.rbs +75 -0
  44. data/sig/post_for_me/models/social_account_feed_list_response.rbs +54 -0
  45. data/sig/post_for_me/models/social_post.rbs +120 -8
  46. data/sig/post_for_me/models/social_post_list_params.rbs +7 -0
  47. data/sig/post_for_me/models/social_post_result_list_params.rbs +8 -1
  48. data/sig/post_for_me/models/youtube_configuration_dto.rbs +22 -0
  49. data/sig/post_for_me/models.rbs +4 -0
  50. data/sig/post_for_me/resources/social_account_feeds.rbs +18 -0
  51. data/sig/post_for_me/resources/social_accounts.rbs +2 -0
  52. data/sig/post_for_me/resources/social_post_results.rbs +1 -0
  53. data/sig/post_for_me/resources/social_posts.rbs +1 -0
  54. metadata +28 -2
@@ -241,8 +241,20 @@ module PostForMe
241
241
  sig { returns(T.nilable(String)) }
242
242
  attr_accessor :location
243
243
 
244
+ # If true will notify YouTube the video is intended for kids, defaults to false
245
+ sig { returns(T.nilable(T::Boolean)) }
246
+ attr_accessor :made_for_kids
247
+
244
248
  # Overrides the `media` from the post
245
- sig { returns(T.nilable(T::Array[String])) }
249
+ sig do
250
+ returns(
251
+ T.nilable(
252
+ T::Array[
253
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media
254
+ ]
255
+ )
256
+ )
257
+ end
246
258
  attr_accessor :media
247
259
 
248
260
  # Post placement for Facebook/Instagram/Threads
@@ -273,8 +285,15 @@ module PostForMe
273
285
  end
274
286
  attr_writer :poll
275
287
 
276
- # Sets the privacy status for TikTok (private, public)
277
- sig { returns(T.nilable(String)) }
288
+ # Sets the privacy status for TikTok (private, public), or YouTube (private,
289
+ # public, unlisted)
290
+ sig do
291
+ returns(
292
+ T.nilable(
293
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus::OrSymbol
294
+ )
295
+ )
296
+ end
278
297
  attr_accessor :privacy_status
279
298
 
280
299
  # Id of the tweet you want to quote
@@ -319,14 +338,23 @@ module PostForMe
319
338
  is_draft: T.nilable(T::Boolean),
320
339
  link: T.nilable(String),
321
340
  location: T.nilable(String),
322
- media: T.nilable(T::Array[String]),
341
+ made_for_kids: T.nilable(T::Boolean),
342
+ media:
343
+ T.nilable(
344
+ T::Array[
345
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::OrHash
346
+ ]
347
+ ),
323
348
  placement:
324
349
  T.nilable(
325
350
  PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Placement::OrSymbol
326
351
  ),
327
352
  poll:
328
353
  PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Poll::OrHash,
329
- privacy_status: T.nilable(String),
354
+ privacy_status:
355
+ T.nilable(
356
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus::OrSymbol
357
+ ),
330
358
  quote_tweet_id: String,
331
359
  reply_settings:
332
360
  T.nilable(
@@ -368,13 +396,16 @@ module PostForMe
368
396
  # Page id with a location that you want to tag the image or video with (Instagram
369
397
  # and Facebook)
370
398
  location: nil,
399
+ # If true will notify YouTube the video is intended for kids, defaults to false
400
+ made_for_kids: nil,
371
401
  # Overrides the `media` from the post
372
402
  media: nil,
373
403
  # Post placement for Facebook/Instagram/Threads
374
404
  placement: nil,
375
405
  # Poll options for the twitter
376
406
  poll: nil,
377
- # Sets the privacy status for TikTok (private, public)
407
+ # Sets the privacy status for TikTok (private, public), or YouTube (private,
408
+ # public, unlisted)
378
409
  privacy_status: nil,
379
410
  # Id of the tweet you want to quote
380
411
  quote_tweet_id: nil,
@@ -404,14 +435,23 @@ module PostForMe
404
435
  is_draft: T.nilable(T::Boolean),
405
436
  link: T.nilable(String),
406
437
  location: T.nilable(String),
407
- media: T.nilable(T::Array[String]),
438
+ made_for_kids: T.nilable(T::Boolean),
439
+ media:
440
+ T.nilable(
441
+ T::Array[
442
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media
443
+ ]
444
+ ),
408
445
  placement:
409
446
  T.nilable(
410
447
  PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Placement::OrSymbol
411
448
  ),
412
449
  poll:
413
450
  PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Poll,
414
- privacy_status: T.nilable(String),
451
+ privacy_status:
452
+ T.nilable(
453
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus::OrSymbol
454
+ ),
415
455
  quote_tweet_id: String,
416
456
  reply_settings:
417
457
  T.nilable(
@@ -425,6 +465,245 @@ module PostForMe
425
465
  def to_hash
426
466
  end
427
467
 
468
+ class Media < PostForMe::Internal::Type::BaseModel
469
+ OrHash =
470
+ T.type_alias do
471
+ T.any(
472
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media,
473
+ PostForMe::Internal::AnyHash
474
+ )
475
+ end
476
+
477
+ # Public URL of the media
478
+ sig { returns(String) }
479
+ attr_accessor :url
480
+
481
+ # List of tags to attach to the media
482
+ sig do
483
+ returns(
484
+ T.nilable(
485
+ T::Array[
486
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag
487
+ ]
488
+ )
489
+ )
490
+ end
491
+ attr_accessor :tags
492
+
493
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
494
+ sig { returns(T.nilable(T.anything)) }
495
+ attr_accessor :thumbnail_timestamp_ms
496
+
497
+ # Public URL of the thumbnail for the media
498
+ sig { returns(T.nilable(T.anything)) }
499
+ attr_accessor :thumbnail_url
500
+
501
+ sig do
502
+ params(
503
+ url: String,
504
+ tags:
505
+ T.nilable(
506
+ T::Array[
507
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::OrHash
508
+ ]
509
+ ),
510
+ thumbnail_timestamp_ms: T.nilable(T.anything),
511
+ thumbnail_url: T.nilable(T.anything)
512
+ ).returns(T.attached_class)
513
+ end
514
+ def self.new(
515
+ # Public URL of the media
516
+ url:,
517
+ # List of tags to attach to the media
518
+ tags: nil,
519
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
520
+ thumbnail_timestamp_ms: nil,
521
+ # Public URL of the thumbnail for the media
522
+ thumbnail_url: nil
523
+ )
524
+ end
525
+
526
+ sig do
527
+ override.returns(
528
+ {
529
+ url: String,
530
+ tags:
531
+ T.nilable(
532
+ T::Array[
533
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag
534
+ ]
535
+ ),
536
+ thumbnail_timestamp_ms: T.nilable(T.anything),
537
+ thumbnail_url: T.nilable(T.anything)
538
+ }
539
+ )
540
+ end
541
+ def to_hash
542
+ end
543
+
544
+ class Tag < PostForMe::Internal::Type::BaseModel
545
+ OrHash =
546
+ T.type_alias do
547
+ T.any(
548
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag,
549
+ PostForMe::Internal::AnyHash
550
+ )
551
+ end
552
+
553
+ # Facebook User ID, Instagram Username or Instagram product id to tag
554
+ sig { returns(String) }
555
+ attr_accessor :id
556
+
557
+ # The platform for the tags
558
+ sig do
559
+ returns(
560
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::OrSymbol
561
+ )
562
+ end
563
+ attr_accessor :platform
564
+
565
+ # The type of tag, user to tag accounts, product to tag products (only supported
566
+ # for instagram)
567
+ sig do
568
+ returns(
569
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Type::OrSymbol
570
+ )
571
+ end
572
+ attr_accessor :type
573
+
574
+ # Percentage distance from left edge of the image, Not required for videos or
575
+ # stories
576
+ sig { returns(T.nilable(Float)) }
577
+ attr_reader :x
578
+
579
+ sig { params(x: Float).void }
580
+ attr_writer :x
581
+
582
+ # Percentage distance from top edge of the image, Not required for videos or
583
+ # stories
584
+ sig { returns(T.nilable(Float)) }
585
+ attr_reader :y_
586
+
587
+ sig { params(y_: Float).void }
588
+ attr_writer :y_
589
+
590
+ sig do
591
+ params(
592
+ id: String,
593
+ platform:
594
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::OrSymbol,
595
+ type:
596
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Type::OrSymbol,
597
+ x: Float,
598
+ y_: Float
599
+ ).returns(T.attached_class)
600
+ end
601
+ def self.new(
602
+ # Facebook User ID, Instagram Username or Instagram product id to tag
603
+ id:,
604
+ # The platform for the tags
605
+ platform:,
606
+ # The type of tag, user to tag accounts, product to tag products (only supported
607
+ # for instagram)
608
+ type:,
609
+ # Percentage distance from left edge of the image, Not required for videos or
610
+ # stories
611
+ x: nil,
612
+ # Percentage distance from top edge of the image, Not required for videos or
613
+ # stories
614
+ y_: nil
615
+ )
616
+ end
617
+
618
+ sig do
619
+ override.returns(
620
+ {
621
+ id: String,
622
+ platform:
623
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::OrSymbol,
624
+ type:
625
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Type::OrSymbol,
626
+ x: Float,
627
+ y_: Float
628
+ }
629
+ )
630
+ end
631
+ def to_hash
632
+ end
633
+
634
+ # The platform for the tags
635
+ module Platform
636
+ extend PostForMe::Internal::Type::Enum
637
+
638
+ TaggedSymbol =
639
+ T.type_alias do
640
+ T.all(
641
+ Symbol,
642
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Platform
643
+ )
644
+ end
645
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
646
+
647
+ FACEBOOK =
648
+ T.let(
649
+ :facebook,
650
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol
651
+ )
652
+ INSTAGRAM =
653
+ T.let(
654
+ :instagram,
655
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol
656
+ )
657
+
658
+ sig do
659
+ override.returns(
660
+ T::Array[
661
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol
662
+ ]
663
+ )
664
+ end
665
+ def self.values
666
+ end
667
+ end
668
+
669
+ # The type of tag, user to tag accounts, product to tag products (only supported
670
+ # for instagram)
671
+ module Type
672
+ extend PostForMe::Internal::Type::Enum
673
+
674
+ TaggedSymbol =
675
+ T.type_alias do
676
+ T.all(
677
+ Symbol,
678
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Type
679
+ )
680
+ end
681
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
682
+
683
+ USER =
684
+ T.let(
685
+ :user,
686
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol
687
+ )
688
+ PRODUCT =
689
+ T.let(
690
+ :product,
691
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol
692
+ )
693
+
694
+ sig do
695
+ override.returns(
696
+ T::Array[
697
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol
698
+ ]
699
+ )
700
+ end
701
+ def self.values
702
+ end
703
+ end
704
+ end
705
+ end
706
+
428
707
  # Post placement for Facebook/Instagram/Threads
429
708
  module Placement
430
709
  extend PostForMe::Internal::Type::Enum
@@ -578,6 +857,47 @@ module PostForMe
578
857
  end
579
858
  end
580
859
 
860
+ # Sets the privacy status for TikTok (private, public), or YouTube (private,
861
+ # public, unlisted)
862
+ module PrivacyStatus
863
+ extend PostForMe::Internal::Type::Enum
864
+
865
+ TaggedSymbol =
866
+ T.type_alias do
867
+ T.all(
868
+ Symbol,
869
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus
870
+ )
871
+ end
872
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
873
+
874
+ PUBLIC =
875
+ T.let(
876
+ :public,
877
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
878
+ )
879
+ PRIVATE =
880
+ T.let(
881
+ :private,
882
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
883
+ )
884
+ UNLISTED =
885
+ T.let(
886
+ :unlisted,
887
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
888
+ )
889
+
890
+ sig do
891
+ override.returns(
892
+ T::Array[
893
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
894
+ ]
895
+ )
896
+ end
897
+ def self.values
898
+ end
899
+ end
900
+
581
901
  # Who can reply to the tweet
582
902
  module ReplySettings
583
903
  extend PostForMe::Internal::Type::Enum