publishport-opencli 1.0.28 → 1.0.30

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 (40) hide show
  1. package/cli-manifest.json +1297 -13
  2. package/clis/_shared/publish-controls.js +11 -0
  3. package/clis/douyin/_shared/ai-declaration.js +1 -0
  4. package/clis/douyin/_shared/browser-fetch.js +31 -13
  5. package/clis/douyin/_shared/comments.js +1 -0
  6. package/clis/douyin/_shared/publish-settings.js +1 -0
  7. package/clis/douyin/activities.js +1 -1
  8. package/clis/douyin/collections.js +1 -1
  9. package/clis/douyin/comment-like.js +1 -0
  10. package/clis/douyin/comment.js +1 -0
  11. package/clis/douyin/comments.js +1 -0
  12. package/clis/douyin/draft.js +8 -8
  13. package/clis/douyin/hashtag.js +1 -1
  14. package/clis/douyin/location.js +1 -1
  15. package/clis/douyin/music-categories.js +1 -0
  16. package/clis/douyin/music.js +1 -0
  17. package/clis/douyin/publish-image.js +12 -12
  18. package/clis/douyin/publish.js +9 -8
  19. package/clis/xiaohongshu/_shared/ai-declaration.js +1 -0
  20. package/clis/xiaohongshu/_shared/comment-actions.js +9 -0
  21. package/clis/xiaohongshu/_shared/comment-state.js +1 -0
  22. package/clis/xiaohongshu/_shared/publish-discovery.js +19 -0
  23. package/clis/xiaohongshu/_shared/publish-editors.js +1 -0
  24. package/clis/xiaohongshu/_shared/publish-settings.js +1 -0
  25. package/clis/xiaohongshu/_shared/topics.js +21 -0
  26. package/clis/xiaohongshu/activities.js +1 -0
  27. package/clis/xiaohongshu/collections.js +1 -0
  28. package/clis/xiaohongshu/comment-like.js +1 -0
  29. package/clis/xiaohongshu/comment.js +1 -0
  30. package/clis/xiaohongshu/comments.js +33 -5
  31. package/clis/xiaohongshu/groups.js +1 -0
  32. package/clis/xiaohongshu/location.js +1 -0
  33. package/clis/xiaohongshu/publish-video.js +10 -28
  34. package/clis/xiaohongshu/publish.js +43 -165
  35. package/clis/xiaohongshu/replies.js +1 -0
  36. package/clis/xiaohongshu/reply.js +1 -0
  37. package/clis/xiaohongshu/topics.js +1 -0
  38. package/dist/src/cli.js +27 -25
  39. package/package.json +1 -1
  40. package/skills/opencli-browser/SKILL.md +14 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "publishport-opencli",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": false
