koishi-plugin-kkk 3.4.1 → 3.5.0

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 (71) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/assets/web/assets/index-BRROK0vh.js +1 -1
  3. package/config/default_config/app.yaml +4 -6
  4. package/config/default_config/bilibili.yaml +1 -1
  5. package/config/default_config/config.json +2 -2
  6. package/lib/build-metadata.json +10 -0
  7. package/lib/compat/adapter-info.js +333 -0
  8. package/lib/compat/forward-collect.js +57 -4
  9. package/lib/compat/node-karin.js +59 -57
  10. package/lib/compat/sendError.js +27 -0
  11. package/lib/index.js +15 -8
  12. package/lib/karin/apps/help.js +23 -2
  13. package/lib/karin/module/utils/ErrorHandler/render.js +8 -2
  14. package/lib/karin/module/utils/ErrorReport.js +148 -15
  15. package/lib/karin/module/utils/InteractiveGraph.js +164 -0
  16. package/lib/karin/module/utils/InteractiveVideo.js +316 -0
  17. package/lib/karin/module/utils/ParseForward.js +12 -2
  18. package/lib/karin/module/utils/ParseSteps.js +1 -1
  19. package/lib/karin/module/utils/Render/index.js +10 -110
  20. package/lib/karin/module/utils/build-metadata.js +64 -19
  21. package/lib/karin/module/utils/runtime-report.js +16 -4
  22. package/lib/karin/platform/bilibili/bilibili.js +82 -5
  23. package/lib/karin/platform/bilibili/interactive-story.js +463 -0
  24. package/lib/ktr/registry.js +1 -0
  25. package/lib/ktr/template/bilibili/interactive/components/interactive.js +137 -0
  26. package/lib/ktr/template/bilibili/interactive/components/types.js +3 -0
  27. package/lib/ktr/template/bilibili/interactive/index.js +13 -0
  28. package/lib/ktr/template/other/handlerError/components/handlerError.js +1 -1
  29. package/lib/webui.js +40 -18
  30. package/package.json +1 -1
  31. package/scripts/build.mjs +36 -0
  32. package/scripts/patch-webui.mjs +126 -40
  33. package/scripts/probe-edge-cookie.cjs +50 -0
  34. package/scripts/probe-panel-options.cjs +15 -0
  35. package/scripts/probe-schema-options.cjs +12 -0
  36. package/scripts/smoke-adapter-info.cjs +149 -0
  37. package/scripts/smoke-config-schema.cjs +62 -0
  38. package/scripts/smoke-forward-chart.cjs +139 -0
  39. package/scripts/smoke-interactive-card.cjs +87 -0
  40. package/scripts/smoke-interactive-story.cjs +285 -0
  41. package/scripts/smoke-interactive.cjs +298 -0
  42. package/scripts/smoke-onebot-forward.cjs +10 -5
  43. package/scripts/smoke-panel-chart.cjs +92 -0
  44. package/scripts/smoke-parse-forward.cjs +1 -1
  45. package/scripts/smoke-render-path.cjs +44 -55
  46. package/src/compat/adapter-info.ts +346 -0
  47. package/src/compat/forward-collect.ts +69 -4
  48. package/src/compat/node-karin.ts +57 -55
  49. package/src/compat/sendError.ts +26 -0
  50. package/src/index.ts +15 -8
  51. package/src/karin/apps/help.ts +26 -3
  52. package/src/karin/module/utils/ErrorHandler/render.ts +8 -2
  53. package/src/karin/module/utils/ErrorReport.ts +138 -15
  54. package/src/karin/module/utils/InteractiveGraph.ts +199 -0
  55. package/src/karin/module/utils/InteractiveVideo.ts +400 -0
  56. package/src/karin/module/utils/ParseForward.ts +12 -3
  57. package/src/karin/module/utils/ParseSteps.ts +1 -1
  58. package/src/karin/module/utils/Render/index.ts +10 -113
  59. package/src/karin/module/utils/build-metadata.ts +61 -19
  60. package/src/karin/module/utils/runtime-report.ts +16 -4
  61. package/src/karin/platform/bilibili/bilibili.ts +81 -6
  62. package/src/karin/platform/bilibili/interactive-story.ts +519 -0
  63. package/src/karin/types/config/app.ts +7 -15
  64. package/src/karin/types/config/bilibili.ts +1 -1
  65. package/src/ktr/registry.ts +1 -0
  66. package/src/ktr/template/bilibili/interactive/components/interactive.tsx +202 -0
  67. package/src/ktr/template/bilibili/interactive/components/types.ts +37 -0
  68. package/src/ktr/template/bilibili/interactive/index.tsx +15 -0
  69. package/src/ktr/template/other/handlerError/components/handlerError.tsx +4 -1
  70. package/src/webui.ts +38 -16
  71. package/scripts/smoke-shotkit-compat.cjs +0 -102
