cortico-world-mosey 1.4.2 → 1.5.2
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.
- package/CHANGELOG.md +72 -0
- package/README.md +351 -347
- package/describe.json +6 -5
- package/package.json +1 -1
- package/src/ENV_PROMPT.md +14 -1
- package/src/bilibili.js +47 -11
- package/src/config.js +62 -8
- package/src/douyin.js +2506 -1196
- package/src/policy.js +88 -20
- package/src/store.js +6 -0
- package/src/tools.js +3 -3
- package/src/util.js +15 -0
- package/src/world.js +358 -24
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,77 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
## 1.5.2
|
|
4
|
+
|
|
5
|
+
- **修掉「@ 两次」**:动态里出现 `@小月月 … @小月月还在玩` 不是延迟,是正文本身已经写了一段 `@昵称`,发的时候又按 `mention_owner` 前置了一个真 @。现在真 @ 之前会先把正文里自带的 `@昵称` 剥掉(B站动态、B站评论、抖音评论三处都修);正文如果只有 `@昵称`、剥完为空,就不前置,靠 B站的 `at_name_to_mid` 把正文里那个变成真 @。提示词里也写死了:正文不要自己写 @,开关用 `mention_owner`。
|
|
6
|
+
- **三项固定等待压到安全下限**(其余一律不动,打字、发布回执、评论状态确认、@ 面板轮询都保持原样):
|
|
7
|
+
- 私信去抖 120ms → **40ms**:这个窗口是压「一条消息触发的多次 DOM 抖动」,不是压人手连发的间隔,40ms 够合成一次,再低容易出现同一句叫两次。
|
|
8
|
+
- 发送后查输入框 60ms → **25ms**:平均省 35ms,最坏上限仍约 600ms。
|
|
9
|
+
- 回主人私信的节奏闸 4 秒 → **0.5 秒**:只盖住一次发送本身的耗时,纯粹防重发。
|
|
10
|
+
- 私信端到端「消息到 DOM → 推给她」从 318ms 降到 **约 240ms**;发出去仍然在 1 秒内。再往下就只剩模型自己的 3~8 秒和抖音页面加载,插件这边没有余量了。
|
|
11
|
+
|
|
12
|
+
## 1.5.1
|
|
13
|
+
|
|
14
|
+
- **评论从「一两分钟」降到「几秒」,根因是一个 90 秒的节奏闸算漏了「主人点单」**
|
|
15
|
+
- 以前 `stroll_act` 走的是「她自己出门」的节奏:任何一次写操作之后 **90 秒**内不许再动。而她回你一句私信也算一次写操作——于是「你说话 → 她回一句 → 你说去评论」必然撞上 `TOO_FAST`,只能干等一分半再试。这就是「每次让她评论都要等一两分钟」的真正原因,跟抖音本身没关系。
|
|
16
|
+
- 现在分三档:回主人私信 4 秒(只看私信那条线)、主人当场点单 1.5 秒(只防连点)、她自己出门 20 秒。主人近 3 分钟说过话、或者不在自己出门的窗口里,都算「主人点单」。
|
|
17
|
+
- 私信不再占公开动作的节奏位,两个平台也各算各的(抖音限流不会连带卡住 B站)。
|
|
18
|
+
- **抖音评论走接口直发:8 秒 → 1.3 秒**
|
|
19
|
+
- 实测抖音页面自己的发布接口(`/aweme/v1/web/comment/publish`)在站内 `fetch` 不需要额外签名。现在不带 @ 的评论直接调它:打开视频页 **0.93s** + 接口往返 **0.32s**,出 cid 就走。
|
|
20
|
+
- 以前那条「点开评论框 → 等抖音 hydrate → 打字 → 点发送」的路还在,但降级成兜底(接口报错才走)。带 `mention_owner` 的评论仍然走它——@ 是编辑器插的 chip,接口拼 `text_extra` 拼错了会变成一条纯文本「@昵称」,看起来提到了、其实没通知人。
|
|
21
|
+
- 顺带把评论状态确认从 4.1 秒压到 1.1 秒(回执里已经是确定状态就不再查)。
|
|
22
|
+
- **风控不再挡人**(`设置 → 摸鱼 → 风控拦截力度`,默认「不拦」)
|
|
23
|
+
- 以前撞上 `-509 操作频繁` 会全局暂停 30 分钟~48 小时,连你当场让它做的事一起停——你看到的「评论发不出去」「私信也不回了」有一半是它造成的。
|
|
24
|
+
- 现在默认 **off**:只记一笔,不暂停任何动作。平台真发不出去会当场报错,她如实告诉你,还能立刻重试。
|
|
25
|
+
- `light`:只有出现短信验证码/封禁这种「再试也没用」的才停 30 分钟。`strict`:保留旧的长冷却。你自己拉的「手刹」(`stroll policy pause`)始终有效。
|
|
26
|
+
- **私信再快 0.3 秒**:合并窗口 250ms → 120ms,打字 24ms/字 → 8ms/字,发送后按 60ms 轮询输入框是否清空。
|
|
27
|
+
- 提速踩过的坑记一笔:把整页文本检查从 `innerText` 换成 `textContent` 会读到 `<script>` 里的打包代码,里面本来就有 `verify`/`captcha` 字样——实测每一条正常视频都会被误判成「弹验证」。已改回 `innerText`,并且合并成一次调用。
|
|
28
|
+
|
|
29
|
+
## 1.5.0
|
|
30
|
+
|
|
31
|
+
- **私信从「一两分钟」压到「几秒」:抖音改成事件驱动,不再轮询**。以前是每 30 秒查一次会话列表,最坏要等 30 秒才知道你发了消息。现在单独开一个后台标签页停在**你那个会话**上,页面里的 `MutationObserver` 盯着消息列表——抖音自己的长连接一更新 DOM,这边就回调:
|
|
32
|
+
- 实测「DOM 变化 → 页面回调」**124ms**;加 250ms 合并窗口(连发两句只叫一次),从新消息进 DOM 到推给她**424ms**,读一次消息 **4ms**(以前要点头像进会话,光固定停顿就 2.4 秒)
|
|
33
|
+
- 这条路**零点击、零接口请求**,所以比以前更不容易招 -509(点击会话正是限流的来源)
|
|
34
|
+
- 回私信也走这条已经打开的会话:不跳转、不点会话,打字 24ms/字,发出去 1 秒内
|
|
35
|
+
- 轮询退化成兜底(默认 5 秒,观察器在线时只做 60 秒一次的对账),观察器掉了会自动重挂
|
|
36
|
+
- 第一次建这个页要 5 秒左右(开页 + 点进你的会话),之后一直热着;登录窗/一起看期间不建,避免多出一个可见标签页
|
|
37
|
+
- **评论快了一截**:`goto` 之后的固定 2.2-3.6 秒 + 3.8 秒(共 6-7 秒)换成「等评论区骨架 / 等编辑器挂载」的真事件;打字从 70-120ms/字降到 22-32ms/字(23 个字 0.75 秒);发送后不再死等 1.2 + 2.4 + 2.5 秒,改成轮询「输入框清空 / 发布回执」;评论状态确认从「睡 2.5 秒 + 还在审核就再睡 7 秒」改成 0.6/0.5/1/2 秒递进查询。一条评论的准备时间从 **~17 秒降到 ~10 秒**,已经在看的视频只要 2-3 秒
|
|
38
|
+
- **修:视频页「评论框点不开」**。实测视频页的 `#comment-input-container` 有尺寸、也点了,但编辑器就是不挂载——**必须真的点在那行「留下你的精彩评论吧」上**,而且页面 hydrate 完(4-5 秒)之前点它没反应。现在不设固定 sleep:点一下 → 看编辑器上来没有 → 没有就再点,谁快谁慢都自适应(图文页的两段式展开也并进同一个循环)
|
|
39
|
+
- **修:登录提示浮层挡住会话点击**。「是否保存登录信息?」这类浮层盖在会话列表上会把点击吃掉,现在建私信页时先清掉;会话列表是「先骨架后填名字」,改成等**这一条**出现名字再点,不再误报 `NO_THREAD`
|
|
40
|
+
- 私信推送的文案也改了:明确要求「一两句、十几个字、别先查 status/feed」,先发出去再细说
|
|
41
|
+
|
|
42
|
+
## 1.4.3
|
|
43
|
+
|
|
44
|
+
- **修:图文(note)动态「显示不出评论框」**。图文页的评论是两段惰性的:`#comment-input-container` 在 note 页里 rect 全 0(不是真输入框),要先点评论图标展开侧栏,再点「留下你的精彩评论吧」提示条,真正的 Draft 编辑器才挂载。另外 note 页的发送按钮不在 `#comment-input-container` 里(容器只有 class),之前既找不到输入框也点不到发送。现在 `openCommentEditor` 走「点图标 → 点提示条 → 找编辑器」两段式展开,发送改成 **Enter 优先**(两个页面都实测有效),没发出去再退回点发送图标;`ensureVideo` 同时认 `/video/` 和 `/note/`,不再在 note 页反复误判重新跳转。实测图文评论发出去 `status=1` 公开可见
|
|
45
|
+
- **修:一次 -509 就把整个世界停 48 小时,连主人的私信都不回**。`-509 请求过于频繁` 是最常见的软限流,平台几分钟到半小时就恢复,但旧逻辑按 `riskPauseHours`(默认 48)一刀切,而且暂停期间**私信监听直接 `return`**——表现就是「她看得到私信但半天不回」。现在:
|
|
46
|
+
- 频率类(-509/429/频繁)单独分级:30 分钟 → 连击 2 小时 → 6 小时封顶;验证码/封禁类才用 12/24/48 小时
|
|
47
|
+
- 给主人的私信(`free`)**不受风险暂停拦截**:冷却挡的是她自己出门互动,不该连主人的话都不回
|
|
48
|
+
- 私信监听按软/硬风险区分:软限流期间照常监听(读页面不写东西),只有验证码/封禁才全停
|
|
49
|
+
- **修:私信监听太「用力」,自己招来 -509**。以前每 20 秒都点开会话读全文。现在先读会话列表那一行预览(**零点击**),预览没变直接返回缓存,变了才点开——实测第二次起每次 **0.0 秒**。回私信也不再每次整页重开:已经开着这个会话就直接输入,热态回复 **2.4 秒**(原来十几秒)。轮询默认从 20 秒放宽到 30 秒(设置里可调)
|
|
50
|
+
- **新增:你在抖音/B站发私信,她会马上回**。以前只有她「自己出门」时才看得到私信,表现就是发了好几句、半天没动静,最后只回一条。现在后台按 `设置 → 私信 → 多久看一次私信`(默认 30 秒)轮询两边的会话,一出现主人说的新话就推一条 **interrupt** 事件把她叫起来(宿主不认这个值会依次退到 `flush` / `debounce`),并在推送里带上**连着的那几句原文 + 分享卡链接**
|
|
51
|
+
- B站走 HTTP(几十毫秒);抖音要读聊天页 DOM,所以监听期间**后台页面保持常驻**(`keepWarm`),不再反复冷启动浏览器——冷启动一次要十几秒,那段时间的消息就接不住
|
|
52
|
+
- 私信主人**不再排队等批准**:本来就只有主人能收到,等批准的话「一发就回」等于空话(`dry_run` 模式下仍然只出草稿)
|
|
53
|
+
- 回私信走「聊天页直接回」的快路径,比去对方主页点「私信」快十几秒;没有会话才回退到主页
|
|
54
|
+
- **修:连发好几条只收到一条**。原因是只读了会话列表里那一行预览(就是最后一句)。现在 `inbox` 的 `recent` 读最近十几句,并额外给 `pending`(末尾连着几句是主人说的)和 `said`(这几句拼起来);B站私信也改成用 `fetch_session_msgs` 把末尾连着几句一起读
|
|
55
|
+
- **修:私信里分享的图文/视频「链接取不出来」**。抖音会话里的分享卡 (`MessageItemShareAweme`) 在 DOM 里只有封面图和作者名,没有链接。现在从消息节点的 React props 里取 `parsedContent`(原始消息体),拿到 `itemId` 和标题,拼成规范地址:图集用 `/note/`、视频用 `/video/`。名片分享拼成 `/user/<sec_uid>`。实测主人的分享卡读出来是 `https://www.douyin.com/note/7267081258470034751`
|
|
56
|
+
- **修:读不到「谁说的」**。方向判断改成看祖先有没有 `isFromMe`(DOM 自带),不再按左右位置猜;图片消息以前是空文本被过滤掉,现在记成 `[图片×N]`
|
|
57
|
+
- **修:抖音评论 @ 人点在「候选」上但不算数**。实测面板固定是 `.atBox-outside-container`,每项 `.QLIVVPgY`(头像 + `span.lgAE_oZa` 昵称),只有插成 `douyin_mention_word` chip 才会通知对方。现在的做法:一次敲「@+完整昵称」把候选搜窄 → 精确对上昵称才动手(第一项按回车,其余用真实鼠标点)→ 校验 chip。**对不上人就退化成纯文本并清干净,绝不按回车**(面板没开时回车 = 直接把半句话发出去)
|
|
58
|
+
- **新增:评论发没发出去、@ 到底成没成,都有实据**。发布评论的接口会把刚发的这条原样返回(`cid` / `status` / `text_extra`),现在直接截这个响应;再用 `insert_ids=<cid>` 查一次最终状态:`1` 公开、`2` 只有自己看得见、`7` 审核中。回执里新增 `cid` / `status` / `visible` / `note`
|
|
59
|
+
- 实测踩到的坑:同一条视频、同一个号,评论里 @ 别人 → 正常公开;@ 主人 → `status=2`,游客视角看不到、也收不到通知。这是对方「谁可以 @ 我」设成了「只有关注的人」之类的隐私限制,不是代码问题——所以现在会把原因写进 `note`,让她改成私信发链接,而不是嘴硬说「我 @ 你了」
|
|
60
|
+
- **修:抖音私信「只能发、看不到回复」**。两个原因叠在一起:
|
|
61
|
+
- 会话卡片按行号取内容,但实测第三行是 **「2小时内在线」** 这个在线状态,不是最后一句。所以 `text` 一直是「2小时内在线」,等于看不见主人回了什么。现在按 class 取真正的预览(`ConversationItemDesc` 里非 `onlineStatus` 的那个),并把未读角标从预览里剥掉
|
|
62
|
+
- 读对话时取了**最旧**的几条:抖音消息列表 DOM 是最新在前(index 0 = 最后一句),`slice(-n)` 拿到的是「你们已互相关注」这种开场白。现在取前 N 条再翻回时间顺序,并滚到底把最新消息挂上来
|
|
63
|
+
- 新增 `recent`(最近 6 句,带 `from: them/me`)和 `lastFromThem`:她能分清最后一句是主人说的还是自己说的,不会再「看不到回复」
|
|
64
|
+
- 顺带:会话标题的 class 在有未读时会连时间一起包进来(`小月月一直在玩 刚刚`),现在昵称只取第一行
|
|
65
|
+
- **修:B站评论 @ 不了人**。以前只在正文里拼一个 `@昵称`,那只是**纯文本**——B站不会真的提到人、也不会发通知(`members` 一直是空)。现在随请求带上 `at_name_to_mid`(`{"昵称": mid}`),实测发布后 `members` 里有对方、`mentioned: true`。判断也改成发布后回查一次评论列表(add 接口的响应不一定带 members)
|
|
66
|
+
- **修:「网页经常退出或中断」**。查到四个来源,都会让正在用的页面被关掉:
|
|
67
|
+
- **自动收窗的定时器会打断正在进行的操作**。`scheduleClose(60)` 排下去之后,下一次操作进来不会取消它;只要这轮操作超过剩余时间,页面就在中途被关,表现就是「网页突然退出/操作中断」。现在所有操作都走一个 `busy` 计数,操作期间定时器到点只顺延、不关页
|
|
68
|
+
- **浏览器进程用完不退出**:`closePage()` 只关当前标签页,`launchPersistentContext` 自带那个 `about:blank` 永远没人关,于是 msedge 常驻(实测挂了一个多小时、十几个进程),下次启动还要抢 profile。现在后台模式用完直接关整个 context,空页也复用不另开
|
|
69
|
+
- **扫码登录窗会被误关**:`launch()` 内部的 `close()` 会把 `holdOpen` 清掉,登录窗开着时只要来一次 inbox/feed,60 秒后就被自动关掉(看起来就是「网页闪一下没了」)。现在 launch 之后重新挂住;五分钟没扫完主动收窗,不留一个窗口在桌面上
|
|
70
|
+
- **一起看时窗口会被关**:`watchStart` 没挂 `holdOpen`,期间任何动作排的定时器都会把主人正在看的页面关掉。现在一起看期间一律不自动收窗
|
|
71
|
+
- **profile 被残留进程占住时自动清理**:启动失败会先杀掉命令行里带自己 `--user-data-dir` 的残留进程再重试一次(只认自己的 profile,不碰主人的浏览器)
|
|
72
|
+
- **修:面板里回抖音私信一点就说「这条消息已经刷新掉了」**。`inboxCache` 只存了 B站那份,抖音消息没进缓存,按 id 回查当然找不到。现在两边都进缓存,互不覆盖
|
|
73
|
+
- **修:`npm run deploy:local` 可能把安装目录清空**。脚本原来先 `rmSync` 旧目录再 `cpSync`;Node 22 在 Windows 上遇到中文路径时 `cpSync` 会**直接让进程退出(exit 127、没有任何报错)**,结果安装目录只剩一个空的 `src/`。现在改成逐文件复制,并且先拷到临时目录、校验文件数、成功了再 `rename` 换上去——中途失败只会报错,不会破坏已装版本
|
|
74
|
+
|
|
3
75
|
## 1.4.2
|
|
4
76
|
|
|
5
77
|
- **两个私信按钮分平台命名**:「谁找你」右上角从「让她私信我」改成 **「B站私信我」**,和旁边的「抖音私信我」对齐,不用再猜点的是哪个平台
|