@jackwener/opencli 1.5.5 → 1.5.6

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 (231) hide show
  1. package/README.md +27 -2
  2. package/README.zh-CN.md +36 -4
  3. package/dist/browser/daemon-client.d.ts +5 -1
  4. package/dist/browser/page.d.ts +6 -0
  5. package/dist/browser/page.js +15 -0
  6. package/dist/cli-manifest.json +1229 -67
  7. package/dist/clis/band/bands.d.ts +1 -0
  8. package/dist/clis/band/bands.js +72 -0
  9. package/dist/clis/band/mentions.d.ts +1 -0
  10. package/dist/clis/band/mentions.js +127 -0
  11. package/dist/clis/band/post.d.ts +1 -0
  12. package/dist/clis/band/post.js +175 -0
  13. package/dist/clis/band/posts.d.ts +1 -0
  14. package/dist/clis/band/posts.js +94 -0
  15. package/dist/clis/doubao/detail.d.ts +1 -0
  16. package/dist/clis/doubao/detail.js +33 -0
  17. package/dist/clis/doubao/detail.test.d.ts +1 -0
  18. package/dist/clis/doubao/detail.test.js +42 -0
  19. package/dist/clis/doubao/history.d.ts +1 -0
  20. package/dist/clis/doubao/history.js +28 -0
  21. package/dist/clis/doubao/history.test.d.ts +1 -0
  22. package/dist/clis/doubao/history.test.js +37 -0
  23. package/dist/clis/doubao/meeting-summary.d.ts +1 -0
  24. package/dist/clis/doubao/meeting-summary.js +39 -0
  25. package/dist/clis/doubao/meeting-transcript.d.ts +1 -0
  26. package/dist/clis/doubao/meeting-transcript.js +36 -0
  27. package/dist/clis/doubao/utils.d.ts +27 -0
  28. package/dist/clis/doubao/utils.js +317 -0
  29. package/dist/clis/doubao/utils.test.d.ts +1 -0
  30. package/dist/clis/doubao/utils.test.js +24 -0
  31. package/dist/clis/douyin/_shared/public-api.d.ts +33 -0
  32. package/dist/clis/douyin/_shared/public-api.js +29 -0
  33. package/dist/clis/douyin/user-videos.d.ts +5 -0
  34. package/dist/clis/douyin/user-videos.js +74 -0
  35. package/dist/clis/douyin/user-videos.test.d.ts +1 -0
  36. package/dist/clis/douyin/user-videos.test.js +108 -0
  37. package/dist/clis/ones/common.d.ts +32 -0
  38. package/dist/clis/ones/common.js +144 -0
  39. package/dist/clis/ones/enrich-tasks.d.ts +5 -0
  40. package/dist/clis/ones/enrich-tasks.js +37 -0
  41. package/dist/clis/ones/login.d.ts +1 -0
  42. package/dist/clis/ones/login.js +80 -0
  43. package/dist/clis/ones/logout.d.ts +1 -0
  44. package/dist/clis/ones/logout.js +17 -0
  45. package/dist/clis/ones/me.d.ts +1 -0
  46. package/dist/clis/ones/me.js +30 -0
  47. package/dist/clis/ones/my-tasks.d.ts +1 -0
  48. package/dist/clis/ones/my-tasks.js +120 -0
  49. package/dist/clis/ones/resolve-labels.d.ts +10 -0
  50. package/dist/clis/ones/resolve-labels.js +64 -0
  51. package/dist/clis/ones/task-helpers.d.ts +29 -0
  52. package/dist/clis/ones/task-helpers.js +212 -0
  53. package/dist/clis/ones/task-helpers.test.d.ts +1 -0
  54. package/dist/clis/ones/task-helpers.test.js +12 -0
  55. package/dist/clis/ones/task.d.ts +1 -0
  56. package/dist/clis/ones/task.js +66 -0
  57. package/dist/clis/ones/tasks.d.ts +1 -0
  58. package/dist/clis/ones/tasks.js +79 -0
  59. package/dist/clis/ones/token-info.d.ts +1 -0
  60. package/dist/clis/ones/token-info.js +42 -0
  61. package/dist/clis/ones/worklog.d.ts +11 -0
  62. package/dist/clis/ones/worklog.js +267 -0
  63. package/dist/clis/ones/worklog.test.d.ts +1 -0
  64. package/dist/clis/ones/worklog.test.js +20 -0
  65. package/dist/clis/spotify/spotify.d.ts +1 -0
  66. package/dist/clis/spotify/spotify.js +316 -0
  67. package/dist/clis/spotify/utils.d.ts +21 -0
  68. package/dist/clis/spotify/utils.js +66 -0
  69. package/dist/clis/spotify/utils.test.d.ts +1 -0
  70. package/dist/clis/spotify/utils.test.js +67 -0
  71. package/dist/clis/tieba/commands.test.d.ts +4 -0
  72. package/dist/clis/tieba/commands.test.js +79 -0
  73. package/dist/clis/tieba/hot.d.ts +1 -0
  74. package/dist/clis/tieba/hot.js +48 -0
  75. package/dist/clis/tieba/posts.d.ts +1 -0
  76. package/dist/clis/tieba/posts.js +85 -0
  77. package/dist/clis/tieba/read.d.ts +1 -0
  78. package/dist/clis/tieba/read.js +140 -0
  79. package/dist/clis/tieba/search.d.ts +1 -0
  80. package/dist/clis/tieba/search.js +108 -0
  81. package/dist/clis/tieba/utils.d.ts +101 -0
  82. package/dist/clis/tieba/utils.js +240 -0
  83. package/dist/clis/tieba/utils.test.d.ts +1 -0
  84. package/dist/clis/tieba/utils.test.js +290 -0
  85. package/dist/clis/weread/book.js +100 -13
  86. package/dist/clis/weread/commands.test.js +221 -0
  87. package/dist/clis/weread/private-api-regression.test.d.ts +1 -0
  88. package/dist/{weread-private-api-regression.test.js → clis/weread/private-api-regression.test.js} +92 -30
  89. package/dist/clis/weread/search-regression.test.d.ts +1 -0
  90. package/dist/clis/weread/search-regression.test.js +407 -0
  91. package/dist/clis/weread/search.js +143 -7
  92. package/dist/clis/weread/shelf.js +13 -95
  93. package/dist/clis/weread/utils.d.ts +46 -0
  94. package/dist/clis/weread/utils.js +214 -7
  95. package/dist/clis/weread/utils.test.js +71 -1
  96. package/dist/clis/xiaohongshu/publish.d.ts +1 -1
  97. package/dist/clis/xiaohongshu/publish.js +78 -31
  98. package/dist/clis/xiaohongshu/publish.test.js +66 -1
  99. package/dist/clis/xiaohongshu/user-helpers.d.ts +1 -0
  100. package/dist/clis/xiaohongshu/user-helpers.js +2 -0
  101. package/dist/clis/xiaohongshu/user-helpers.test.js +18 -0
  102. package/dist/clis/xueqiu/comments.d.ts +118 -0
  103. package/dist/clis/xueqiu/comments.js +354 -0
  104. package/dist/clis/xueqiu/comments.test.d.ts +1 -0
  105. package/dist/clis/xueqiu/comments.test.js +696 -0
  106. package/dist/clis/youtube/transcript.js +2 -4
  107. package/dist/clis/youtube/utils.d.ts +9 -0
  108. package/dist/clis/youtube/utils.js +67 -3
  109. package/dist/clis/youtube/utils.test.d.ts +1 -0
  110. package/dist/clis/youtube/utils.test.js +37 -0
  111. package/dist/clis/youtube/video.js +16 -15
  112. package/dist/clis/zsxq/dynamics.d.ts +1 -0
  113. package/dist/clis/zsxq/dynamics.js +47 -0
  114. package/dist/clis/zsxq/groups.d.ts +1 -0
  115. package/dist/clis/zsxq/groups.js +32 -0
  116. package/dist/clis/zsxq/search.d.ts +1 -0
  117. package/dist/clis/zsxq/search.js +43 -0
  118. package/dist/clis/zsxq/search.test.d.ts +1 -0
  119. package/dist/clis/zsxq/search.test.js +24 -0
  120. package/dist/clis/zsxq/topic.d.ts +1 -0
  121. package/dist/clis/zsxq/topic.js +47 -0
  122. package/dist/clis/zsxq/topic.test.d.ts +1 -0
  123. package/dist/clis/zsxq/topic.test.js +29 -0
  124. package/dist/clis/zsxq/topics.d.ts +1 -0
  125. package/dist/clis/zsxq/topics.js +25 -0
  126. package/dist/clis/zsxq/topics.test.d.ts +1 -0
  127. package/dist/clis/zsxq/topics.test.js +24 -0
  128. package/dist/clis/zsxq/utils.d.ts +97 -0
  129. package/dist/clis/zsxq/utils.js +230 -0
  130. package/dist/commanderAdapter.js +1 -1
  131. package/dist/commanderAdapter.test.js +39 -0
  132. package/dist/external-clis.yaml +17 -0
  133. package/dist/types.d.ts +5 -0
  134. package/docs/.vitepress/config.mts +3 -0
  135. package/docs/adapters/browser/band.md +63 -0
  136. package/docs/adapters/browser/ones.md +59 -0
  137. package/docs/adapters/browser/spotify.md +62 -0
  138. package/docs/adapters/browser/tieba.md +45 -0
  139. package/docs/adapters/browser/xueqiu.md +5 -0
  140. package/docs/adapters/browser/zsxq.md +49 -0
  141. package/docs/adapters/index.md +5 -2
  142. package/docs/adapters-doc/ones.md +32 -0
  143. package/extension/src/background.ts +15 -0
  144. package/extension/src/cdp.ts +42 -0
  145. package/extension/src/protocol.ts +5 -1
  146. package/package.json +1 -1
  147. package/scripts/postinstall.js +16 -0
  148. package/src/browser/daemon-client.ts +5 -1
  149. package/src/browser/page.ts +16 -0
  150. package/src/clis/band/bands.ts +76 -0
  151. package/src/clis/band/mentions.ts +134 -0
  152. package/src/clis/band/post.ts +187 -0
  153. package/src/clis/band/posts.ts +106 -0
  154. package/src/clis/doubao/detail.test.ts +53 -0
  155. package/src/clis/doubao/detail.ts +41 -0
  156. package/src/clis/doubao/history.test.ts +45 -0
  157. package/src/clis/doubao/history.ts +32 -0
  158. package/src/clis/doubao/meeting-summary.ts +53 -0
  159. package/src/clis/doubao/meeting-transcript.ts +48 -0
  160. package/src/clis/doubao/utils.test.ts +45 -0
  161. package/src/clis/doubao/utils.ts +371 -0
  162. package/src/clis/douyin/_shared/public-api.ts +84 -0
  163. package/src/clis/douyin/user-videos.test.ts +122 -0
  164. package/src/clis/douyin/user-videos.ts +101 -0
  165. package/src/clis/ones/common.ts +187 -0
  166. package/src/clis/ones/enrich-tasks.ts +47 -0
  167. package/src/clis/ones/login.ts +103 -0
  168. package/src/clis/ones/logout.ts +19 -0
  169. package/src/clis/ones/me.ts +34 -0
  170. package/src/clis/ones/my-tasks.ts +148 -0
  171. package/src/clis/ones/resolve-labels.ts +80 -0
  172. package/src/clis/ones/task-helpers.test.ts +14 -0
  173. package/src/clis/ones/task-helpers.ts +214 -0
  174. package/src/clis/ones/task.ts +79 -0
  175. package/src/clis/ones/tasks.ts +92 -0
  176. package/src/clis/ones/token-info.ts +46 -0
  177. package/src/clis/ones/worklog.test.ts +24 -0
  178. package/src/clis/ones/worklog.ts +306 -0
  179. package/src/clis/spotify/spotify.ts +328 -0
  180. package/src/clis/spotify/utils.test.ts +87 -0
  181. package/src/clis/spotify/utils.ts +92 -0
  182. package/src/clis/tieba/commands.test.ts +86 -0
  183. package/src/clis/tieba/hot.ts +52 -0
  184. package/src/clis/tieba/posts.ts +108 -0
  185. package/src/clis/tieba/read.ts +158 -0
  186. package/src/clis/tieba/search.ts +119 -0
  187. package/src/clis/tieba/utils.test.ts +322 -0
  188. package/src/clis/tieba/utils.ts +348 -0
  189. package/src/clis/weread/book.ts +116 -13
  190. package/src/clis/weread/commands.test.ts +249 -0
  191. package/src/{weread-private-api-regression.test.ts → clis/weread/private-api-regression.test.ts} +108 -30
  192. package/src/clis/weread/search-regression.test.ts +440 -0
  193. package/src/clis/weread/search.ts +189 -9
  194. package/src/clis/weread/shelf.ts +20 -122
  195. package/src/clis/weread/utils.test.ts +81 -1
  196. package/src/clis/weread/utils.ts +264 -7
  197. package/src/clis/xiaohongshu/publish.test.ts +79 -1
  198. package/src/clis/xiaohongshu/publish.ts +84 -30
  199. package/src/clis/xiaohongshu/user-helpers.test.ts +23 -0
  200. package/src/clis/xiaohongshu/user-helpers.ts +4 -0
  201. package/src/clis/xueqiu/comments.test.ts +823 -0
  202. package/src/clis/xueqiu/comments.ts +461 -0
  203. package/src/clis/youtube/transcript.ts +2 -4
  204. package/src/clis/youtube/utils.test.ts +43 -0
  205. package/src/clis/youtube/utils.ts +69 -0
  206. package/src/clis/youtube/video.ts +16 -15
  207. package/src/clis/zsxq/dynamics.ts +60 -0
  208. package/src/clis/zsxq/groups.ts +41 -0
  209. package/src/clis/zsxq/search.test.ts +29 -0
  210. package/src/clis/zsxq/search.ts +54 -0
  211. package/src/clis/zsxq/topic.test.ts +34 -0
  212. package/src/clis/zsxq/topic.ts +68 -0
  213. package/src/clis/zsxq/topics.test.ts +29 -0
  214. package/src/clis/zsxq/topics.ts +36 -0
  215. package/src/clis/zsxq/utils.ts +351 -0
  216. package/src/commanderAdapter.test.ts +47 -0
  217. package/src/commanderAdapter.ts +1 -1
  218. package/src/external-clis.yaml +17 -0
  219. package/src/types.ts +5 -0
  220. package/tests/e2e/band-auth.test.ts +20 -0
  221. package/tests/e2e/browser-auth-helpers.ts +18 -0
  222. package/tests/e2e/browser-auth.test.ts +35 -47
  223. package/tests/e2e/browser-public.test.ts +288 -0
  224. package/tests/e2e/management.test.ts +1 -1
  225. package/tests/e2e/plugin-management.test.ts +1 -1
  226. package/vitest.config.ts +1 -0
  227. package/SKILL.md +0 -879
  228. package/dist/weread-private-api-regression.test.d.ts +0 -1
  229. package/dist/weread-search-regression.test.d.ts +0 -1
  230. package/dist/weread-search-regression.test.js +0 -39
  231. package/src/weread-search-regression.test.ts +0 -44