@@ -176,15 +176,15 @@ Error envelope always includes `error.code` and `error.message`. Target errors (
176
176
 
177
177
  | command | notes |
178
178
  |---------|-------|
179
- | `browser captcha [selector] [--scale N]` | 抓验证码:整页图 + **只含验证码、放大 N 倍(默认3)的裁剪图** `crop`(存 JPEG,走命令桥回传不超时)。返回 `{selector, prompt, crop, crop_scale, crop_pad, saved, rect_css, ...}`。缺省自动探测常见点选验证码图(mocaptcha / 极验点选等),认不出就显式传 selector。 |
180
- | `browser captcha-click <points> [--in selector] [--crop]` | 按坐标依次点击(顺序即点击顺序),自带**人手鼠标轨迹**(过行为检测关键)。**推荐 `--crop`:坐标就是你看的那张 `crop` 图里的比例(0..1),pad 由工具内部扣除,不用暗算 rect。** 另有 `--px`(截图设备像素)/`--css`(CSS 视口像素)。点完会回读 `after`(验证码是否还在 / 状态文字 / URL)。 |
179
+ | `browser captcha [selector] [--scale N] [--adapter]` | 抓验证码:整页图 + **只含验证码、放大 N 倍(默认3)的裁剪图** `crop`(存 JPEG,走命令桥回传不超时)。返回 `{selector, prompt, crop, crop_scale, crop_pad, saved, rect_css, ...}`。缺省自动探测常见点选验证码图(mocaptcha / 极验点选等),认不出就显式传 selector。 |
180
+ | `browser captcha-click <points> [--in selector] [--crop] [--adapter] [--save path]` | 按坐标依次点击(顺序即点击顺序),自带**人手鼠标轨迹**(过行为检测关键)。**推荐 `--crop`:坐标就是你看的那张 `crop` 图里的比例(0..1),pad 由工具内部扣除,不用暗算 rect。** 另有 `--px`(截图设备像素)/`--css`(CSS 视口像素)。点完会回读 `after`(验证码是否还在 / 状态文字 / URL)。 |
181
181
 
182
182
  闭环步骤:
183
183
 
184
184
  1. `browser <s> captcha` → 拿到 `crop` 裁剪图路径 + `prompt`(要点的字和顺序)。
185
185
  2. **看图**:用 `read_local_file`(PublishPort MCP)或直接读 `crop` 图(只含验证码、已放大,认扭曲字最准)。按 `prompt` 顺序找出每个待点字,读出它**在 crop 图里的比例**(0..1,左上角为 0,0)。注意常有**干扰字**(不在 prompt 里的字),只点 prompt 列的那几个。
186
186
  3. `browser <s> captcha-click --crop --in "<selector>" "x1,y1 x2,y2 ..."` → 一次性依次点上。
187
- 4. 看回读的 `after`:验证码消失 / URL 跳转 = 成功;仍在且 prompt 变了 = 认错刷新了要重来;仍在且 prompt 没变 = 可能漏点,补点。
187
+ 4. 用 `--save /tmp/captcha-after.png` 看点击后的截图:先核对编号和顺序,再按截图坐标点「确认」。`ok: true` 只表示点击完成;验证码消失后还须重新执行原只读查询确认恢复。仍在时先读错误提示,区分等待确认、超时、答错,不盲目补点。
188
188
 
189
189
  ```bash
190
190
  ppcli browser pub captcha --scale 4 # 存 crop 裁剪图 + 返回 prompt
@@ -192,6 +192,17 @@ ppcli browser pub captcha --scale 4 # 存 crop 裁剪图 + 返回 pro
192
192
  ppcli browser pub captcha-click --crop --in ".js-mocaptcha-img" "0.24,0.17 0.69,0.38 0.82,0.36"
193
193
  ```
194
194
 
195
+ 平台适配器弹出验证码时,必须回到原适配器会话,例如(这些命令通过 PublishPort `local_bash` 调用):
196
+
197
+ ```bash
198
+ ppcli browser site:douyin captcha --adapter --save /tmp/douyin-captcha.png
199
+ # read_local_file 打开返回的 crop,按这次题目识别文字、顺序和坐标。
200
+ ppcli browser site:douyin captcha-click --adapter --crop --in 'iframe[src*="/verifycenter/captcha/"]' "<x1,y1 x2,y2 x3,y3>" --save /tmp/douyin-selected.png
201
+ # 从截图核对编号后,以相同坐标系单独点确认按钮,再检查结果。
202
+ ```
203
+
204
+ `--adapter` 仅用于 `captcha` / `captcha-click`,session 必须是 `site:<平台>`,并沿用原命令的 `--profile`。它定位平台适配器原有标签,不要求用户切换当前标签或 bind。抖音跨域 iframe 会整块裁剪,包含题目、图片和确认按钮;`prompt` 可能为空,直接看 `crop` 读题。`--crop` 比例基于整张裁剪图,已经处理视口边缘、缩放和留白,不能混用页面截图坐标。显式选择器失效会报错,不会自动改点其他元素。题目刷新后必须重新截图,旧坐标不能沿用;超时可刷新新题,及时完成点选和确认。验证码操作不会自动重发原评论、点赞等写命令。
205
+
195
206
  提醒:验证码识别靠视觉,扭曲字**可能认错**(尤其岩石/云等低对比背景、生僻复杂字)——背景太乱认不清就点刷新按钮换一张(`.js-mocaptcha-refresh` 之类,刷新不提交、无害,多数会换到干净背景)。别短时间反复猛试同一账号(会抬高风控/被判异常),一两次不过就退回让用户手动点。
196
207
 
197
208
  ### Wait