publishport-opencli 1.8.5-pp.3 → 1.8.5-pp.4

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 (43) hide show
  1. package/cli-manifest.json +195 -1052
  2. package/clis/devto/auth.js +48 -44
  3. package/clis/devto/publish.js +70 -34
  4. package/clis/devto/publish.test.js +76 -78
  5. package/clis/hashnode/auth.js +62 -66
  6. package/clis/hashnode/publish.js +250 -52
  7. package/clis/qiita/auth.js +38 -38
  8. package/clis/qiita/gql.js +99 -0
  9. package/clis/qiita/publish.js +121 -38
  10. package/clis/qiita/publish.test.js +137 -52
  11. package/clis/tumblr/auth.js +68 -86
  12. package/clis/tumblr/publish.js +175 -33
  13. package/clis/tumblr/publish.test.js +129 -86
  14. package/dist/src/browser/daemon-lifecycle.js +8 -1
  15. package/dist/src/package-exports.test.js +3 -3
  16. package/package.json +1 -3
  17. package/clis/bluesky/auth.js +0 -64
  18. package/clis/bluesky/feeds.js +0 -28
  19. package/clis/bluesky/followers.js +0 -28
  20. package/clis/bluesky/following.js +0 -28
  21. package/clis/bluesky/post.js +0 -92
  22. package/clis/bluesky/post.test.js +0 -111
  23. package/clis/bluesky/profile.js +0 -30
  24. package/clis/bluesky/search.js +0 -29
  25. package/clis/bluesky/starter-packs.js +0 -29
  26. package/clis/bluesky/thread.js +0 -31
  27. package/clis/bluesky/trending.js +0 -20
  28. package/clis/bluesky/user.js +0 -35
  29. package/clis/farcaster/auth.js +0 -57
  30. package/clis/farcaster/post.js +0 -62
  31. package/clis/farcaster/post.test.js +0 -83
  32. package/clis/mastodon/auth.js +0 -56
  33. package/clis/mastodon/post.js +0 -95
  34. package/clis/mastodon/post.test.js +0 -98
  35. package/clis/nostr/auth.js +0 -57
  36. package/clis/nostr/post.js +0 -73
  37. package/clis/nostr/post.test.js +0 -95
  38. package/clis/telegram/auth.js +0 -48
  39. package/clis/telegram/post.js +0 -96
  40. package/clis/telegram/post.test.js +0 -87
  41. package/clis/threads/auth.js +0 -74
  42. package/clis/threads/publish.js +0 -83
  43. package/clis/threads/publish.test.js +0 -111
package/cli-manifest.json CHANGED
@@ -5548,396 +5548,6 @@
5548
5548
  "modulePath": "bloomberg/tech.js",
5549
5549
  "sourceFile": "bloomberg/tech.js"
5550
5550
  },