@@ -402,6 +402,150 @@
402
402
  "type": "ts",
403
403
  "modulePath": "arxiv/search.js"
404
404
  },
405
+ {
406
+ "site": "band",
407
+ "name": "bands",
408
+ "description": "List all Bands you belong to",
409
+ "domain": "www.band.us",
410
+ "strategy": "cookie",
411
+ "browser": true,
412
+ "args": [],
413
+ "columns": [
414
+ "band_no",
415
+ "name",
416
+ "members"
417
+ ],
418
+ "type": "ts",
419
+ "modulePath": "band/bands.js"
420
+ },
421
+ {
422
+ "site": "band",
423
+ "name": "mentions",
424
+ "description": "Show Band notifications where you are @mentioned",
425
+ "domain": "www.band.us",
426
+ "strategy": "intercept",
427
+ "browser": true,
428
+ "args": [
429
+ {
430
+ "name": "filter",
431
+ "type": "str",
432
+ "default": "mentioned",
433
+ "required": false,
434
+ "help": "Filter: mentioned (default) | all | post | comment",
435
+ "choices": [
436
+ "mentioned",
437
+ "all",
438
+ "post",
439
+ "comment"
440
+ ]
441
+ },
442
+ {
443
+ "name": "limit",
444
+ "type": "int",
445
+ "default": 20,
446
+ "required": false,
447
+ "help": "Max results"
448
+ },
449
+ {
450
+ "name": "unread",
451
+ "type": "bool",
452
+ "default": false,
453
+ "required": false,
454
+ "help": "Show only unread notifications"
455
+ }
456
+ ],
457
+ "columns": [
458
+ "time",
459
+ "band",
460
+ "type",
461
+ "from",
462
+ "text",
463
+ "url"
464
+ ],
465
+ "type": "ts",
466
+ "modulePath": "band/mentions.js"
467
+ },
468
+ {
469
+ "site": "band",
470
+ "name": "post",
471
+ "description": "Export full content of a post including comments",
472
+ "domain": "www.band.us",
473
+ "strategy": "cookie",
474
+ "browser": true,
475
+ "args": [
476
+ {
477
+ "name": "band_no",
478
+ "type": "int",
479
+ "required": true,
480
+ "positional": true,
481
+ "help": "Band number"
482
+ },
483
+ {
484
+ "name": "post_no",
485
+ "type": "int",
486
+ "required": true,
487
+ "positional": true,
488
+ "help": "Post number"
489
+ },
490
+ {
491
+ "name": "output",
492
+ "type": "str",
493
+ "default": "",
494
+ "required": false,
495
+ "help": "Directory to save attached photos"
496
+ },
497
+ {
498
+ "name": "comments",
499
+ "type": "bool",
500
+ "default": true,
501
+ "required": false,
502
+ "help": "Include comments (default: true)"
503
+ }
504
+ ],
505
+ "columns": [
506
+ "type",
507
+ "author",
508
+ "date",
509
+ "text"
510
+ ],
511
+ "type": "ts",
512
+ "modulePath": "band/post.js",
513
+ "navigateBefore": false
514
+ },
515
+ {
516
+ "site": "band",
517
+ "name": "posts",
518
+ "description": "List posts from a Band",
519
+ "domain": "www.band.us",
520
+ "strategy": "cookie",
521
+ "browser": true,
522
+ "args": [
523
+ {
524
+ "name": "band_no",
525
+ "type": "int",
526
+ "required": true,
527
+ "positional": true,
528
+ "help": "Band number (get it from: band bands)"
529
+ },
530
+ {
531
+ "name": "limit",
532
+ "type": "int",
533
+ "default": 20,
534
+ "required": false,
535
+ "help": "Max results"
536
+ }
537
+ ],
538
+ "columns": [
539
+ "date",
540
+ "author",
541
+ "content",
542
+ "comments",
543
+ "url"
544
+ ],
545
+ "type": "ts",
546
+ "modulePath": "band/posts.js",
547
+ "navigateBefore": false
548
+ },
405
549
  {
406
550
  "site": "barchart",
407
551
  "name": "flow",
@@ -3875,6 +4019,118 @@
3875
4019
  "modulePath": "doubao/ask.js",
3876
4020
  "navigateBefore": false
3877
4021
  },