package/CHANGELOG.md CHANGED
@@ -1,5 +1,95 @@
1
1
  # 更新日志
2
2
 
3
+ ## 3.5.0
4
+
5
+ > 这一版三件事:**B站互动视频能玩了**(能一路选剧情、还能出剧情图)、**合并转发里能单独控制流程图**,
6
+ > 另外把渲染统一成了浏览器 —— **彻底删掉 shotkit 内核**(它在 Windows 上加载不了远程图片,
7
+ > 卡片里的封面、头像一直是空白框)。
8
+
9
+ ### B站互动视频:剧情能选着玩
10
+
11
+ 群里发一条互动视频的链接,机器人照常把视频和卡片发出来,然后**一段一段问你怎么选**:
12
+
13
+ - QQ 官方机器人上是按钮(点一下就行;最后一个按钮固定是「渲染流程图」);
14
+ 其它适配器发纯文字,一行一个选项(回复字母、数字,或者直接回选项原文都认)。
15
+ - 只有第一组选项带标题和玩法说明,之后只发选项本身,不会越聊越长;发新一条时会撤回上一条选项。
16
+ - **认不出的回复不会插话**:群里别人正常聊天、你自己随便说句话,机器人都不会来一句「没听懂」,
17
+ 也不会重发选项,就安静等着。等不到人(180 秒)就收尾:
18
+ 「互动视频先玩到这里~想接着玩就再发一次链接」。
19
+ - 走到结局会撤回最后一条选项,说一句「互动视频走到结局了」,并把结局位置再画一张图。
20
+ - 剧情是**后台跑的**,不会拖慢解析:视频该发还是马上发。
21
+
22
+ **剧情图(流程图)**:把整条剧情画成一张思维导图,有哪几条分支、哪里是结局,一张图看完 ——
23
+ 你走过的分支会加粗高亮(图例写着「高亮的是你已经走过的路」),B站 的默认选项标「默认」;
24
+ 分支太多一次画不完,会注明「剧情太长,图上只画了前半部分分支」。
25
+
26
+ - 开关在 **通用 → 解析时发送的内容 → 流程图**(默认不勾)。不勾也能正常玩剧情,只是不出图。
27
+ - 想随时补一张:QQ 官方是选项按钮里的「渲染流程图」,其它平台回复「渲染流程图」;
28
+ 当前没有进行中的剧情时会提示「现在没有正在进行的互动视频,发一条互动视频链接就能玩」。
29
+ - 只有互动视频有这套玩法,普通视频完全不受影响;接口取不到剧情数据时安静跳过,不会报错刷屏。
30
+ - 顺带修好了面板里「流程图」这个勾选项一直不出现的问题:面板的候选项是打包时写死的,
31
+ 之前的补丁找错了地方、还静默失败 —— 控制台里能看到、面板里没有。现在两边都有。
32
+
33
+ ### 合并转发:流程图可以单独勾
34
+
35
+ - 「合并转发内容」的候选里多了 **流程图**(B站页和通用页各一份):勾了就进聊天记录,
36
+ 不勾就照旧单独发出去 —— 和文字、图片、视频、文件是同一套规则,**不会丢内容**。
37
+ - 抖音 / 快手 / 小红书 的列表里没有这一项:它们没有剧情图,加了也是永远匹配不到的假选项
38
+ (和当初去掉「语音 / markdown」是同一个理由)。
39
+ - 另外堵了一个隐患:剧情图是后台画的,可能比解析结束还晚 —— 以前这种「晚到的内容」会被收进
40
+ 一个已经发完的收集袋,再也没人发出去(表现就是内容凭空消失)。现在解析一结束就关掉袋子,
41
+ 晚到的一律直发。
42
+
43
+ ### 渲染:只用浏览器,删掉 shotkit 内核
44
+
45
+ - 以前「优先渲染器」可以在 **shotkit 内核**(默认)和**浏览器**之间选。内核在 Windows 上
46
+ **加载不了 https 资源** —— 卡片里的远程封面、头像全是空白框;它还会照样去请求这些地址、
47
+ 一直等到超时(实测页面里只要有一个连不上的图片,截图就从 1.5 秒变成 22 秒)。
48
+ - 3.5.0 起**只支持浏览器渲染**:装 koishi-plugin-puppeteer 或同类插件即可。
49
+ 面板里那个「优先渲染器」选项已经撤掉,老配置里的值会被忽略(不用手改)。
50
+ - 没装浏览器渲染服务时会直说「需要安装浏览器渲染服务(koishi-plugin-puppeteer 或同类插件)
51
+ 才能渲染图片」,不再悄悄换内核,也不会给你一张缺图、裂图的卡片。
52
+ - 只对内核有用的那套「摘掉远程图片」处理一并删掉(浏览器本来就能正常加载远程图);
53
+ 以前为内核做的性能降级(全屏噪点层替换、失效字体剔除)保留了下来 —— 对浏览器同样是净赚。
54
+
55
+ ### 出错时的卡片与诊断
56
+
57
+ - **错误卡片终于发得出去**:以前一遇到大报错,卡片会渲染成 2880×40000(45MB)甚至更长,
58
+ 光渲染 20 多秒,而这么大的图 QQ 必然拒收 —— 等于「报错本身也发不出去」。
59
+ 现在日志只留末尾 200 行、每行截断、超长 base64 折起来,卡片稳定在能发出去的尺寸。
60
+ - 卡片上会印 **上报编号 + 详情页地址 + 反馈群**。加群链接以前是拿群号拼的,点开是 404,
61
+ 现在是真的分享链接。
62
+ - 卡片新增「解析库错误诊断」:AMAGI 码 / 平台业务码 / HTTP 状态 / 请求 ID / 实际请求次数 / 耗时,
63
+ 外加平台原文、请求轨迹,以及「这类错误重试有没有用」的判断;报错归到哪个平台也修了
64
+ (以前小红书的报错一律被算成 system)。
65
+ - 卡片上的适配器一栏终于显示**真的适配器名和版本**(取的是实现端,比如 NapCat 自己的版本)——
66
+ 以前读的是 Koishi 的字段,那里压根没有版本号,于是卡片上永远挂着一个空的版本号。
67
+ - 「kkk版本」诊断卡片:多了构建一致性徽章、本版变更(随包带的更新日志),以及一句隐私声明 ——
68
+ 这张图**不采集**账号、主机名、用户目录、网络地址、环境变量、启动参数和适配器凭据;
69
+ 之所以要写清楚,是因为它可能被发到群里。
70
+ - 「kkk更新日志」渲染失败时改发**纯文字**(截断后发送),不再是「什么都看不到,只剩一张错误卡片」。
71
+
72
+ ---
73
+
74
+ ## 3.4.2
75
+
76
+ ### 出错上报的内容更全,也更好看懂
77
+
78
+ - 上报的「来源信息」以前常常是一排「—」:推送任务的会话是合成的,没有群号这些东西。现在改用框架自己的接口补:
79
+ 机器人名、群名(用 bot.getGuild 查出来)、用户名都会显示,卡在哪一步(阶段)也会自动标出来 —— 一眼就知道是谁在哪个群、发的什么。
80
+ - **顺便把配置也传上去了**,复现问题时有依据:你改过的设置、画质、发送内容、推送列表都会带过去。
81
+ 两条硬规矩:**Cookie 一个都不传**(接口库里的 SESSDATA / bili_jct / 抖音那一串整块丢掉),凡是名字像 token / secret / password 的字段一律显示成 ***。
82
+ - **日志只传本插件(kkk)的行**:以前会把整台机器所有插件的日志尾巴都传上去,现在只挑 kkk 相关的,看的人不用再大海捞针。
83
+
84
+ ### 机器人掉线时不再是一句英文报错
85
+
86
+ - 适配器掉线后,机器人的对象还在,但底层连接已经没了 —— 这时推送会让适配器内部炸出一句
87
+ TypeError: this._request is not a function,你只看到一堆英文堆栈。
88
+ 现在会提前拦住,并说清楚:机器人 2092582839 当前不在线(status=0),这条消息发不出去;等它重新上线后下次推送会正常发出。
89
+ - 指定的机器人掉线时**不会偷偷换成另一个机器人发**(那样会串号),只会如实报出来。
90
+
91
+ ---
92
+
3
93
  ## 3.4.1
4
94
 
5
95
  ### 抖音解析失败时的提示看得懂了