5551
- {
5552
- "site": "bluesky",
5553
- "name": "feeds",
5554
- "description": "Popular Bluesky feed generators",
5555
- "access": "read",
5556
- "domain": "public.api.bsky.app",
5557
- "strategy": "public",
5558
- "browser": false,
5559
- "args": [
5560
- {
5561
- "name": "limit",
5562
- "type": "int",
5563
- "default": 20,
5564
- "required": false,
5565
- "help": "Number of feeds"
5566
- }
5567
- ],
5568
- "columns": [
5569
- "rank",
5570
- "name",
5571
- "likes",
5572
- "creator",
5573
- "description"
5574
- ],
5575
- "type": "js",
5576
- "modulePath": "bluesky/feeds.js",
5577
- "sourceFile": "bluesky/feeds.js"
5578
- },
5579
- {
5580
- "site": "bluesky",
5581
- "name": "followers",
5582
- "description": "List followers of a Bluesky user",
5583
- "access": "read",
5584
- "domain": "public.api.bsky.app",
5585
- "strategy": "public",
5586
- "browser": false,
5587
- "args": [
5588
- {
5589
- "name": "handle",
5590
- "type": "str",
5591
- "required": true,
5592
- "positional": true,
5593
- "help": "Bluesky handle"
5594
- },
5595
- {
5596
- "name": "limit",
5597
- "type": "int",
5598
- "default": 20,
5599
- "required": false,
5600
- "help": "Number of followers"
5601
- }
5602
- ],
5603
- "columns": [
5604
- "rank",
5605
- "handle",
5606
- "name",
5607
- "description"
5608
- ],
5609
- "type": "js",
5610
- "modulePath": "bluesky/followers.js",
5611
- "sourceFile": "bluesky/followers.js"
5612
- },
5613
- {
5614
- "site": "bluesky",
5615
- "name": "following",
5616
- "description": "List accounts a Bluesky user is following",
5617
- "access": "read",
5618
- "domain": "public.api.bsky.app",
5619
- "strategy": "public",
5620
- "browser": false,
5621
- "args": [
5622
- {
5623
- "name": "handle",
5624
- "type": "str",
5625
- "required": true,
5626
- "positional": true,
5627
- "help": "Bluesky handle"
5628
- },
5629
- {
5630
- "name": "limit",
5631
- "type": "int",
5632
- "default": 20,
5633
- "required": false,
5634
- "help": "Number of accounts"
5635
- }
5636
- ],
5637
- "columns": [
5638
- "rank",
5639
- "handle",
5640
- "name",
5641
- "description"
5642
- ],
5643
- "type": "js",
5644
- "modulePath": "bluesky/following.js",
5645
- "sourceFile": "bluesky/following.js"
5646
- },
5647
- {
5648
- "site": "bluesky",
5649
- "name": "login",
5650
- "description": "Configure Bluesky with a handle + app password (no browser).",
5651
- "access": "write",
5652
- "domain": "bsky.app",
5653
- "strategy": "local",
5654
- "browser": false,
5655
- "args": [
5656
- {
5657
- "name": "identifier",
5658
- "type": "string",
5659
- "required": false,
5660
- "help": "Bluesky handle or email (e.g. alice.bsky.social)"
5661
- },
5662
- {
5663
- "name": "password",
5664
- "type": "string",
5665
- "required": false,
5666
- "help": "App password from Settings → App Passwords (NOT your main password)"
5667
- },
5668
- {
5669
- "name": "service",
5670
- "type": "string",
5671
- "default": "https://bsky.social",
5672
- "required": false,
5673
- "help": "PDS service URL (default https://bsky.social)"
5674
- }
5675
- ],
5676
- "columns": [
5677
- "status",
5678
- "logged_in",
5679
- "site",
5680
- "did",
5681
- "handle"
5682
- ],
5683
- "type": "js",
5684
- "modulePath": "bluesky/auth.js",
5685
- "sourceFile": "bluesky/auth.js"
5686
- },
5687
- {
5688
- "site": "bluesky",
5689
- "name": "post",
5690
- "description": "Publish a Bluesky post (text + optional images)",
5691
- "access": "write",
5692
- "domain": "bsky.app",
5693
- "strategy": "local",
5694
- "browser": false,
5695
- "args": [
5696
- {
5697
- "name": "text",
5698
- "type": "string",
5699
- "required": true,
5700
- "positional": true,
5701
- "help": "Post text (≤300 graphemes)"
5702
- },
5703
- {
5704
- "name": "images",
5705
- "type": "string",
5706
- "required": false,
5707
- "help": "Image paths, comma-separated, max 4 (jpg/png/gif/webp)"
5708
- },
5709
- {
5710
- "name": "alt",
5711
- "type": "string",
5712
- "required": false,
5713
- "help": "Alt text applied to all images (accessibility)"
5714
- }
5715
- ],
5716
- "columns": [
5717
- "status",
5718
- "uri",
5719
- "cid",
5720
- "url"
5721
- ],
5722
- "type": "js",
5723
- "modulePath": "bluesky/post.js",
5724
- "sourceFile": "bluesky/post.js"
5725
- },
5726
- {
5727
- "site": "bluesky",
5728
- "name": "profile",
5729
- "description": "Get Bluesky user profile info",
5730
- "access": "read",
5731
- "domain": "public.api.bsky.app",
5732
- "strategy": "public",
5733
- "browser": false,
5734
- "args": [
5735
- {
5736
- "name": "handle",
5737
- "type": "str",
5738
- "required": true,
5739
- "positional": true,
5740
- "help": "Bluesky handle (e.g. bsky.app, jay.bsky.team)"
5741
- }
5742
- ],
5743
- "columns": [
5744
- "handle",
5745
- "name",
5746
- "followers",
5747
- "following",
5748
- "posts",
5749
- "description"
5750
- ],
5751
- "type": "js",
5752
- "modulePath": "bluesky/profile.js",
5753
- "sourceFile": "bluesky/profile.js"
5754
- },
5755
- {
5756
- "site": "bluesky",
5757
- "name": "search",
5758
- "description": "Search Bluesky users",
5759
- "access": "read",
5760
- "domain": "public.api.bsky.app",
5761
- "strategy": "public",
5762
- "browser": false,
5763
- "args": [
5764
- {
5765
- "name": "query",
5766
- "type": "str",
5767
- "required": true,
5768
- "positional": true,
5769
- "help": "Search query"
5770
- },
5771
- {
5772
- "name": "limit",
5773
- "type": "int",
5774
- "default": 10,
5775
- "required": false,
5776
- "help": "Number of results"
5777
- }
5778
- ],
5779
- "columns": [
5780
- "rank",
5781
- "handle",
5782
- "name",
5783
- "followers",
5784
- "description"
5785
- ],
5786
- "type": "js",
5787
- "modulePath": "bluesky/search.js",
5788
- "sourceFile": "bluesky/search.js"
5789
- },
5790
- {
5791
- "site": "bluesky",
5792
- "name": "starter-packs",
5793
- "description": "Get starter packs created by a Bluesky user",
5794
- "access": "read",
5795
- "domain": "public.api.bsky.app",
5796
- "strategy": "public",
5797
- "browser": false,
5798
- "args": [
5799
- {
5800
- "name": "handle",
5801
- "type": "str",
5802
- "required": true,
5803
- "positional": true,
5804
- "help": "Bluesky handle"
5805
- },
5806
- {
5807
- "name": "limit",
5808
- "type": "int",
5809
- "default": 10,
5810
- "required": false,
5811
- "help": "Number of starter packs"
5812
- }
5813
- ],
5814
- "columns": [
5815
- "rank",
5816
- "name",
5817
- "description",
5818
- "members",
5819
- "joins"
5820
- ],
5821
- "type": "js",
5822
- "modulePath": "bluesky/starter-packs.js",
5823
- "sourceFile": "bluesky/starter-packs.js"
5824
- },
5825
- {
5826
- "site": "bluesky",
5827
- "name": "thread",
5828
- "description": "Get a Bluesky post thread with replies",
5829
- "access": "read",
5830
- "domain": "public.api.bsky.app",
5831
- "strategy": "public",
5832
- "browser": false,
5833
- "args": [
5834
- {
5835
- "name": "uri",
5836
- "type": "str",
5837
- "required": true,
5838
- "positional": true,
5839
- "help": "Post AT URI (at://did:.../app.bsky.feed.post/...) or bsky.app URL"
5840
- },
5841
- {
5842
- "name": "limit",
5843
- "type": "int",
5844
- "default": 20,
5845
- "required": false,
5846
- "help": "Number of replies"
5847
- }
5848
- ],
5849
- "columns": [
5850
- "author",
5851
- "text",
5852
- "likes",
5853
- "reposts",
5854
- "replies_count"
5855
- ],
5856
- "type": "js",
5857
- "modulePath": "bluesky/thread.js",
5858
- "sourceFile": "bluesky/thread.js"
5859
- },
5860
- {
5861
- "site": "bluesky",
5862
- "name": "trending",
5863
- "description": "Trending topics on Bluesky",
5864
- "access": "read",
5865
- "domain": "public.api.bsky.app",
5866
- "strategy": "public",
5867
- "browser": false,
5868
- "args": [
5869
- {
5870
- "name": "limit",
5871
- "type": "int",
5872
- "default": 20,
5873
- "required": false,
5874
- "help": "Number of topics"
5875
- }
5876
- ],
5877
- "columns": [
5878
- "rank",
5879
- "topic",
5880
- "link"
5881
- ],
5882
- "type": "js",
5883
- "modulePath": "bluesky/trending.js",
5884
- "sourceFile": "bluesky/trending.js"
5885
- },
5886
- {
5887
- "site": "bluesky",
5888
- "name": "user",
5889
- "description": "Get recent posts from a Bluesky user",
5890
- "access": "read",
5891
- "domain": "public.api.bsky.app",
5892
- "strategy": "public",
5893
- "browser": false,
5894
- "args": [
5895
- {
5896
- "name": "handle",
5897
- "type": "str",
5898
- "required": true,
5899
- "positional": true,
5900
- "help": "Bluesky handle (e.g. bsky.app)"
5901
- },
5902
- {
5903
- "name": "limit",
5904
- "type": "int",
5905
- "default": 20,
5906
- "required": false,
5907
- "help": "Number of posts"
5908
- }
5909
- ],
5910
- "columns": [
5911
- "rank",
5912
- "uri",
5913
- "text",
5914
- "likes",
5915
- "reposts",
5916
- "replies"
5917
- ],
5918
- "type": "js",
5919
- "modulePath": "bluesky/user.js",
5920
- "sourceFile": "bluesky/user.js"
5921
- },
5922
- {
5923
- "site": "bluesky",
5924
- "name": "whoami",
5925
- "description": "Show the configured bluesky account",
5926
- "access": "read",
5927
- "domain": "bsky.app",
5928
- "strategy": "local",
5929
- "browser": false,
5930
- "args": [],
5931
- "columns": [
5932
- "logged_in",
5933
- "site",
5934
- "did",
5935
- "handle"
5936
- ],
5937
- "type": "js",
5938
- "modulePath": "bluesky/auth.js",
5939
- "sourceFile": "bluesky/auth.js"
5940
- },
5941
5551
  {
5942
5552
  "site": "booking",
5943
5553
  "name": "search",
@@ -10918,30 +10528,34 @@
10918
10528
  {
10919
10529
  "site": "devto",
10920
10530
  "name": "login",
10921
- "description": "Configure DEV.to with an API key (no browser).",
10531
+ "description": "打开 dev.to 登录页并等待浏览器完成登录(供桌面客户端引导登录)。",
10922
10532
  "access": "write",
10923
10533
  "domain": "dev.to",
10924
- "strategy": "local",
10925
- "browser": false,
10534
+ "strategy": "cookie",
10535
+ "browser": true,
10926
10536
  "args": [
10927
10537
  {
10928
- "name": "api_key",
10929
- "type": "string",
10538
+ "name": "timeout",
10539
+ "type": "int",
10540
+ "default": 300,
10930
10541
  "required": false,
10931
- "help": "DEV.to API key (Settings Extensions DEV Community API Keys)"
10542
+ "help": "Maximum seconds to wait for the user to finish login"
10932
10543
  }
10933
10544
  ],
10934
10545
  "columns": [
10935
10546
  "status",
10936
10547
  "logged_in",
10937
10548
  "site",
10938
- "id",
10549
+ "user_id",
10939
10550
  "username",
10940
10551
  "name"
10941
10552
  ],
10942
10553
  "type": "js",
10943
10554
  "modulePath": "devto/auth.js",
10944
- "sourceFile": "devto/auth.js"
10555
+ "sourceFile": "devto/auth.js",
10556
+ "navigateBefore": false,
10557
+ "siteSession": "persistent",
10558
+ "defaultWindowMode": "foreground"
10945
10559
  },
10946
10560
  {
10947
10561
  "site": "devto",
@@ -10949,8 +10563,8 @@
10949
10563
  "description": "Publish or update a DEV.to article (markdown). Draft by default; pass --published to go live.",
10950
10564
  "access": "write",
10951
10565
  "domain": "dev.to",
10952
- "strategy": "local",
10953
- "browser": false,
10566
+ "strategy": "cookie",
10567
+ "browser": true,
10954
10568
  "args": [
10955
10569
  {
10956
10570
  "name": "title",
@@ -11007,12 +10621,6 @@
11007
10621
  "required": false,
11008
10622
  "help": "Social/SEO description"
11009
10623
  },
11010
- {
11011
- "name": "organization-id",
11012
- "type": "int",
11013
- "required": false,
11014
- "help": "Publish under an organization id"
11015
- },
11016
10624
  {
11017
10625
  "name": "id",
11018
10626
  "type": "string",
@@ -11029,7 +10637,8 @@
11029
10637
  ],
11030
10638
  "type": "js",
11031
10639
  "modulePath": "devto/publish.js",
11032
- "sourceFile": "devto/publish.js"
10640
+ "sourceFile": "devto/publish.js",
10641
+ "navigateBefore": "https://dev.to"
11033
10642
  },
11034
10643
  {
11035
10644
  "site": "devto",
@@ -11185,22 +10794,24 @@
11185
10794
  {
11186
10795
  "site": "devto",
11187
10796
  "name": "whoami",
11188
- "description": "Show the configured devto account",
10797
+ "description": "Show the current logged-in devto account",
11189
10798
  "access": "read",
11190
10799
  "domain": "dev.to",
11191
- "strategy": "local",
11192
- "browser": false,
10800
+ "strategy": "cookie",
10801
+ "browser": true,
11193
10802
  "args": [],
11194
10803
  "columns": [
11195
10804
  "logged_in",
11196
10805
  "site",
11197
- "id",
10806
+ "user_id",
11198
10807
  "username",
11199
10808
  "name"
11200
10809
  ],
11201
10810
  "type": "js",
11202
10811
  "modulePath": "devto/auth.js",
11203
- "sourceFile": "devto/auth.js"
10812
+ "sourceFile": "devto/auth.js",
10813
+ "navigateBefore": false,
10814
+ "siteSession": "persistent"
11204
10815
  },
11205
10816
  {
11206
10817
  "site": "dianping",
@@ -14815,105 +14426,6 @@
14815
14426
  "navigateBefore": false,
14816
14427
  "siteSession": "persistent"
14817
14428
  },
14818
- {
14819
- "site": "farcaster",
14820
- "name": "login",
14821
- "description": "Configure a Farcaster FID + signer key (no browser). Validates the key locally.",
14822
- "access": "write",
14823
- "domain": "farcaster.xyz",
14824
- "strategy": "local",
14825
- "browser": false,
14826
- "args": [
14827
- {
14828
- "name": "fid",
14829
- "type": "string",
14830
- "required": false,
14831
- "help": "Your Farcaster FID (number)"
14832
- },
14833
- {
14834
- "name": "signer",
14835
- "type": "string",
14836
- "required": false,
14837
- "help": "ed25519 signer private key (64 hex chars) — must be registered for this FID"
14838
- },
14839
- {
14840
- "name": "hub",
14841
- "type": "string",
14842
- "default": "https://hub.pinata.cloud",
14843
- "required": false,
14844
- "help": "Hub HTTP API base URL (default https://hub.pinata.cloud)"
14845
- }
14846
- ],
14847
- "columns": [
14848
- "status",
14849
- "logged_in",
14850
- "site",
14851
- "fid",
14852
- "signer_pubkey",
14853
- "hub"
14854
- ],
14855
- "type": "js",
14856
- "modulePath": "farcaster/auth.js",
14857
- "sourceFile": "farcaster/auth.js"
14858
- },
14859
- {
14860
- "site": "farcaster",
14861
- "name": "post",
14862
- "description": "Publish a Farcaster cast (text + optional image/embed URLs)",
14863
- "access": "write",
14864
- "domain": "farcaster.xyz",
14865
- "strategy": "local",
14866
- "browser": false,
14867
- "args": [
14868
- {
14869
- "name": "text",
14870
- "type": "string",
14871
- "required": true,
14872
- "positional": true,
14873
- "help": "Cast text (≤320 bytes)"
14874
- },
14875
- {
14876
- "name": "embeds",
14877
- "type": "string",
14878
- "required": false,
14879
- "help": "Embed URLs (image/frame/link), comma-separated, max 2"
14880
- },
14881
- {
14882
- "name": "channel",
14883
- "type": "string",
14884
- "required": false,
14885
- "help": "Channel parent URL (e.g. https://warpcast.com/~/channel/dev)"
14886
- }
14887
- ],
14888
- "columns": [
14889
- "status",
14890
- "hash",
14891
- "url"
14892
- ],
14893
- "type": "js",
14894
- "modulePath": "farcaster/post.js",
14895
- "sourceFile": "farcaster/post.js"
14896
- },
14897
- {
14898
- "site": "farcaster",
14899
- "name": "whoami",
14900
- "description": "Show the configured farcaster account",
14901
- "access": "read",
14902
- "domain": "farcaster.xyz",
14903
- "strategy": "local",
14904
- "browser": false,
14905
- "args": [],
14906
- "columns": [
14907
- "logged_in",
14908
- "site",
14909
- "fid",
14910
- "signer_pubkey",
14911
- "hub"
14912
- ],
14913
- "type": "js",
14914
- "modulePath": "farcaster/auth.js",
14915
- "sourceFile": "farcaster/auth.js"
14916
- },
14917
14429
  {
14918
14430
  "site": "flathub",
14919
14431
  "name": "app",
@@ -17431,39 +16943,43 @@
17431
16943
  {
17432
16944
  "site": "hashnode",
17433
16945
  "name": "login",
17434
- "description": "Configure Hashnode with a Personal Access Token (no browser).",
16946
+ "description": "打开 Hashnode 登录页并等待浏览器完成登录(供桌面客户端引导登录)。",
17435
16947
  "access": "write",
17436
16948
  "domain": "hashnode.com",
17437
- "strategy": "local",
17438
- "browser": false,
16949
+ "strategy": "cookie",
16950
+ "browser": true,
17439
16951
  "args": [
17440
16952
  {
17441
- "name": "token",
17442
- "type": "string",
16953
+ "name": "timeout",
16954
+ "type": "int",
16955
+ "default": 300,
17443
16956
  "required": false,
17444
- "help": "Hashnode Personal Access Token (Settings Developer)"
16957
+ "help": "Maximum seconds to wait for the user to finish login"
17445
16958
  }
17446
16959
  ],
17447
16960
  "columns": [
17448
16961
  "status",
17449
16962
  "logged_in",
17450
16963
  "site",
17451
- "id",
16964
+ "user_id",
17452
16965
  "username",
17453
16966
  "name"
17454
16967
  ],
17455
16968
  "type": "js",
17456
16969
  "modulePath": "hashnode/auth.js",
17457
- "sourceFile": "hashnode/auth.js"
16970
+ "sourceFile": "hashnode/auth.js",
16971
+ "navigateBefore": false,
16972
+ "siteSession": "persistent",
16973
+ "defaultWindowMode": "foreground"
17458
16974
  },
17459
16975
  {
17460
16976
  "site": "hashnode",
17461
16977
  "name": "publish",
17462
- "description": "Publish a Hashnode post (or save a draft with --draft). Markdown body + cover/tags/canonical.",
16978
+ "description": "Publish a Hashnode post via the web editor (or save a draft with --draft). Markdown body + tags/cover/canonical.",
17463
16979
  "access": "write",
17464
16980
  "domain": "hashnode.com",
17465
- "strategy": "local",
17466
- "browser": false,
16981
+ "strategy": "cookie",
16982
+ "browser": true,
17467
16983
  "args": [
17468
16984
  {
17469
16985
  "name": "title",
@@ -17483,23 +16999,11 @@
17483
16999
  "required": false,
17484
17000
  "help": "Path to a Markdown file for the body"
17485
17001
  },
17486
- {
17487
- "name": "publication-id",
17488
- "type": "string",
17489
- "required": false,
17490
- "help": "Target publication id (else resolved automatically)"
17491
- },
17492
- {
17493
- "name": "publication-host",
17494
- "type": "string",
17495
- "required": false,
17496
- "help": "Resolve publication id by host (e.g. blog.example.com)"
17497
- },
17498
17002
  {
17499
17003
  "name": "tags",
17500
17004
  "type": "string",
17501
17005
  "required": false,
17502
- "help": "Comma-separated tag names (slug auto-derived)"
17006
+ "help": "Comma-separated tag names"
17503
17007
  },
17504
17008
  {
17505
17009
  "name": "cover-image",
@@ -17513,24 +17017,6 @@
17513
17017
  "required": false,
17514
17018
  "help": "Canonical / original article URL"
17515
17019
  },
17516
- {
17517
- "name": "subtitle",
17518
- "type": "string",
17519
- "required": false,
17520
- "help": "Subtitle"
17521
- },
17522
- {
17523
- "name": "series-id",
17524
- "type": "string",
17525
- "required": false,
17526
- "help": "Series id to add the post to"
17527
- },
17528
- {
17529
- "name": "slug",
17530
- "type": "string",
17531
- "required": false,
17532
- "help": "Custom slug"
17533
- },
17534
17020
  {
17535
17021
  "name": "draft",
17536
17022
  "type": "boolean",
@@ -17541,33 +17027,37 @@
17541
17027
  ],
17542
17028
  "columns": [
17543
17029
  "status",
17544
- "id",
17545
- "slug",
17030
+ "draft_id",
17546
17031
  "url"
17547
17032
  ],
17548
17033
  "type": "js",
17549
17034
  "modulePath": "hashnode/publish.js",
17550
- "sourceFile": "hashnode/publish.js"
17035
+ "sourceFile": "hashnode/publish.js",
17036
+ "navigateBefore": "https://hashnode.com",
17037
+ "siteSession": "persistent",
17038
+ "defaultWindowMode": "foreground"
17551
17039
  },
17552
17040
  {
17553
17041
  "site": "hashnode",
17554
17042
  "name": "whoami",
17555
- "description": "Show the configured hashnode account",
17043
+ "description": "Show the current logged-in hashnode account",
17556
17044
  "access": "read",
17557
17045
  "domain": "hashnode.com",
17558
- "strategy": "local",
17559
- "browser": false,
17046
+ "strategy": "cookie",
17047
+ "browser": true,
17560
17048
  "args": [],
17561
17049
  "columns": [
17562
17050
  "logged_in",
17563
17051
  "site",
17564
- "id",
17052
+ "user_id",
17565
17053
  "username",
17566
17054
  "name"
17567
17055
  ],
17568
17056
  "type": "js",
17569
17057
  "modulePath": "hashnode/auth.js",
17570
- "sourceFile": "hashnode/auth.js"
17058
+ "sourceFile": "hashnode/auth.js",
17059
+ "navigateBefore": false,
17060
+ "siteSession": "persistent"
17571
17061
  },
17572
17062
  {
17573
17063
  "site": "hf",
@@ -25063,125 +24553,6 @@
25063
24553
  "navigateBefore": false,
25064
24554
  "siteSession": "persistent"
25065
24555
  },
25066
- {
25067
- "site": "mastodon",
25068
- "name": "login",
25069
- "description": "Configure a Mastodon instance + access token (no browser).",
25070
- "access": "write",
25071
- "domain": "joinmastodon.org",
25072
- "strategy": "local",
25073
- "browser": false,
25074
- "args": [
25075
- {
25076
- "name": "instance",
25077
- "type": "string",
25078
- "required": false,
25079
- "help": "Instance URL, e.g. https://mastodon.social"
25080
- },
25081
- {
25082
- "name": "token",
25083
- "type": "string",
25084
- "required": false,
25085
- "help": "Access token (Settings → Development; needs write:statuses, write:media)"
25086
- }
25087
- ],
25088
- "columns": [
25089
- "status",
25090
- "logged_in",
25091
- "site",
25092
- "id",
25093
- "username",
25094
- "acct",
25095
- "instance"
25096
- ],
25097
- "type": "js",
25098
- "modulePath": "mastodon/auth.js",
25099
- "sourceFile": "mastodon/auth.js"
25100
- },
25101
- {
25102
- "site": "mastodon",
25103
- "name": "post",
25104
- "description": "Publish a Mastodon status (text + optional media)",
25105
- "access": "write",
25106
- "domain": "joinmastodon.org",
25107
- "strategy": "local",
25108
- "browser": false,
25109
- "args": [
25110
- {
25111
- "name": "text",
25112
- "type": "string",
25113
- "required": true,
25114
- "positional": true,
25115
- "help": "Status text"
25116
- },
25117
- {
25118
- "name": "media",
25119
- "type": "string",
25120
- "required": false,
25121
- "help": "Media paths, comma-separated, max 4 (images/video)"
25122
- },
25123
- {
25124
- "name": "alt",
25125
- "type": "string",
25126
- "required": false,
25127
- "help": "Alt text / description applied to all media"
25128
- },
25129
- {
25130
- "name": "visibility",
25131
- "type": "string",
25132
- "default": "public",
25133
- "required": false,
25134
- "help": "public | unlisted | private | direct",
25135
- "choices": [
25136
- "public",
25137
- "unlisted",
25138
- "private",
25139
- "direct"
25140
- ]
25141
- },
25142
- {
25143
- "name": "sensitive",
25144
- "type": "boolean",
25145
- "required": false,
25146
- "help": "Mark media as sensitive"
25147
- },
25148
- {
25149
- "name": "spoiler",
25150
- "type": "string",
25151
- "required": false,
25152
- "help": "Content warning / spoiler text"
25153
- }
25154
- ],
25155
- "columns": [
25156
- "status",
25157
- "id",
25158
- "url"
25159
- ],
25160
- "type": "js",
25161
- "modulePath": "mastodon/post.js",
25162
- "sourceFile": "mastodon/post.js"
25163
- },
25164
- {
25165
- "site": "mastodon",
25166
- "name": "whoami",
25167
- "description": "Show the configured mastodon account",
25168
- "access": "read",
25169
- "domain": "joinmastodon.org",
25170
- "strategy": "local",
25171
- "browser": false,
25172
- "args": [],
25173
- "columns": [
25174
- "logged_in",
25175
- "site",
25176
- "id",
25177
- "username",
25178
- "acct",
25179
- "instance"
25180
- ],
25181
- "type": "js",
25182
- "modulePath": "mastodon/auth.js",
25183
- "sourceFile": "mastodon/auth.js"
25184
- },
25185
24556
  {
25186
24557
  "site": "maven",
25187
24558
  "name": "artifact",
@@ -25654,100 +25025,6 @@
25654
25025
  "sourceFile": "mubu/search.js",
25655
25026
  "navigateBefore": "https://mubu.com"
25656
25027
  },
25657
- {
25658
- "site": "nostr",
25659
- "name": "login",
25660
- "description": "Configure a Nostr nsec + relay list (no browser). Validates the key locally.",
25661
- "access": "write",
25662
- "domain": "nostr.com",
25663
- "strategy": "local",
25664
- "browser": false,
25665
- "args": [
25666
- {
25667
- "name": "nsec",
25668
- "type": "string",
25669
- "required": false,
25670
- "help": "Secret key in nsec bech32 form (NOT your hex key in plaintext logs)"
25671
- },
25672
- {
25673
- "name": "relays",
25674
- "type": "string",
25675
- "required": false,
25676
- "help": "Relay URLs, comma-separated, e.g. wss://relay.damus.io,wss://nos.lol"
25677
- }
25678
- ],
25679
- "columns": [
25680
- "status",
25681
- "logged_in",
25682
- "site",
25683
- "npub",
25684
- "pubkey",
25685
- "relays"
25686
- ],
25687
- "type": "js",
25688
- "modulePath": "nostr/auth.js",
25689
- "sourceFile": "nostr/auth.js"
25690
- },
25691
- {
25692
- "site": "nostr",
25693
- "name": "post",
25694
- "description": "Publish a Nostr note (kind 1) to your relays (text + optional image URLs)",
25695
- "access": "write",
25696
- "domain": "nostr.com",
25697
- "strategy": "local",
25698
- "browser": false,
25699
- "args": [
25700
- {
25701
- "name": "text",
25702
- "type": "string",
25703
- "required": true,
25704
- "positional": true,
25705
- "help": "Note content"
25706
- },
25707
- {
25708
- "name": "image-url",
25709
- "type": "string",
25710
- "required": false,
25711
- "help": "External image URL(s), comma-separated (appended; clients embed them)"
25712
- },
25713
- {
25714
- "name": "relays",
25715
- "type": "string",
25716
- "required": false,
25717
- "help": "Override configured relays for this post (comma-separated wss://)"
25718
- }
25719
- ],
25720
- "columns": [
25721
- "status",
25722
- "id",
25723
- "note",
25724
- "relays_ok",
25725
- "relays_total"
25726
- ],
25727
- "type": "js",
25728
- "modulePath": "nostr/post.js",
25729
- "sourceFile": "nostr/post.js"
25730
- },
25731
- {
25732
- "site": "nostr",
25733
- "name": "whoami",
25734
- "description": "Show the configured nostr account",
25735
- "access": "read",
25736
- "domain": "nostr.com",
25737
- "strategy": "local",
25738
- "browser": false,
25739
- "args": [],
25740
- "columns": [
25741
- "logged_in",
25742
- "site",
25743
- "npub",
25744
- "pubkey",
25745
- "relays"
25746
- ],
25747
- "type": "js",
25748
- "modulePath": "nostr/auth.js",
25749
- "sourceFile": "nostr/auth.js"
25750
- },
25751
25028
  {
25752
25029
  "site": "note",
25753
25030
  "name": "login",
@@ -29845,51 +29122,81 @@
29845
29122
  },
29846
29123
  {
29847
29124
  "site": "qiita",
29848
- "name": "login",
29849
- "description": "Configure Qiita with a personal access token (no browser).",
29125
+ "name": "delete",
29126
+ "description": "Delete a Qiita article or draft by its URL (article linkUrl, or https://qiita.com/drafts/<uuid>).",
29850
29127
  "access": "write",
29851
29128
  "domain": "qiita.com",
29852
- "strategy": "local",
29853
- "browser": false,
29129
+ "strategy": "cookie",
29130
+ "browser": true,
29854
29131
  "args": [
29855
29132
  {
29856
- "name": "token",
29133
+ "name": "url",
29857
29134
  "type": "string",
29858
29135
  "required": false,
29859
- "help": "Qiita personal access token (needs write_qiita scope)"
29136
+ "help": "Article URL (e.g. https://qiita.com/<urlName>/items/<uuid>) or draft URL (https://qiita.com/drafts/<uuid>)"
29137
+ }
29138
+ ],
29139
+ "columns": [
29140
+ "status",
29141
+ "url"
29142
+ ],
29143
+ "type": "js",
29144
+ "modulePath": "qiita/publish.js",
29145
+ "sourceFile": "qiita/publish.js",
29146
+ "navigateBefore": "https://qiita.com"
29147
+ },
29148
+ {
29149
+ "site": "qiita",
29150
+ "name": "login",
29151
+ "description": "打开 Qiita 登录页并等待浏览器完成登录(供桌面客户端引导登录)。",
29152
+ "access": "write",
29153
+ "domain": "qiita.com",
29154
+ "strategy": "cookie",
29155
+ "browser": true,
29156
+ "args": [
29157
+ {
29158
+ "name": "timeout",
29159
+ "type": "int",
29160
+ "default": 300,
29161
+ "required": false,
29162
+ "help": "Maximum seconds to wait for the user to finish login"
29860
29163
  }
29861
29164
  ],
29862
29165
  "columns": [
29863
29166
  "status",
29864
29167
  "logged_in",
29865
29168
  "site",
29866
- "id",
29867
- "name"
29169
+ "url_name",
29170
+ "name",
29171
+ "user_id"
29868
29172
  ],
29869
29173
  "type": "js",
29870
29174
  "modulePath": "qiita/auth.js",
29871
- "sourceFile": "qiita/auth.js"
29175
+ "sourceFile": "qiita/auth.js",
29176
+ "navigateBefore": false,
29177
+ "siteSession": "persistent",
29178
+ "defaultWindowMode": "foreground"
29872
29179
  },
29873
29180
  {
29874
29181
  "site": "qiita",
29875
29182
  "name": "publish",
29876
- "description": "Publish or update a Qiita item (markdown). Tags are required; public by default.",
29183
+ "description": "Publish a Qiita article (markdown). Tags required. Public by default; --draft or --secret to change.",
29877
29184
  "access": "write",
29878
29185
  "domain": "qiita.com",
29879
- "strategy": "local",
29880
- "browser": false,
29186
+ "strategy": "cookie",
29187
+ "browser": true,
29881
29188
  "args": [
29882
29189
  {
29883
29190
  "name": "title",
29884
29191
  "type": "string",
29885
29192
  "required": false,
29886
- "help": "Item title (required for new items)"
29193
+ "help": "Article title (required)"
29887
29194
  },
29888
29195
  {
29889
29196
  "name": "body",
29890
29197
  "type": "string",
29891
29198
  "required": false,
29892
- "help": "Item body in Markdown (or use --body-file)"
29199
+ "help": "Article body in Markdown (or use --body-file)"
29893
29200
  },
29894
29201
  {
29895
29202
  "name": "body-file",
@@ -29904,47 +29211,58 @@
29904
29211
  "help": "Comma-separated tags (REQUIRED, at least 1)"
29905
29212
  },
29906
29213
  {
29907
- "name": "private",
29214
+ "name": "draft",
29908
29215
  "type": "boolean",
29909
29216
  "default": false,
29910
29217
  "required": false,
29911
- "help": "Post as private (default: public)"
29218
+ "help": "Save as draft only (do not publish)"
29912
29219
  },
29913
29220
  {
29914
- "name": "id",
29915
- "type": "string",
29221
+ "name": "secret",
29222
+ "type": "boolean",
29223
+ "default": false,
29224
+ "required": false,
29225
+ "help": "Publish as limited-public (secret) instead of public"
29226
+ },
29227
+ {
29228
+ "name": "tweet-share",
29229
+ "type": "boolean",
29230
+ "default": false,
29916
29231
  "required": false,
29917
- "help": "Existing item id to update (PATCH instead of POST)"
29232
+ "help": "Also share to X/Twitter on publish (public only)"
29918
29233
  }
29919
29234
  ],
29920
29235
  "columns": [
29921
29236
  "status",
29922
- "id",
29923
- "url",
29924
- "private"
29237
+ "uuid",
29238
+ "url"
29925
29239
  ],
29926
29240
  "type": "js",
29927
29241
  "modulePath": "qiita/publish.js",
29928
- "sourceFile": "qiita/publish.js"
29242
+ "sourceFile": "qiita/publish.js",
29243
+ "navigateBefore": "https://qiita.com"
29929
29244
  },
29930
29245
  {
29931
29246
  "site": "qiita",
29932
29247
  "name": "whoami",
29933
- "description": "Show the configured qiita account",
29248
+ "description": "Show the current logged-in qiita account",
29934
29249
  "access": "read",
29935
29250
  "domain": "qiita.com",
29936
- "strategy": "local",
29937
- "browser": false,
29251
+ "strategy": "cookie",
29252
+ "browser": true,
29938
29253
  "args": [],
29939
29254
  "columns": [
29940
29255
  "logged_in",
29941
29256
  "site",
29942
- "id",
29943
- "name"
29257
+ "url_name",
29258
+ "name",
29259
+ "user_id"
29944
29260
  ],
29945
29261
  "type": "js",
29946
29262
  "modulePath": "qiita/auth.js",
29947
- "sourceFile": "qiita/auth.js"
29263
+ "sourceFile": "qiita/auth.js",
29264
+ "navigateBefore": false,
29265
+ "siteSession": "persistent"
29948
29266
  },
29949
29267
  {
29950
29268
  "site": "qoder",
@@ -36452,208 +35770,6 @@
36452
35770
  "sourceFile": "tdx/hot-rank.js",
36453
35771
  "navigateBefore": true
36454
35772
  },
36455
- {
36456
- "site": "telegram",
36457
- "name": "login",
36458
- "description": "Configure a Telegram bot token + target channel id (no browser).",
36459
- "access": "write",
36460
- "domain": "telegram.org",
36461
- "strategy": "local",
36462
- "browser": false,
36463
- "args": [
36464
- {
36465
- "name": "token",
36466
- "type": "string",
36467
- "required": false,
36468
- "help": "Bot token from @BotFather"
36469
- },
36470
- {
36471
- "name": "chat",
36472
- "type": "string",
36473
- "required": false,
36474
- "help": "Channel id: @channelusername or -100xxxxxxxxxx (bot must be an admin)"
36475
- }
36476
- ],
36477
- "columns": [
36478
- "status",
36479
- "logged_in",
36480
- "site",
36481
- "id",
36482
- "username",
36483
- "name",
36484
- "chat"
36485
- ],
36486
- "type": "js",
36487
- "modulePath": "telegram/auth.js",
36488
- "sourceFile": "telegram/auth.js"
36489
- },
36490
- {
36491
- "site": "telegram",
36492
- "name": "post",
36493
- "description": "Send a message to the configured Telegram channel (text + optional media)",
36494
- "access": "write",
36495
- "domain": "telegram.org",
36496
- "strategy": "local",
36497
- "browser": false,
36498
- "args": [
36499
- {
36500
- "name": "text",
36501
- "type": "string",
36502
- "required": true,
36503
- "positional": true,
36504
- "help": "Message text / media caption"
36505
- },
36506
- {
36507
- "name": "media",
36508
- "type": "string",
36509
- "required": false,
36510
- "help": "Media paths, comma-separated, max 10 (images/video)"
36511
- }
36512
- ],
36513
- "columns": [
36514
- "status",
36515
- "message_id",
36516
- "url"
36517
- ],
36518
- "type": "js",
36519
- "modulePath": "telegram/post.js",
36520
- "sourceFile": "telegram/post.js"
36521
- },
36522
- {
36523
- "site": "telegram",
36524
- "name": "whoami",
36525
- "description": "Show the configured telegram account",
36526
- "access": "read",
36527
- "domain": "telegram.org",
36528
- "strategy": "local",
36529
- "browser": false,
36530
- "args": [],
36531
- "columns": [
36532
- "logged_in",
36533
- "site",
36534
- "id",
36535
- "username",
36536
- "name",
36537
- "chat"
36538
- ],
36539
- "type": "js",
36540
- "modulePath": "telegram/auth.js",
36541
- "sourceFile": "telegram/auth.js"
36542
- },
36543
- {
36544
- "site": "threads",
36545
- "name": "login",
36546
- "description": "Configure Threads with a Meta long-lived access token (no browser).",
36547
- "access": "write",
36548
- "domain": "threads.net",
36549
- "strategy": "local",
36550
- "browser": false,
36551
- "args": [
36552
- {
36553
- "name": "token",
36554
- "type": "string",
36555
- "required": false,
36556
- "help": "Threads long-lived access token (Meta app)"
36557
- },
36558
- {
36559
- "name": "user_id",
36560
- "type": "string",
36561
- "required": false,
36562
- "help": "Threads user id (auto-resolved via /me if omitted)"
36563
- }
36564
- ],
36565
- "columns": [
36566
- "status",
36567
- "logged_in",
36568
- "site",
36569
- "id",
36570
- "username"
36571
- ],
36572
- "type": "js",
36573
- "modulePath": "threads/auth.js",
36574
- "sourceFile": "threads/auth.js"
36575
- },
36576
- {
36577
- "site": "threads",
36578
- "name": "post",
36579
- "description": "Publish a Threads post (text / single image / video / image carousel). Two-step container → publish.",
36580
- "access": "write",
36581
- "domain": "threads.net",
36582
- "strategy": "local",
36583
- "browser": false,
36584
- "args": [
36585
- {
36586
- "name": "text",
36587
- "type": "string",
36588
- "required": false,
36589
- "help": "Post text (required for TEXT; optional caption otherwise)"
36590
- },
36591
- {
36592
- "name": "image-url",
36593
- "type": "string",
36594
- "required": false,
36595
- "help": "Single public image URL (IMAGE post)"
36596
- },
36597
- {
36598
- "name": "video-url",
36599
- "type": "string",
36600
- "required": false,
36601
- "help": "Single public video URL (VIDEO post)"
36602
- },
36603
- {
36604
- "name": "images",
36605
- "type": "string",
36606
- "required": false,
36607
- "help": "Comma-separated image URLs for a carousel (2-20)"
36608
- },
36609
- {
36610
- "name": "alt-text",
36611
- "type": "string",
36612
- "required": false,
36613
- "help": "Accessibility alt text (single media)"
36614
- },
36615
- {
36616
- "name": "link-attachment",
36617
- "type": "string",
36618
- "required": false,
36619
- "help": "Link attachment URL (TEXT posts only)"
36620
- },
36621
- {
36622
- "name": "reply-to-id",
36623
- "type": "string",
36624
- "required": false,
36625
- "help": "Reply to an existing Threads media id"
36626
- }
36627
- ],
36628
- "columns": [
36629
- "status",
36630
- "id",
36631
- "creation_id",
36632
- "permalink"
36633
- ],
36634
- "type": "js",
36635
- "modulePath": "threads/publish.js",
36636
- "sourceFile": "threads/publish.js"
36637
- },
36638
- {
36639
- "site": "threads",
36640
- "name": "whoami",
36641
- "description": "Show the configured threads account",
36642
- "access": "read",
36643
- "domain": "threads.net",
36644
- "strategy": "local",
36645
- "browser": false,
36646
- "args": [],
36647
- "columns": [
36648
- "logged_in",
36649
- "site",
36650
- "id",
36651
- "username"
36652
- ],
36653
- "type": "js",
36654
- "modulePath": "threads/auth.js",
36655
- "sourceFile": "threads/auth.js"
36656
- },
36657
35773
  {
36658
35774
  "site": "ths",
36659
35775
  "name": "hot-rank",
@@ -38915,42 +38031,51 @@
38915
38031
  },
38916
38032
  {
38917
38033
  "site": "tumblr",
38918
- "name": "login",
38919
- "description": "Configure Tumblr with OAuth1 consumer + token credentials (no browser).",
38034
+ "name": "delete",
38035
+ "description": "Delete a Tumblr post by id (POST /v2/blog/{blog}/post/delete).",
38920
38036
  "access": "write",
38921
38037
  "domain": "tumblr.com",
38922
- "strategy": "local",
38923
- "browser": false,
38038
+ "strategy": "cookie",
38039
+ "browser": true,
38924
38040
  "args": [
38925
38041
  {
38926
- "name": "consumer_key",
38927
- "type": "string",
38928
- "required": false,
38929
- "help": "OAuth consumer key (from tumblr.com/oauth/apps)"
38930
- },
38931
- {
38932
- "name": "consumer_secret",
38933
- "type": "string",
38934
- "required": false,
38935
- "help": "OAuth consumer secret"
38936
- },
38937
- {
38938
- "name": "oauth_token",
38042
+ "name": "id",
38939
38043
  "type": "string",
38940
- "required": false,
38941
- "help": "OAuth access token"
38044
+ "required": true,
38045
+ "help": "Post id to delete"
38942
38046
  },
38943
38047
  {
38944
- "name": "oauth_token_secret",
38048
+ "name": "blog",
38945
38049
  "type": "string",
38946
38050
  "required": false,
38947
- "help": "OAuth access token secret"
38948
- },
38051
+ "help": "Target blog identifier (else your primary blog)"
38052
+ }
38053
+ ],
38054
+ "columns": [
38055
+ "status",
38056
+ "id",
38057
+ "blog"
38058
+ ],
38059
+ "type": "js",
38060
+ "modulePath": "tumblr/publish.js",
38061
+ "sourceFile": "tumblr/publish.js",
38062
+ "navigateBefore": "https://tumblr.com"
38063
+ },
38064
+ {
38065
+ "site": "tumblr",
38066
+ "name": "login",
38067
+ "description": "打开 Tumblr 登录页并等待浏览器完成登录(供桌面客户端引导登录)。",
38068
+ "access": "write",
38069
+ "domain": "tumblr.com",
38070
+ "strategy": "cookie",
38071
+ "browser": true,
38072
+ "args": [
38949
38073
  {
38950
- "name": "default_blog",
38951
- "type": "string",
38074
+ "name": "timeout",
38075
+ "type": "int",
38076
+ "default": 300,
38952
38077
  "required": false,
38953
- "help": "Default blog identifier for posting (else primary blog)"
38078
+ "help": "Maximum seconds to wait for the user to finish login"
38954
38079
  }
38955
38080
  ],
38956
38081
  "columns": [
@@ -38958,45 +38083,60 @@
38958
38083
  "logged_in",
38959
38084
  "site",
38960
38085
  "name",
38961
- "blogs",
38962
- "default_blog"
38086
+ "primary_blog",
38087
+ "blogs"
38963
38088
  ],
38964
38089
  "type": "js",
38965
38090
  "modulePath": "tumblr/auth.js",
38966
- "sourceFile": "tumblr/auth.js"
38091
+ "sourceFile": "tumblr/auth.js",
38092
+ "navigateBefore": false,
38093
+ "siteSession": "persistent",
38094
+ "defaultWindowMode": "foreground"
38967
38095
  },
38968
38096
  {
38969
38097
  "site": "tumblr",
38970
- "name": "post",
38971
- "description": "Create a Tumblr post (NPF: text/photo/link). Choose blog with --blog; state defaults to published.",
38098
+ "name": "publish",
38099
+ "description": "Publish a Tumblr post (NPF: title/text/image/link). Draft by default; pass --state published to go live.",
38972
38100
  "access": "write",
38973
38101
  "domain": "tumblr.com",
38974
- "strategy": "local",
38975
- "browser": false,
38102
+ "strategy": "cookie",
38103
+ "browser": true,
38976
38104
  "args": [
38105
+ {
38106
+ "name": "title",
38107
+ "type": "string",
38108
+ "required": false,
38109
+ "help": "Title (rendered as a heading1 text block)"
38110
+ },
38977
38111
  {
38978
38112
  "name": "text",
38979
38113
  "type": "string",
38980
38114
  "required": false,
38981
- "help": "Body text block"
38115
+ "help": "Body text (blank lines split paragraphs); alias of --body"
38982
38116
  },
38983
38117
  {
38984
- "name": "title",
38118
+ "name": "body",
38119
+ "type": "string",
38120
+ "required": false,
38121
+ "help": "Body text (blank lines split paragraphs)"
38122
+ },
38123
+ {
38124
+ "name": "body-file",
38985
38125
  "type": "string",
38986
38126
  "required": false,
38987
- "help": "Heading text block (rendered as a title)"
38127
+ "help": "Path to a text file for the body"
38988
38128
  },
38989
38129
  {
38990
38130
  "name": "image-url",
38991
38131
  "type": "string",
38992
38132
  "required": false,
38993
- "help": "Image URL (photo block)"
38133
+ "help": "Image URL (NPF image block)"
38994
38134
  },
38995
38135
  {
38996
38136
  "name": "link",
38997
38137
  "type": "string",
38998
38138
  "required": false,
38999
- "help": "Link URL (link block)"
38139
+ "help": "Link URL (NPF link block)"
39000
38140
  },
39001
38141
  {
39002
38142
  "name": "tags",
@@ -39007,9 +38147,9 @@
39007
38147
  {
39008
38148
  "name": "state",
39009
38149
  "type": "string",
39010
- "default": "published",
38150
+ "default": "draft",
39011
38151
  "required": false,
39012
- "help": "published | draft | queue | private",
38152
+ "help": "draft | published | queue | private (default: draft)",
39013
38153
  "choices": [
39014
38154
  "published",
39015
38155
  "draft",
@@ -39021,7 +38161,7 @@
39021
38161
  "name": "blog",
39022
38162
  "type": "string",
39023
38163
  "required": false,
39024
- "help": "Blog identifier to post to (else credential default_blog / primary)"
38164
+ "help": "Target blog identifier (else your primary blog)"
39025
38165
  }
39026
38166
  ],
39027
38167
  "columns": [
@@ -39033,27 +38173,30 @@
39033
38173
  ],
39034
38174
  "type": "js",
39035
38175
  "modulePath": "tumblr/publish.js",
39036
- "sourceFile": "tumblr/publish.js"
38176
+ "sourceFile": "tumblr/publish.js",
38177
+ "navigateBefore": "https://tumblr.com"
39037
38178
  },
39038
38179
  {
39039
38180
  "site": "tumblr",
39040
38181
  "name": "whoami",
39041
- "description": "Show the configured tumblr account",
38182
+ "description": "Show the current logged-in tumblr account",
39042
38183
  "access": "read",
39043
38184
  "domain": "tumblr.com",
39044
- "strategy": "local",
39045
- "browser": false,
38185
+ "strategy": "cookie",
38186
+ "browser": true,
39046
38187
  "args": [],
39047
38188
  "columns": [
39048
38189
  "logged_in",
39049
38190
  "site",
39050
38191
  "name",
39051
- "blogs",
39052
- "default_blog"
38192
+ "primary_blog",
38193
+ "blogs"
39053
38194
  ],
39054
38195
  "type": "js",
39055
38196
  "modulePath": "tumblr/auth.js",
39056
- "sourceFile": "tumblr/auth.js"
38197
+ "sourceFile": "tumblr/auth.js",
38198
+ "navigateBefore": false,
38199
+ "siteSession": "persistent"
39057
38200
  },
39058
38201
  {
39059
38202
  "site": "tvmaze",