4022
+ {
4023
+ "site": "doubao",
4024
+ "name": "detail",
4025
+ "description": "Read a specific Doubao conversation by ID",
4026
+ "domain": "www.doubao.com",
4027
+ "strategy": "cookie",
4028
+ "browser": true,
4029
+ "args": [
4030
+ {
4031
+ "name": "id",
4032
+ "type": "str",
4033
+ "required": true,
4034
+ "positional": true,
4035
+ "help": "Conversation ID (numeric or full URL)"
4036
+ }
4037
+ ],
4038
+ "columns": [
4039
+ "Role",
4040
+ "Text"
4041
+ ],
4042
+ "type": "ts",
4043
+ "modulePath": "doubao/detail.js",
4044
+ "navigateBefore": false
4045
+ },
4046
+ {
4047
+ "site": "doubao",
4048
+ "name": "history",
4049
+ "description": "List conversation history from Doubao sidebar",
4050
+ "domain": "www.doubao.com",
4051
+ "strategy": "cookie",
4052
+ "browser": true,
4053
+ "args": [
4054
+ {
4055
+ "name": "limit",
4056
+ "type": "str",
4057
+ "default": "50",
4058
+ "required": false,
4059
+ "help": "Max number of conversations to show"
4060
+ }
4061
+ ],
4062
+ "columns": [
4063
+ "Index",
4064
+ "Id",
4065
+ "Title",
4066
+ "Url"
4067
+ ],
4068
+ "type": "ts",
4069
+ "modulePath": "doubao/history.js",
4070
+ "navigateBefore": false
4071
+ },
4072
+ {
4073
+ "site": "doubao",
4074
+ "name": "meeting-summary",
4075
+ "description": "Get meeting summary and chapters from a Doubao conversation",
4076
+ "domain": "www.doubao.com",
4077
+ "strategy": "cookie",
4078
+ "browser": true,
4079
+ "args": [
4080
+ {
4081
+ "name": "id",
4082
+ "type": "str",
4083
+ "required": true,
4084
+ "positional": true,
4085
+ "help": "Conversation ID (numeric or full URL)"
4086
+ },
4087
+ {
4088
+ "name": "chapters",
4089
+ "type": "str",
4090
+ "default": "false",
4091
+ "required": false,
4092
+ "help": "Also include AI chapters"
4093
+ }
4094
+ ],
4095
+ "columns": [
4096
+ "Section",
4097
+ "Content"
4098
+ ],
4099
+ "type": "ts",
4100
+ "modulePath": "doubao/meeting-summary.js",
4101
+ "navigateBefore": false
4102
+ },
4103
+ {
4104
+ "site": "doubao",
4105
+ "name": "meeting-transcript",
4106
+ "description": "Get or download the meeting transcript from a Doubao conversation",
4107
+ "domain": "www.doubao.com",
4108
+ "strategy": "cookie",
4109
+ "browser": true,
4110
+ "args": [
4111
+ {
4112
+ "name": "id",
4113
+ "type": "str",
4114
+ "required": true,
4115
+ "positional": true,
4116
+ "help": "Conversation ID (numeric or full URL)"
4117
+ },
4118
+ {
4119
+ "name": "download",
4120
+ "type": "str",
4121
+ "default": "false",
4122
+ "required": false,
4123
+ "help": "Trigger browser file download instead of reading text"
4124
+ }
4125
+ ],
4126
+ "columns": [
4127
+ "Section",
4128
+ "Content"
4129
+ ],
4130
+ "type": "ts",
4131
+ "modulePath": "doubao/meeting-transcript.js",
4132
+ "navigateBefore": false
4133
+ },
3878
4134
  {
3879
4135
  "site": "doubao",
3880
4136
  "name": "new",
@@ -4504,6 +4760,55 @@
4504
4760
  "type": "ts",
4505
4761
  "modulePath": "douyin/update.js"
4506
4762
  },
4763
+ {
4764
+ "site": "douyin",
4765
+ "name": "user-videos",
4766
+ "description": "获取指定用户的视频列表(含下载地址和热门评论)",
4767
+ "domain": "www.douyin.com",
4768
+ "strategy": "cookie",
4769
+ "browser": true,
4770
+ "args": [
4771
+ {
4772
+ "name": "sec_uid",
4773
+ "type": "string",
4774
+ "required": true,
4775
+ "positional": true,
4776
+ "help": "用户 sec_uid(URL 末尾部分)"
4777
+ },
4778
+ {
4779
+ "name": "limit",
4780
+ "type": "int",
4781
+ "default": 20,
4782
+ "required": false,
4783
+ "help": "获取数量(最大 20)"
4784
+ },
4785
+ {
4786
+ "name": "with_comments",
4787
+ "type": "bool",
4788
+ "default": true,
4789
+ "required": false,
4790
+ "help": "包含热门评论(默认: true)"
4791
+ },
4792
+ {
4793
+ "name": "comment_limit",
4794
+ "type": "int",
4795
+ "default": 10,
4796
+ "required": false,
4797
+ "help": "每个视频获取多少条评论(最大 10)"
4798
+ }
4799
+ ],
4800
+ "columns": [
4801
+ "index",
4802
+ "aweme_id",
4803
+ "title",
4804
+ "duration",
4805
+ "digg_count",
4806
+ "play_url",
4807
+ "top_comments"
4808
+ ],
4809
+ "type": "ts",
4810
+ "modulePath": "douyin/user-videos.js"
4811
+ },
4507
4812
  {
4508
4813
  "site": "douyin",
4509
4814
  "name": "videos",
@@ -7893,33 +8198,313 @@
7893
8198
  "modulePath": "notion/write.js"
7894
8199
  },
7895
8200
  {
7896
- "site": "paperreview",
7897
- "name": "feedback",
7898
- "description": "Submit feedback for a paperreview.ai review token",
7899
- "domain": "paperreview.ai",
7900
- "strategy": "public",
7901
- "browser": false,
8201
+ "site": "ones",
8202
+ "name": "login",
8203
+ "description": "ONES Project API — login via Chrome Bridge (POST auth/login); stderr prints export hints for ONES_USER_ID / TOKEN",
8204
+ "domain": "ones.cn",
8205
+ "strategy": "cookie",
8206
+ "browser": true,
7902
8207
  "args": [
7903
8208
  {
7904
- "name": "token",
8209
+ "name": "email",
7905
8210
  "type": "str",
7906
- "required": true,
7907
- "positional": true,
7908
- "help": "Review token returned by paperreview.ai"
8211
+ "required": false,
8212
+ "help": "Account email (or set ONES_EMAIL)"
7909
8213
  },
7910
8214
  {
7911
- "name": "helpfulness",
7912
- "type": "int",
7913
- "required": true,
7914
- "help": "Helpfulness score from 1 to 5"
8215
+ "name": "phone",
8216
+ "type": "str",
8217
+ "required": false,
8218
+ "help": "Account phone (or set ONES_PHONE); ignored if email is set"
7915
8219
  },
7916
8220
  {
7917
- "name": "critical-error",
8221
+ "name": "password",
7918
8222
  "type": "str",
7919
- "required": true,
7920
- "help": "Whether the review contains a critical error",
7921
- "choices": [
7922
- "yes",
8223
+ "required": false,
8224
+ "help": "Password (or set ONES_PASSWORD)"
8225
+ }
8226
+ ],
8227
+ "columns": [
8228
+ "uuid",
8229
+ "name",
8230
+ "email",
8231
+ "token_preview"
8232
+ ],
8233
+ "type": "ts",
8234
+ "modulePath": "ones/login.js",
8235
+ "navigateBefore": false
8236
+ },
8237
+ {
8238
+ "site": "ones",
8239
+ "name": "logout",
8240
+ "description": "ONES Project API — invalidate current token (GET auth/logout) via Chrome Bridge",
8241
+ "domain": "ones.cn",
8242
+ "strategy": "cookie",
8243
+ "browser": true,
8244
+ "args": [],
8245
+ "columns": [
8246
+ "ok",
8247
+ "detail"
8248
+ ],
8249
+ "type": "ts",
8250
+ "modulePath": "ones/logout.js",
8251
+ "navigateBefore": false
8252
+ },
8253
+ {
8254
+ "site": "ones",
8255
+ "name": "me",
8256
+ "description": "ONES Project API — current user (GET users/me) via Chrome Bridge",
8257
+ "domain": "ones.cn",
8258
+ "strategy": "cookie",
8259
+ "browser": true,
8260
+ "args": [],
8261
+ "columns": [
8262
+ "uuid",
8263
+ "name",
8264
+ "email",
8265
+ "phone",
8266
+ "status"
8267
+ ],
8268
+ "type": "ts",
8269
+ "modulePath": "ones/me.js",
8270
+ "navigateBefore": false
8271
+ },
8272
+ {
8273
+ "site": "ones",
8274
+ "name": "my-tasks",
8275
+ "description": "ONES — my work items (filters/peek + strict must query). Default: assignee=me. Use --mode if your site uses field004 for assignee.",
8276
+ "domain": "ones.cn",
8277
+ "strategy": "cookie",
8278
+ "browser": true,
8279
+ "args": [
8280
+ {
8281
+ "name": "team",
8282
+ "type": "str",
8283
+ "required": false,
8284
+ "positional": true,
8285
+ "help": "Team UUID from URL …/team/<uuid>/…, or set ONES_TEAM_UUID"
8286
+ },
8287
+ {
8288
+ "name": "limit",
8289
+ "type": "int",
8290
+ "default": 100,
8291
+ "required": false,
8292
+ "help": "Max rows (default 100, max 500)"
8293
+ },
8294
+ {
8295
+ "name": "mode",
8296
+ "type": "str",
8297
+ "default": "assign",
8298
+ "required": false,
8299
+ "help": "assign=负责人(顶层 assign);field004=负责人(筛选器示例里的 field004);owner=创建者;both=负责人∪创建者(两次 peek 去重)",
8300
+ "choices": [
8301
+ "assign",
8302
+ "field004",
8303
+ "owner",
8304
+ "both"
8305
+ ]
8306
+ }
8307
+ ],
8308
+ "columns": [
8309
+ "title",
8310
+ "status",
8311
+ "project",
8312
+ "uuid",
8313
+ "updated",
8314
+ "工时"
8315
+ ],
8316
+ "type": "ts",
8317
+ "modulePath": "ones/my-tasks.js",
8318
+ "navigateBefore": false
8319
+ },
8320
+ {
8321
+ "site": "ones",
8322
+ "name": "task",
8323
+ "description": "ONES — work item detail (GET team/:team/task/:id/info); id is URL segment after …/task/",
8324
+ "domain": "ones.cn",
8325
+ "strategy": "cookie",
8326
+ "browser": true,
8327
+ "args": [
8328
+ {
8329
+ "name": "id",
8330
+ "type": "str",
8331
+ "required": true,
8332
+ "positional": true,
8333
+ "help": "Work item UUID (often 16 chars) from …/task/<id>"
8334
+ },
8335
+ {
8336
+ "name": "team",
8337
+ "type": "str",
8338
+ "required": false,
8339
+ "help": "Team UUID (8 chars from …/team/<team>/…), or set ONES_TEAM_UUID"
8340
+ }
8341
+ ],
8342
+ "columns": [
8343
+ "uuid",
8344
+ "summary",
8345
+ "number",
8346
+ "status_uuid",
8347
+ "assign",
8348
+ "owner",
8349
+ "project_uuid",
8350
+ "updated"
8351
+ ],
8352
+ "type": "ts",
8353
+ "modulePath": "ones/task.js",
8354
+ "navigateBefore": false
8355
+ },
8356
+ {
8357
+ "site": "ones",
8358
+ "name": "tasks",
8359
+ "description": "ONES Project API — list work items (POST team/:team/filters/peek); use token-info -f json for team uuid",
8360
+ "domain": "ones.cn",
8361
+ "strategy": "cookie",
8362
+ "browser": true,
8363
+ "args": [
8364
+ {
8365
+ "name": "team",
8366
+ "type": "str",
8367
+ "required": false,
8368
+ "positional": true,
8369
+ "help": "Team UUID (8 chars), or set ONES_TEAM_UUID"
8370
+ },
8371
+ {
8372
+ "name": "project",
8373
+ "type": "str",
8374
+ "required": false,
8375
+ "help": "Filter by project UUID (field006 / 所属项目)"
8376
+ },
8377
+ {
8378
+ "name": "assign",
8379
+ "type": "str",
8380
+ "required": false,
8381
+ "help": "Filter by assignee user UUID (负责人 assign)"
8382
+ },
8383
+ {
8384
+ "name": "limit",
8385
+ "type": "int",
8386
+ "default": 30,
8387
+ "required": false,
8388
+ "help": "Max rows after flattening groups (default 30)"
8389
+ }
8390
+ ],
8391
+ "columns": [
8392
+ "title",
8393
+ "status",
8394
+ "project",
8395
+ "uuid",
8396
+ "updated",
8397
+ "工时"
8398
+ ],
8399
+ "type": "ts",
8400
+ "modulePath": "ones/tasks.js",
8401
+ "navigateBefore": false
8402
+ },
8403
+ {
8404
+ "site": "ones",
8405
+ "name": "token-info",
8406
+ "description": "ONES Project API — session detail (GET auth/token_info) via Chrome Bridge: user, teams, org",
8407
+ "domain": "ones.cn",
8408
+ "strategy": "cookie",
8409
+ "browser": true,
8410
+ "args": [],
8411
+ "columns": [
8412
+ "uuid",
8413
+ "name",
8414
+ "email",
8415
+ "teams",
8416
+ "org_name"
8417
+ ],
8418
+ "type": "ts",
8419
+ "modulePath": "ones/token-info.js",
8420
+ "navigateBefore": false
8421
+ },
8422
+ {
8423
+ "site": "ones",
8424
+ "name": "worklog",
8425
+ "description": "ONES — log work hours on a task (defaults to today; use --date to backfill; endpoint falls back by deployment).",
8426
+ "domain": "ones.cn",
8427
+ "strategy": "cookie",
8428
+ "browser": true,
8429
+ "args": [
8430
+ {
8431
+ "name": "task",
8432
+ "type": "str",
8433
+ "required": true,
8434
+ "positional": true,
8435
+ "help": "Work item UUID (usually 16 chars), from my-tasks or browser URL …/task/<id>"
8436
+ },
8437
+ {
8438
+ "name": "hours",
8439
+ "type": "str",
8440
+ "required": true,
8441
+ "positional": true,
8442
+ "help": "Hours to log for this entry (e.g. 2 or 1.5), converted with ONES_MANHOUR_SCALE"
8443
+ },
8444
+ {
8445
+ "name": "team",
8446
+ "type": "str",
8447
+ "required": false,
8448
+ "help": "Team UUID from URL …/team/<uuid>/…, or set ONES_TEAM_UUID"
8449
+ },
8450
+ {
8451
+ "name": "date",
8452
+ "type": "str",
8453
+ "required": false,
8454
+ "help": "Entry date YYYY-MM-DD, defaults to today (local timezone); use for backfill"
8455
+ },
8456
+ {
8457
+ "name": "note",
8458
+ "type": "str",
8459
+ "required": false,
8460
+ "help": "Optional note (written to description/desc)"
8461
+ },
8462
+ {
8463
+ "name": "owner",
8464
+ "type": "str",
8465
+ "required": false,
8466
+ "help": "Owner user UUID (defaults to current logged-in user)"
8467
+ }
8468
+ ],
8469
+ "columns": [
8470
+ "task",
8471
+ "date",
8472
+ "hours",
8473
+ "owner",
8474
+ "endpoint"
8475
+ ],
8476
+ "type": "ts",
8477
+ "modulePath": "ones/worklog.js",
8478
+ "navigateBefore": false
8479
+ },
8480
+ {
8481
+ "site": "paperreview",
8482
+ "name": "feedback",
8483
+ "description": "Submit feedback for a paperreview.ai review token",
8484
+ "domain": "paperreview.ai",
8485
+ "strategy": "public",
8486
+ "browser": false,
8487
+ "args": [
8488
+ {
8489
+ "name": "token",
8490
+ "type": "str",
8491
+ "required": true,
8492
+ "positional": true,
8493
+ "help": "Review token returned by paperreview.ai"
8494
+ },
8495
+ {
8496
+ "name": "helpfulness",
8497
+ "type": "int",
8498
+ "required": true,
8499
+ "help": "Helpfulness score from 1 to 5"
8500
+ },
8501
+ {
8502
+ "name": "critical-error",
8503
+ "type": "str",
8504
+ "required": true,
8505
+ "help": "Whether the review contains a critical error",
8506
+ "choices": [
8507
+ "yes",
7923
8508
  "no"
7924
8509
  ]
7925
8510
  },
@@ -9371,6 +9956,228 @@
9371
9956
  "type": "ts",
9372
9957
  "modulePath": "smzdm/search.js"
9373
9958
  },
9959
+ {
9960
+ "site": "spotify",
9961
+ "name": "auth",
9962
+ "description": "Authenticate with Spotify (OAuth — run once)",
9963
+ "strategy": "public",
9964
+ "browser": false,
9965
+ "args": [],
9966
+ "columns": [
9967
+ "status"
9968
+ ],
9969
+ "type": "ts",
9970
+ "modulePath": "spotify/spotify.js"
9971
+ },
9972
+ {
9973
+ "site": "spotify",
9974
+ "name": "next",
9975
+ "description": "Skip to next track",
9976
+ "strategy": "public",
9977
+ "browser": false,
9978
+ "args": [],
9979
+ "columns": [
9980
+ "status"
9981
+ ],
9982
+ "type": "ts",
9983
+ "modulePath": "spotify/spotify.js"
9984
+ },
9985
+ {
9986
+ "site": "spotify",
9987
+ "name": "pause",
9988
+ "description": "Pause playback",
9989
+ "strategy": "public",
9990
+ "browser": false,
9991
+ "args": [],
9992
+ "columns": [
9993
+ "status"
9994
+ ],
9995
+ "type": "ts",
9996
+ "modulePath": "spotify/spotify.js"
9997
+ },
9998
+ {
9999
+ "site": "spotify",
10000
+ "name": "play",
10001
+ "description": "Resume playback or search and play a track/artist",
10002
+ "strategy": "public",
10003
+ "browser": false,
10004
+ "args": [
10005
+ {
10006
+ "name": "query",
10007
+ "type": "str",
10008
+ "default": "",
10009
+ "required": false,
10010
+ "positional": true,
10011
+ "help": "Track or artist to play (optional)"
10012
+ }
10013
+ ],
10014
+ "columns": [
10015
+ "track",
10016
+ "artist",
10017
+ "status"
10018
+ ],
10019
+ "type": "ts",
10020
+ "modulePath": "spotify/spotify.js"
10021
+ },
10022
+ {
10023
+ "site": "spotify",
10024
+ "name": "prev",
10025
+ "description": "Skip to previous track",
10026
+ "strategy": "public",
10027
+ "browser": false,
10028
+ "args": [],
10029
+ "columns": [
10030
+ "status"
10031
+ ],
10032
+ "type": "ts",
10033
+ "modulePath": "spotify/spotify.js"
10034
+ },
10035
+ {
10036
+ "site": "spotify",
10037
+ "name": "queue",
10038
+ "description": "Add a track to the playback queue",
10039
+ "strategy": "public",
10040
+ "browser": false,
10041
+ "args": [
10042
+ {
10043
+ "name": "query",
10044
+ "type": "str",
10045
+ "required": true,
10046
+ "positional": true,
10047
+ "help": "Track to add to queue"
10048
+ }
10049
+ ],
10050
+ "columns": [
10051
+ "track",
10052
+ "artist",
10053
+ "status"
10054
+ ],
10055
+ "type": "ts",
10056
+ "modulePath": "spotify/spotify.js"
10057
+ },
10058
+ {
10059
+ "site": "spotify",
10060
+ "name": "repeat",
10061
+ "description": "Set repeat mode (off / track / context)",
10062
+ "strategy": "public",
10063
+ "browser": false,
10064
+ "args": [
10065
+ {
10066
+ "name": "mode",
10067
+ "type": "str",
10068
+ "default": "context",
10069
+ "required": false,
10070
+ "positional": true,
10071
+ "help": "off / track / context",
10072
+ "choices": [
10073
+ "off",
10074
+ "track",
10075
+ "context"
10076
+ ]
10077
+ }
10078
+ ],
10079
+ "columns": [
10080
+ "repeat"
10081
+ ],
10082
+ "type": "ts",
10083
+ "modulePath": "spotify/spotify.js"
10084
+ },
10085
+ {
10086
+ "site": "spotify",
10087
+ "name": "search",
10088
+ "description": "Search for tracks",
10089
+ "strategy": "public",
10090
+ "browser": false,
10091
+ "args": [
10092
+ {
10093
+ "name": "query",
10094
+ "type": "str",
10095
+ "required": true,
10096
+ "positional": true,
10097
+ "help": "Search query"
10098
+ },
10099
+ {
10100
+ "name": "limit",
10101
+ "type": "int",
10102
+ "default": 10,
10103
+ "required": false,
10104
+ "help": "Number of results (default: 10)"
10105
+ }
10106
+ ],
10107
+ "columns": [
10108
+ "track",
10109
+ "artist",
10110
+ "album",
10111
+ "uri"
10112
+ ],
10113
+ "type": "ts",
10114
+ "modulePath": "spotify/spotify.js"
10115
+ },
10116
+ {
10117
+ "site": "spotify",
10118
+ "name": "shuffle",
10119
+ "description": "Toggle shuffle on/off",
10120
+ "strategy": "public",
10121
+ "browser": false,
10122
+ "args": [
10123
+ {
10124
+ "name": "state",
10125
+ "type": "str",
10126
+ "default": "on",
10127
+ "required": false,
10128
+ "positional": true,
10129
+ "help": "on or off",
10130
+ "choices": [
10131
+ "on",
10132
+ "off"
10133
+ ]
10134
+ }
10135
+ ],
10136
+ "columns": [
10137
+ "shuffle"
10138
+ ],
10139
+ "type": "ts",
10140
+ "modulePath": "spotify/spotify.js"
10141
+ },
10142
+ {
10143
+ "site": "spotify",
10144
+ "name": "status",
10145
+ "description": "Show current playback status",
10146
+ "strategy": "public",
10147
+ "browser": false,
10148
+ "args": [],
10149
+ "columns": [
10150
+ "track",
10151
+ "artist",
10152
+ "album",
10153
+ "status",
10154
+ "progress"
10155
+ ],
10156
+ "type": "ts",
10157
+ "modulePath": "spotify/spotify.js"
10158
+ },
10159
+ {
10160
+ "site": "spotify",
10161
+ "name": "volume",
10162
+ "description": "Set playback volume (0-100)",
10163
+ "strategy": "public",
10164
+ "browser": false,
10165
+ "args": [
10166
+ {
10167
+ "name": "level",
10168
+ "type": "int",
10169
+ "default": 50,
10170
+ "required": true,
10171
+ "positional": true,
10172
+ "help": "Volume 0–100"
10173
+ }
10174
+ ],
10175
+ "columns": [
10176
+ "volume"
10177
+ ],
10178
+ "type": "ts",
10179
+ "modulePath": "spotify/spotify.js"
10180
+ },
9374
10181
  {
9375
10182
  "site": "stackoverflow",
9376
10183
  "name": "bounties",
@@ -9610,99 +10417,249 @@
9610
10417
  "limit": "${{ args.limit }}"
9611
10418
  }
9612
10419
  ],
9613
- "type": "yaml"
10420
+ "type": "yaml"
10421
+ },
10422
+ {
10423
+ "site": "substack",
10424
+ "name": "feed",
10425
+ "description": "Substack 热门文章 Feed",
10426
+ "domain": "substack.com",
10427
+ "strategy": "cookie",
10428
+ "browser": true,
10429
+ "args": [
10430
+ {
10431
+ "name": "category",
10432
+ "type": "str",
10433
+ "default": "all",
10434
+ "required": false,
10435
+ "help": "文章分类: all, tech, business, culture, politics, science, health"
10436
+ },
10437
+ {
10438
+ "name": "limit",
10439
+ "type": "int",
10440
+ "default": 20,
10441
+ "required": false,
10442
+ "help": "返回的文章数量"
10443
+ }
10444
+ ],
10445
+ "columns": [
10446
+ "rank",
10447
+ "title",
10448
+ "author",
10449
+ "date",
10450
+ "readTime",
10451
+ "url"
10452
+ ],
10453
+ "type": "ts",
10454
+ "modulePath": "substack/feed.js"
10455
+ },
10456
+ {
10457
+ "site": "substack",
10458
+ "name": "publication",
10459
+ "description": "获取特定 Substack Newsletter 的最新文章",
10460
+ "domain": "substack.com",
10461
+ "strategy": "cookie",
10462
+ "browser": true,
10463
+ "args": [
10464
+ {
10465
+ "name": "url",
10466
+ "type": "str",
10467
+ "required": true,
10468
+ "positional": true,
10469
+ "help": "Newsletter URL(如 https://example.substack.com)"
10470
+ },
10471
+ {
10472
+ "name": "limit",
10473
+ "type": "int",
10474
+ "default": 20,
10475
+ "required": false,
10476
+ "help": "返回的文章数量"
10477
+ }
10478
+ ],
10479
+ "columns": [
10480
+ "rank",
10481
+ "title",
10482
+ "date",
10483
+ "description",
10484
+ "url"
10485
+ ],
10486
+ "type": "ts",
10487
+ "modulePath": "substack/publication.js"
10488
+ },
10489
+ {
10490
+ "site": "substack",
10491
+ "name": "search",
10492
+ "description": "搜索 Substack 文章和 Newsletter",
10493
+ "domain": "substack.com",
10494
+ "strategy": "public",
10495
+ "browser": false,
10496
+ "args": [
10497
+ {
10498
+ "name": "keyword",
10499
+ "type": "str",
10500
+ "required": true,
10501
+ "positional": true,
10502
+ "help": "搜索关键词"
10503
+ },
10504
+ {
10505
+ "name": "type",
10506
+ "type": "str",
10507
+ "default": "posts",
10508
+ "required": false,
10509
+ "help": "搜索类型(posts=文章, publications=Newsletter)",
10510
+ "choices": [
10511
+ "posts",
10512
+ "publications"
10513
+ ]
10514
+ },
10515
+ {
10516
+ "name": "limit",
10517
+ "type": "int",
10518
+ "default": 20,
10519
+ "required": false,
10520
+ "help": "返回结果数量"
10521
+ }
10522
+ ],
10523
+ "columns": [
10524
+ "rank",
10525
+ "title",
10526
+ "author",
10527
+ "date",
10528
+ "description",
10529
+ "url"
10530
+ ],
10531
+ "type": "ts",
10532
+ "modulePath": "substack/search.js"
10533
+ },
10534
+ {
10535
+ "site": "tieba",
10536
+ "name": "hot",
10537
+ "description": "Tieba hot topics",
10538
+ "domain": "tieba.baidu.com",
10539
+ "strategy": "public",
10540
+ "browser": true,
10541
+ "args": [
10542
+ {
10543
+ "name": "limit",
10544
+ "type": "int",
10545
+ "default": 20,
10546
+ "required": false,
10547
+ "help": "Number of items to return"
10548
+ }
10549
+ ],
10550
+ "columns": [
10551
+ "rank",
10552
+ "title",
10553
+ "discussions",
10554
+ "description"
10555
+ ],
10556
+ "type": "ts",
10557
+ "modulePath": "tieba/hot.js",
10558
+ "navigateBefore": false
9614
10559
  },
9615
10560
  {
9616
- "site": "substack",
9617
- "name": "feed",
9618
- "description": "Substack 热门文章 Feed",
9619
- "domain": "substack.com",
10561
+ "site": "tieba",
10562
+ "name": "posts",
10563
+ "description": "Browse posts in a tieba forum",
10564
+ "domain": "tieba.baidu.com",
9620
10565
  "strategy": "cookie",
9621
10566
  "browser": true,
9622
10567
  "args": [
9623
10568
  {
9624
- "name": "category",
9625
- "type": "str",
9626
- "default": "all",
10569
+ "name": "forum",
10570
+ "type": "string",
10571
+ "required": true,
10572
+ "positional": true,
10573
+ "help": "Forum name in Chinese"
10574
+ },
10575
+ {
10576
+ "name": "page",
10577
+ "type": "int",
10578
+ "default": 1,
9627
10579
  "required": false,
9628
- "help": "文章分类: all, tech, business, culture, politics, science, health"
10580
+ "help": "Page number"
9629
10581
  },
9630
10582
  {
9631
10583
  "name": "limit",
9632
10584
  "type": "int",
9633
10585
  "default": 20,
9634
10586
  "required": false,
9635
- "help": "返回的文章数量"
10587
+ "help": "Number of items to return"
9636
10588
  }
9637
10589
  ],
9638
10590
  "columns": [
9639
10591
  "rank",
9640
10592
  "title",
9641
10593
  "author",
9642
- "date",
9643
- "readTime",
9644
- "url"
10594
+ "replies"
9645
10595
  ],
9646
10596
  "type": "ts",
9647
- "modulePath": "substack/feed.js"
10597
+ "modulePath": "tieba/posts.js",
10598
+ "navigateBefore": false
9648
10599
  },
9649
10600
  {
9650
- "site": "substack",
9651
- "name": "publication",
9652
- "description": "获取特定 Substack Newsletter 的最新文章",
9653
- "domain": "substack.com",
10601
+ "site": "tieba",
10602
+ "name": "read",
10603
+ "description": "Read a tieba thread",
10604
+ "domain": "tieba.baidu.com",
9654
10605
  "strategy": "cookie",
9655
10606
  "browser": true,
9656
10607
  "args": [
9657
10608
  {
9658
- "name": "url",
9659
- "type": "str",
10609
+ "name": "id",
10610
+ "type": "string",
9660
10611
  "required": true,
9661
10612
  "positional": true,
9662
- "help": "Newsletter URL(如 https://example.substack.com)"
10613
+ "help": "Thread ID"
10614
+ },
10615
+ {
10616
+ "name": "page",
10617
+ "type": "int",
10618
+ "default": 1,
10619
+ "required": false,
10620
+ "help": "Page number"
9663
10621
  },
9664
10622
  {
9665
10623
  "name": "limit",
9666
10624
  "type": "int",
9667
- "default": 20,
10625
+ "default": 30,
9668
10626
  "required": false,
9669
- "help": "返回的文章数量"
10627
+ "help": "Number of replies to return"
9670
10628
  }
9671
10629
  ],
9672
10630
  "columns": [
9673
- "rank",
9674
- "title",
9675
- "date",
9676
- "description",
9677
- "url"
10631
+ "floor",
10632
+ "author",
10633
+ "content",
10634
+ "time"
9678
10635
  ],
9679
10636
  "type": "ts",
9680
- "modulePath": "substack/publication.js"
10637
+ "modulePath": "tieba/read.js",
10638
+ "navigateBefore": false
9681
10639
  },
9682
10640
  {
9683
- "site": "substack",
10641
+ "site": "tieba",
9684
10642
  "name": "search",
9685
- "description": "搜索 Substack 文章和 Newsletter",
9686
- "domain": "substack.com",
9687
- "strategy": "public",
9688
- "browser": false,
10643
+ "description": "Search posts across tieba",
10644
+ "domain": "tieba.baidu.com",
10645
+ "strategy": "cookie",
10646
+ "browser": true,
9689
10647
  "args": [
9690
10648
  {
9691
10649
  "name": "keyword",
9692
- "type": "str",
10650
+ "type": "string",
9693
10651
  "required": true,
9694
10652
  "positional": true,
9695
- "help": "搜索关键词"
10653
+ "help": "Search keyword"
9696
10654
  },
9697
10655
  {
9698
- "name": "type",
9699
- "type": "str",
9700
- "default": "posts",
10656
+ "name": "page",
10657
+ "type": "int",
10658
+ "default": 1,
9701
10659
  "required": false,
9702
- "help": "搜索类型(posts=文章, publications=Newsletter)",
10660
+ "help": "Page number (currently only 1 is supported)",
9703
10661
  "choices": [
9704
- "posts",
9705
- "publications"
10662
+ "1"
9706
10663
  ]
9707
10664
  },
9708
10665
  {
@@ -9710,19 +10667,19 @@
9710
10667
  "type": "int",
9711
10668
  "default": 20,
9712
10669
  "required": false,
9713
- "help": "返回结果数量"
10670
+ "help": "Number of items to return"
9714
10671
  }
9715
10672
  ],
9716
10673
  "columns": [
9717
10674
  "rank",
9718
10675
  "title",
10676
+ "forum",
9719
10677
  "author",
9720
- "date",
9721
- "description",
9722
- "url"
10678
+ "time"
9723
10679
  ],
9724
10680
  "type": "ts",
9725
- "modulePath": "substack/search.js"
10681
+ "modulePath": "tieba/search.js",
10682
+ "navigateBefore": false
9726
10683
  },
9727
10684
  {
9728
10685
  "site": "tiktok",
@@ -11747,7 +12704,7 @@
11747
12704
  "type": "str",
11748
12705
  "required": true,
11749
12706
  "positional": true,
11750
- "help": "Book ID (numeric, from search or shelf results)"
12707
+ "help": "Book ID from search or shelf results"
11751
12708
  }
11752
12709
  ],
11753
12710
  "columns": [
@@ -12576,6 +13533,42 @@
12576
13533
  "type": "ts",
12577
13534
  "modulePath": "xiaoyuzhou/podcast.js"
12578
13535
  },
13536
+ {
13537
+ "site": "xueqiu",
13538
+ "name": "comments",
13539
+ "description": "获取单只股票的讨论动态",
13540
+ "domain": "xueqiu.com",
13541
+ "strategy": "cookie",
13542
+ "browser": true,
13543
+ "args": [
13544
+ {
13545
+ "name": "symbol",
13546
+ "type": "str",
13547
+ "required": true,
13548
+ "positional": true,
13549
+ "help": "Stock symbol, e.g. SH600519, AAPL, or 00700"
13550
+ },
13551
+ {
13552
+ "name": "limit",
13553
+ "type": "int",
13554
+ "default": 20,
13555
+ "required": false,
13556
+ "help": "Number of discussion posts to return"
13557
+ }
13558
+ ],
13559
+ "columns": [
13560
+ "author",
13561
+ "text",
13562
+ "likes",
13563
+ "replies",
13564
+ "retweets",
13565
+ "created_at",
13566
+ "url"
13567
+ ],
13568
+ "type": "ts",
13569
+ "modulePath": "xueqiu/comments.js",
13570
+ "navigateBefore": false
13571
+ },
12579
13572
  {
12580
13573
  "site": "xueqiu",
12581
13574
  "name": "earnings-date",
@@ -13910,5 +14903,174 @@
13910
14903
  }
13911
14904
  ],
13912
14905
  "type": "yaml"
14906
+ },
14907
+ {
14908
+ "site": "zsxq",
14909
+ "name": "dynamics",
14910
+ "description": "获取所有星球的最新动态",
14911
+ "domain": "wx.zsxq.com",
14912
+ "strategy": "cookie",
14913
+ "browser": true,
14914
+ "args": [
14915
+ {
14916
+ "name": "limit",
14917
+ "type": "int",
14918
+ "default": 20,
14919
+ "required": false,
14920
+ "help": "Number of dynamics to return"
14921
+ }
14922
+ ],
14923
+ "columns": [
14924
+ "time",
14925
+ "group",
14926
+ "author",
14927
+ "title",
14928
+ "comments",
14929
+ "likes",
14930
+ "url"
14931
+ ],
14932
+ "type": "ts",
14933
+ "modulePath": "zsxq/dynamics.js"
14934
+ },
14935
+ {
14936
+ "site": "zsxq",
14937
+ "name": "groups",
14938
+ "description": "列出当前账号加入的星球",
14939
+ "domain": "wx.zsxq.com",
14940
+ "strategy": "cookie",
14941
+ "browser": true,
14942
+ "args": [
14943
+ {
14944
+ "name": "limit",
14945
+ "type": "int",
14946
+ "default": 50,
14947
+ "required": false,
14948
+ "help": "Number of groups to return"
14949
+ }
14950
+ ],
14951
+ "columns": [
14952
+ "group_id",
14953
+ "name",
14954
+ "category",
14955
+ "members",
14956
+ "topics",
14957
+ "joined_at",
14958
+ "url"
14959
+ ],
14960
+ "type": "ts",
14961
+ "modulePath": "zsxq/groups.js"
14962
+ },
14963
+ {
14964
+ "site": "zsxq",
14965
+ "name": "search",
14966
+ "description": "搜索星球内容",
14967
+ "domain": "wx.zsxq.com",
14968
+ "strategy": "cookie",
14969
+ "browser": true,
14970
+ "args": [
14971
+ {
14972
+ "name": "keyword",
14973
+ "type": "str",
14974
+ "required": true,
14975
+ "positional": true,
14976
+ "help": "Search keyword"
14977
+ },
14978
+ {
14979
+ "name": "limit",
14980
+ "type": "int",
14981
+ "default": 20,
14982
+ "required": false,
14983
+ "help": "Number of results to return"
14984
+ },
14985
+ {
14986
+ "name": "group_id",
14987
+ "type": "str",
14988
+ "required": false,
14989
+ "help": "Optional group id; defaults to the active group in Chrome"
14990
+ }
14991
+ ],
14992
+ "columns": [
14993
+ "topic_id",
14994
+ "group",
14995
+ "author",
14996
+ "title",
14997
+ "comments",
14998
+ "likes",
14999
+ "time",
15000
+ "url"
15001
+ ],
15002
+ "type": "ts",
15003
+ "modulePath": "zsxq/search.js"
15004
+ },
15005
+ {
15006
+ "site": "zsxq",
15007
+ "name": "topic",
15008
+ "description": "获取单个话题详情和评论",
15009
+ "domain": "wx.zsxq.com",
15010
+ "strategy": "cookie",
15011
+ "browser": true,
15012
+ "args": [
15013
+ {
15014
+ "name": "id",
15015
+ "type": "str",
15016
+ "required": true,
15017
+ "positional": true,
15018
+ "help": "Topic ID"
15019
+ },
15020
+ {
15021
+ "name": "comment_limit",
15022
+ "type": "int",
15023
+ "default": 20,
15024
+ "required": false,
15025
+ "help": "Number of comments to fetch"
15026
+ }
15027
+ ],
15028
+ "columns": [
15029
+ "topic_id",
15030
+ "type",
15031
+ "author",
15032
+ "title",
15033
+ "comments",
15034
+ "likes",
15035
+ "comment_preview",
15036
+ "url"
15037
+ ],
15038
+ "type": "ts",
15039
+ "modulePath": "zsxq/topic.js"
15040
+ },
15041
+ {
15042
+ "site": "zsxq",
15043
+ "name": "topics",
15044
+ "description": "获取当前星球的话题列表",
15045
+ "domain": "wx.zsxq.com",
15046
+ "strategy": "cookie",
15047
+ "browser": true,
15048
+ "args": [
15049
+ {
15050
+ "name": "limit",
15051
+ "type": "int",
15052
+ "default": 20,
15053
+ "required": false,
15054
+ "help": "Number of topics to return"
15055
+ },
15056
+ {
15057
+ "name": "group_id",
15058
+ "type": "str",
15059
+ "required": false,
15060
+ "help": "Optional group id; defaults to the active group in Chrome"
15061
+ }
15062
+ ],
15063
+ "columns": [
15064
+ "topic_id",
15065
+ "type",
15066
+ "author",
15067
+ "title",
15068
+ "comments",
15069
+ "likes",
15070
+ "time",
15071
+ "url"
15072
+ ],
15073
+ "type": "ts",
15074
+ "modulePath": "zsxq/topics.js"
13913
15075
  }
13914
15076
  ]