karin-plugin-kkk 2.27.6 → 2.27.7

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 (82) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +10 -0
  3. package/lib/apps/__ready.js +1 -1
  4. package/lib/apps/admin.js +1 -1
  5. package/lib/apps/help.js +1 -1
  6. package/lib/apps/push.js +1 -1
  7. package/lib/apps/qrlogin.js +1 -1
  8. package/lib/apps/statistics.js +1 -1
  9. package/lib/apps/tools.js +1 -1
  10. package/lib/apps/update.js +1 -1
  11. package/lib/build-metadata.json +5 -5
  12. package/lib/core_chunk/ArticleWork-DMZqDdJt.js +2 -0
  13. package/lib/core_chunk/Comment-CQ0_gjTa.js +2 -0
  14. package/lib/core_chunk/Comment-CdSAgo0q.js +2 -0
  15. package/lib/core_chunk/Comment-DKkpDNGF.js +2 -0
  16. package/lib/core_chunk/{Comment-vmLpukdO.js → Comment-DgJu9Jo7.js} +1 -1
  17. package/lib/core_chunk/{DYNAMIC_TYPE_ARTICLE-RG5B0GYl.js → DYNAMIC_TYPE_ARTICLE-B56zR_R9.js} +1 -1
  18. package/lib/core_chunk/{DYNAMIC_TYPE_AV-BFmgJoig.js → DYNAMIC_TYPE_AV-CRrB44zc.js} +1 -1
  19. package/lib/core_chunk/{DYNAMIC_TYPE_DRAW-Be8d7lCg.js → DYNAMIC_TYPE_DRAW-D2rUQTJ2.js} +1 -1
  20. package/lib/core_chunk/{DYNAMIC_TYPE_FORWARD-SRgseEdb.js → DYNAMIC_TYPE_FORWARD-BRG8ZPEV.js} +1 -1
  21. package/lib/core_chunk/{DYNAMIC_TYPE_LIVE_RCMD-CDBDKK4u.js → DYNAMIC_TYPE_LIVE_RCMD-D7HhziPY.js} +1 -1
  22. package/lib/core_chunk/{DYNAMIC_TYPE_WORD-D_qb-nmj.js → DYNAMIC_TYPE_WORD-DNEp_RRB.js} +1 -1
  23. package/lib/core_chunk/Dynamic-BNC4LDiq.js +2 -0
  24. package/lib/core_chunk/FavoriteList-JLcNBjgp.js +2 -0
  25. package/lib/core_chunk/GlobalStatistics-DocHiyTr.js +2 -0
  26. package/lib/core_chunk/GroupStatistics-DxE6003e.js +2 -0
  27. package/lib/core_chunk/Help-BbdLNLZA.js +2 -0
  28. package/lib/core_chunk/ImageWork-BTlCv3zJ.js +2 -0
  29. package/lib/core_chunk/Live-B97H70Zl.js +2 -0
  30. package/lib/core_chunk/MusicInfo-Gf3lYxpf.js +2 -0
  31. package/lib/core_chunk/RecommendList-ByA44xKH.js +2 -0
  32. package/lib/core_chunk/UserList-B4crgw2C.js +2 -0
  33. package/lib/core_chunk/UserList-Dkk2Lr6m.js +2 -0
  34. package/lib/core_chunk/UserVideoList-CraXJoYi.js +2 -0
  35. package/lib/core_chunk/VersionWarning-BQImq_Uu.js +2 -0
  36. package/lib/core_chunk/VideoWork-DuMhr3Pd.js +2 -0
  37. package/lib/core_chunk/amagiClient-BXuKxS5P.js +2 -0
  38. package/lib/core_chunk/bangumi-C6OzOIkT.js +2 -0
  39. package/lib/core_chunk/changelog-BBAJVaYS.js +2 -0
  40. package/lib/core_chunk/db-CaOiWynk.js +2 -0
  41. package/lib/core_chunk/{amagiClient-DutWjgMV.js → handlerError-9xOD3c4Z.js} +2 -2
  42. package/lib/core_chunk/{main-CH1PySBD.js → main-BSOtY_jl.js} +123 -99
  43. package/lib/core_chunk/{noteInfo-Cc0CdOh6.js → noteInfo-SnQIUxMs.js} +1 -1
  44. package/lib/core_chunk/qrcodeImg-BuLYuLSU.js +2 -0
  45. package/lib/core_chunk/qrcodeImg-DQD_P4es.js +2 -0
  46. package/lib/core_chunk/qrlogin-DEMggG6F.js +2 -0
  47. package/lib/core_chunk/setup-CPESdn8e.js +2 -0
  48. package/lib/core_chunk/template.js +1 -1
  49. package/lib/core_chunk/videoInfo-BDhqCqGB.js +2 -0
  50. package/lib/core_chunk/videoInfo-DDAlCvXi.js +2 -0
  51. package/lib/index.js +1 -1
  52. package/lib/root.js +1 -1
  53. package/lib/web.config.js +1 -1
  54. package/package.json +2 -2
  55. package/lib/core_chunk/ArticleWork-DM-2P7yk.js +0 -2
  56. package/lib/core_chunk/Comment-C7DipcGk.js +0 -2
  57. package/lib/core_chunk/Comment-DyzgsNH4.js +0 -2
  58. package/lib/core_chunk/Comment-_ehzzbCT.js +0 -2
  59. package/lib/core_chunk/Dynamic-C7sZ7_VA.js +0 -2
  60. package/lib/core_chunk/FavoriteList-BKRXkpgr.js +0 -2
  61. package/lib/core_chunk/GlobalStatistics-D5SYUMFx.js +0 -2
  62. package/lib/core_chunk/GroupStatistics-Mkeip-kD.js +0 -2
  63. package/lib/core_chunk/Help-CSQsl-iG.js +0 -2
  64. package/lib/core_chunk/ImageWork-BjlkvEZl.js +0 -2
  65. package/lib/core_chunk/Live-CBi-Jg5R.js +0 -2
  66. package/lib/core_chunk/MusicInfo-CgN5WBVO.js +0 -2
  67. package/lib/core_chunk/RecommendList-CVmqCepV.js +0 -2
  68. package/lib/core_chunk/UserList-BvG2QasY.js +0 -2
  69. package/lib/core_chunk/UserList-CTZhILez.js +0 -2
  70. package/lib/core_chunk/UserVideoList-B7KG12MD.js +0 -2
  71. package/lib/core_chunk/VersionWarning--dZBxhCO.js +0 -2
  72. package/lib/core_chunk/VideoWork-CLCN8U6n.js +0 -2
  73. package/lib/core_chunk/bangumi-U94Tg-9H.js +0 -2
  74. package/lib/core_chunk/changelog-COLIz9yq.js +0 -2
  75. package/lib/core_chunk/db-DQ021gxp.js +0 -2
  76. package/lib/core_chunk/handlerError-CZimBCI0.js +0 -2
  77. package/lib/core_chunk/qrcodeImg-Cwm5rWx0.js +0 -2
  78. package/lib/core_chunk/qrcodeImg-DLK0ebMK.js +0 -2
  79. package/lib/core_chunk/qrlogin-V7NbxsLi.js +0 -2
  80. package/lib/core_chunk/setup-R3MsfOHe.js +0 -2
  81. package/lib/core_chunk/videoInfo-BsvVR1g1.js +0 -2
  82. package/lib/core_chunk/videoInfo-CZIF1cOh.js +0 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,29 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [2.27.7](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.27.6...v2.27.7) (2026-04-07)
6
+
7
+
8
+ ### 🐛 错误修复
9
+
10
+ * **bilibili:** gracefully handle closed comment sections (error code 12061) ([#288](https://github.com/ikenxuan/karin-plugin-kkk/issues/288)) ([48ffa3c](https://github.com/ikenxuan/karin-plugin-kkk/commit/48ffa3c4af75e1d5220a9305bd2146c489d240ce))
11
+
12
+
13
+ ### 📝 文档更新
14
+
15
+ * readme ([fef2dd6](https://github.com/ikenxuan/karin-plugin-kkk/commit/fef2dd63bca137c8a6a43ebcca35824cab02ddd5))
16
+
17
+
18
+ ### 🧰 其他更新
19
+
20
+ * update TypeScript configuration and dependencies ([a4f8368](https://github.com/ikenxuan/karin-plugin-kkk/commit/a4f83680f6db2a82849f470f71bdbb09fcd11913))
21
+
22
+
23
+ ### 💯 细节优化
24
+
25
+ * 1 ([5d3d697](https://github.com/ikenxuan/karin-plugin-kkk/commit/5d3d697f11e075e9e9d39ac4be00b0a126ecfdd6))
26
+ * 更新逻辑 ([eefa307](https://github.com/ikenxuan/karin-plugin-kkk/commit/eefa307e0910bec52987f88d5ded02e895116ed3))
27
+
5
28
  ## [2.27.6](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.27.5...v2.27.6) (2026-04-01)
6
29
 
7
30
 
package/README.md CHANGED
@@ -35,6 +35,16 @@
35
35
  - [KarinJS/Karin](https://github.com/KarinJS/Karin) - 即时通讯应用机器人框架,本项目基于此开发
36
36
  - [ikenxuan/amagi](https://github.com/ikenxuan/amagi) - 封装了本插件中用到接口的 TypeScript 实现
37
37
 
38
+ ## Star History
39
+
40
+ <a href="https://www.star-history.com/?repos=ikenxuan%2Fkarin-plugin-kkk%2Cikenxuan%2Famagi&type=timeline&legend=bottom-right">
41
+ <picture>
42
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/image?repos=ikenxuan/karin-plugin-kkk%2Cikenxuan/amagi&type=timeline&theme=dark&legend=top-left" />
43
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/image?repos=ikenxuan/karin-plugin-kkk%2Cikenxuan/amagi&type=timeline&legend=top-left" />
44
+ <img alt="Star History Chart" src="https://api.star-history.com/image?repos=ikenxuan/karin-plugin-kkk%2Cikenxuan/amagi&type=timeline&legend=top-left" />
45
+ </picture>
46
+ </a>
47
+
38
48
  ## Contributors
39
49
 
40
50
  <a href="https://github.com/ikenxuan/karin-plugin-kkk/graphs/contributors">
@@ -1,2 +1,2 @@
1
- import "../core_chunk/main-CH1PySBD.js";
1
+ import "../core_chunk/main-BSOtY_jl.js";
2
2
  export {};
package/lib/apps/admin.js CHANGED
@@ -1,2 +1,2 @@
1
- import { at as removeOldFiles, it as dylogin, ot as task, rt as biLogin } from "../core_chunk/main-CH1PySBD.js";
1
+ import { at as removeOldFiles, it as dylogin, ot as task, rt as biLogin } from "../core_chunk/main-BSOtY_jl.js";
2
2
  export { biLogin, dylogin, removeOldFiles, task };
package/lib/apps/help.js CHANGED
@@ -1,2 +1,2 @@
1
- import { nt as version, tt as help } from "../core_chunk/main-CH1PySBD.js";
1
+ import { nt as version, tt as help } from "../core_chunk/main-BSOtY_jl.js";
2
2
  export { help, version };
package/lib/apps/push.js CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as setdyPush, J as changeBotID, K as bilibiliPush, Q as setbiliPush, X as douyinPushList, Y as douyinPush, Z as forcePush, et as testDouyinPush, q as bilibiliPushList } from "../core_chunk/main-CH1PySBD.js";
1
+ import { $ as setdyPush, J as changeBotID, K as bilibiliPush, Q as setbiliPush, X as douyinPushList, Y as douyinPush, Z as forcePush, et as testDouyinPush, q as bilibiliPushList } from "../core_chunk/main-BSOtY_jl.js";
2
2
  export { bilibiliPush, bilibiliPushList, changeBotID, douyinPush, douyinPushList, forcePush, setbiliPush, setdyPush, testDouyinPush };
@@ -1,2 +1,2 @@
1
- import { G as qrLogin } from "../core_chunk/main-CH1PySBD.js";
1
+ import { G as qrLogin } from "../core_chunk/main-BSOtY_jl.js";
2
2
  export { qrLogin };
@@ -1,2 +1,2 @@
1
- import { U as globalStatistics, W as groupStatistics } from "../core_chunk/main-CH1PySBD.js";
1
+ import { U as globalStatistics, W as groupStatistics } from "../core_chunk/main-BSOtY_jl.js";
2
2
  export { globalStatistics, groupStatistics };
package/lib/apps/tools.js CHANGED
@@ -1,2 +1,2 @@
1
- import { B as kuaishouAPP, H as xiaohongshuAPP, R as bilibiliAPP, V as prefix, z as douyinAPP } from "../core_chunk/main-CH1PySBD.js";
1
+ import { B as kuaishouAPP, H as xiaohongshuAPP, R as bilibiliAPP, V as prefix, z as douyinAPP } from "../core_chunk/main-BSOtY_jl.js";
2
2
  export { bilibiliAPP, douyinAPP, kuaishouAPP, prefix, xiaohongshuAPP };
@@ -1,2 +1,2 @@
1
- import { F as kkkUpdate, I as kkkUpdateCommand, L as update } from "../core_chunk/main-CH1PySBD.js";
1
+ import { F as kkkUpdate, I as kkkUpdateCommand, L as update } from "../core_chunk/main-BSOtY_jl.js";
2
2
  export { kkkUpdate, kkkUpdateCommand, update };
@@ -1,10 +1,10 @@
1
1
  {
2
- "version": "2.27.6",
3
- "buildTime": "2026-04-01T07:52:57.435Z",
4
- "buildTimestamp": 1775029977436,
2
+ "version": "2.27.7",
3
+ "buildTime": "2026-04-07T08:00:26.452Z",
4
+ "buildTimestamp": 1775548826452,
5
5
  "name": "karin-plugin-kkk",
6
6
  "description": "Karin 的「抖音」「B 站」视频解析/动态推送插件",
7
7
  "homepage": "https://github.com/ikenxuan/karin-plugin-kkk",
8
- "commitHash": "8a70a0e80e8998b54c89a36227d41ce602add7bf",
9
- "shortCommitHash": "8a70a0e8"
8
+ "commitHash": "4afc869559bbc3b10ad12cac0a26ebd68601c2a6",
9
+ "shortCommitHash": "4afc8695"
10
10
  }
@@ -0,0 +1,2 @@
1
+ import { C as DouyinArticleWork } from "./main-BSOtY_jl.js";
2
+ export { DouyinArticleWork, DouyinArticleWork as default };
@@ -0,0 +1,2 @@
1
+ import { P as BilibiliComment } from "./main-BSOtY_jl.js";
2
+ export { BilibiliComment, BilibiliComment as default };
@@ -0,0 +1,2 @@
1
+ import { u as KuaishouComment } from "./main-BSOtY_jl.js";
2
+ export { KuaishouComment, KuaishouComment as default };
@@ -0,0 +1,2 @@
1
+ import { S as DouyinComment } from "./main-BSOtY_jl.js";
2
+ export { DouyinComment, DouyinComment as default };
@@ -1,2 +1,2 @@
1
- import { n as XiaohongshuComment } from "./main-CH1PySBD.js";
1
+ import { n as XiaohongshuComment } from "./main-BSOtY_jl.js";
2
2
  export { XiaohongshuComment, XiaohongshuComment as default };
@@ -1,2 +1,2 @@
1
- import { j as BilibiliArticleDynamic } from "./main-CH1PySBD.js";
1
+ import { j as BilibiliArticleDynamic } from "./main-BSOtY_jl.js";
2
2
  export { BilibiliArticleDynamic, BilibiliArticleDynamic as default };
@@ -1,2 +1,2 @@
1
- import { A as BilibiliVideoDynamic } from "./main-CH1PySBD.js";
1
+ import { A as BilibiliVideoDynamic } from "./main-BSOtY_jl.js";
2
2
  export { BilibiliVideoDynamic, BilibiliVideoDynamic as default };
@@ -1,2 +1,2 @@
1
- import { k as BilibiliDrawDynamic } from "./main-CH1PySBD.js";
1
+ import { k as BilibiliDrawDynamic } from "./main-BSOtY_jl.js";
2
2
  export { BilibiliDrawDynamic, BilibiliDrawDynamic as default };
@@ -1,2 +1,2 @@
1
- import { O as BilibiliForwardDynamic } from "./main-CH1PySBD.js";
1
+ import { O as BilibiliForwardDynamic } from "./main-BSOtY_jl.js";
2
2
  export { BilibiliForwardDynamic, BilibiliForwardDynamic as default };
@@ -1,2 +1,2 @@
1
- import { D as BilibiliLiveDynamic } from "./main-CH1PySBD.js";
1
+ import { D as BilibiliLiveDynamic } from "./main-BSOtY_jl.js";
2
2
  export { BilibiliLiveDynamic, BilibiliLiveDynamic as default };
@@ -1,2 +1,2 @@
1
- import { E as BilibiliWordDynamic } from "./main-CH1PySBD.js";
1
+ import { E as BilibiliWordDynamic } from "./main-BSOtY_jl.js";
2
2
  export { BilibiliWordDynamic, BilibiliWordDynamic as default };
@@ -0,0 +1,2 @@
1
+ import { x as DouyinDynamic } from "./main-BSOtY_jl.js";
2
+ export { DouyinDynamic, DouyinDynamic as default };
@@ -0,0 +1,2 @@
1
+ import { b as DouyinFavoriteList } from "./main-BSOtY_jl.js";
2
+ export { DouyinFavoriteList };
@@ -0,0 +1,2 @@
1
+ import { l as GlobalStatistics } from "./main-BSOtY_jl.js";
2
+ export { GlobalStatistics, GlobalStatistics as default };
@@ -0,0 +1,2 @@
1
+ import { c as GroupStatistics } from "./main-BSOtY_jl.js";
2
+ export { GroupStatistics, GroupStatistics as default };
@@ -0,0 +1,2 @@
1
+ import { s as Help } from "./main-BSOtY_jl.js";
2
+ export { Help, Help as default };
@@ -0,0 +1,2 @@
1
+ import { y as DouyinImageWork } from "./main-BSOtY_jl.js";
2
+ export { DouyinImageWork, DouyinImageWork as default };
@@ -0,0 +1,2 @@
1
+ import { v as DouyinLive } from "./main-BSOtY_jl.js";
2
+ export { DouyinLive, DouyinLive as default };
@@ -0,0 +1,2 @@
1
+ import { _ as DouyinMusicInfo } from "./main-BSOtY_jl.js";
2
+ export { DouyinMusicInfo, DouyinMusicInfo as default };
@@ -0,0 +1,2 @@
1
+ import { g as DouyinRecommendList } from "./main-BSOtY_jl.js";
2
+ export { DouyinRecommendList };
@@ -0,0 +1,2 @@
1
+ import { h as DouyinUserList } from "./main-BSOtY_jl.js";
2
+ export { DouyinUserList as default };
@@ -0,0 +1,2 @@
1
+ import { N as BilibiliUserList } from "./main-BSOtY_jl.js";
2
+ export { BilibiliUserList as default };
@@ -0,0 +1,2 @@
1
+ import { m as DouyinUserVideoList } from "./main-BSOtY_jl.js";
2
+ export { DouyinUserVideoList };
@@ -0,0 +1,2 @@
1
+ import { o as VersionWarning } from "./main-BSOtY_jl.js";
2
+ export { VersionWarning };
@@ -0,0 +1,2 @@
1
+ import { p as DouyinVideoWork } from "./main-BSOtY_jl.js";
2
+ export { DouyinVideoWork, DouyinVideoWork as default };
@@ -0,0 +1,2 @@
1
+ import { Ot as reloadAmagiConfig } from "./main-BSOtY_jl.js";
2
+ export { reloadAmagiConfig };
@@ -0,0 +1,2 @@
1
+ import { M as BangumiBilibili } from "./main-BSOtY_jl.js";
2
+ export { BangumiBilibili, BangumiBilibili as default };
@@ -0,0 +1,2 @@
1
+ import { a as Changelog } from "./main-BSOtY_jl.js";
2
+ export { Changelog, Changelog as default };
@@ -0,0 +1,2 @@
1
+ import { ft as getBilibiliDB, pt as getDouyinDB } from "./main-BSOtY_jl.js";
2
+ export { getBilibiliDB, getDouyinDB };
@@ -1,2 +1,2 @@
1
- import { Dt as reloadAmagiConfig } from "./main-CH1PySBD.js";
2
- export { reloadAmagiConfig };
1
+ import { i as handlerError } from "./main-BSOtY_jl.js";
2
+ export { handlerError as default, handlerError };
@@ -21,7 +21,7 @@ import { snapka } from "@snapka/puppeteer";
21
21
  import { newInjectedPage } from "fingerprint-injector";
22
22
  import express from "node-karin/express";
23
23
  globalThis.__kkkLoadStart ??= process.hrtime.bigint();
24
- import("./setup-R3MsfOHe.js");
24
+ import("./setup-CPESdn8e.js");
25
25
  var resolvePluginRoot = (startUrl) => {
26
26
  let dir = path.dirname(startUrl);
27
27
  for (let i = 0; i < 8; i++) {
@@ -5213,7 +5213,7 @@ var Cfg = class {
5213
5213
  const fileName = path.basename(file, ".yaml");
5214
5214
  if (fileName === "cookies" || fileName === "request") {
5215
5215
  logger.debug(`[Config] 检测到 ${fileName} 配置变化,正在重载 Amagi Client...`);
5216
- import("./amagiClient-DutWjgMV.js").then(({ reloadAmagiConfig }) => {
5216
+ import("./amagiClient-BXuKxS5P.js").then(({ reloadAmagiConfig }) => {
5217
5217
  reloadAmagiConfig();
5218
5218
  }).catch((error) => {
5219
5219
  logger.error(`[Config] 重载 Amagi Client 失败: ${error}`);
@@ -5232,7 +5232,7 @@ var Cfg = class {
5232
5232
  };
5233
5233
  }
5234
5234
  async All() {
5235
- const { getDouyinDB, getBilibiliDB } = await import("./db-DQ021gxp.js");
5235
+ const { getDouyinDB, getBilibiliDB } = await import("./db-CaOiWynk.js");
5236
5236
  const douyinDB = await getDouyinDB();
5237
5237
  const bilibiliDB = await getBilibiliDB();
5238
5238
  const allConfig = {};
@@ -5274,7 +5274,7 @@ var Cfg = class {
5274
5274
  fs.writeFileSync(path, yamlData.toString({ lineWidth: -1 }), "utf8");
5275
5275
  }
5276
5276
  async ModifyPro(name, config, type = "config") {
5277
- const { getDouyinDB, getBilibiliDB } = await import("./db-DQ021gxp.js");
5277
+ const { getDouyinDB, getBilibiliDB } = await import("./db-CaOiWynk.js");
5278
5278
  const douyinDB = await getDouyinDB();
5279
5279
  const bilibiliDB = await getBilibiliDB();
5280
5280
  const filePath = type === "config" ? `${this.dirCfgPath}/${name}.yaml` : `${this.defCfgPath}/${name}.yaml`;
@@ -5379,7 +5379,7 @@ var Cfg = class {
5379
5379
  }
5380
5380
  async syncConfigToDatabase() {
5381
5381
  try {
5382
- const { getDouyinDB, getBilibiliDB } = await import("./db-DQ021gxp.js");
5382
+ const { getDouyinDB, getBilibiliDB } = await import("./db-CaOiWynk.js");
5383
5383
  const douyinDB = await getDouyinDB();
5384
5384
  const bilibiliDB = await getBilibiliDB();
5385
5385
  const pushCfg = this.getYaml("config", "pushlist");
@@ -5494,6 +5494,21 @@ var AmagiBase = class {
5494
5494
  return createProxy(client);
5495
5495
  };
5496
5496
  };
5497
+ var SOFT_ERROR_CODES = { BILIBILI_COMMENTS_DISABLED: 12061 };
5498
+ var softFetch = async (fn, allowedCodes) => {
5499
+ try {
5500
+ return await fn();
5501
+ } catch (err) {
5502
+ if (err instanceof AmagiError && allowedCodes.includes(err.code)) return {
5503
+ success: false,
5504
+ code: err.code,
5505
+ data: err.data,
5506
+ message: err.message,
5507
+ error: err.rawError
5508
+ };
5509
+ throw err;
5510
+ }
5511
+ };
5497
5512
  var createLiveProxy = (getter) => new Proxy({}, { get(_target, prop) {
5498
5513
  const current = getter();
5499
5514
  const value = Reflect.get(current, prop);
@@ -8030,47 +8045,47 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
8030
8045
  switch (baseComponent.id) {
8031
8046
  case "comment": return createComponentConfig(baseComponent, {
8032
8047
  validateData: (data) => data && typeof data.share_url === "string",
8033
- lazyComponent: () => import("./Comment-C7DipcGk.js").then((module) => ({ default: module.DouyinComment }))
8048
+ lazyComponent: () => import("./Comment-DKkpDNGF.js").then((module) => ({ default: module.DouyinComment }))
8034
8049
  });
8035
8050
  case "dynamic": return createComponentConfig(baseComponent, {
8036
8051
  validateData: (data) => data && typeof data.share_url === "string",
8037
- lazyComponent: () => import("./Dynamic-C7sZ7_VA.js").then((module) => ({ default: module.DouyinDynamic }))
8052
+ lazyComponent: () => import("./Dynamic-BNC4LDiq.js").then((module) => ({ default: module.DouyinDynamic }))
8038
8053
  });
8039
8054
  case "video-work": return createComponentConfig(baseComponent, {
8040
8055
  validateData: (data) => data && typeof data.share_url === "string",
8041
- lazyComponent: () => import("./VideoWork-CLCN8U6n.js").then((module) => ({ default: module.DouyinVideoWork }))
8056
+ lazyComponent: () => import("./VideoWork-DuMhr3Pd.js").then((module) => ({ default: module.DouyinVideoWork }))
8042
8057
  });
8043
8058
  case "image-work": return createComponentConfig(baseComponent, {
8044
8059
  validateData: (data) => data && typeof data.share_url === "string",
8045
- lazyComponent: () => import("./ImageWork-BjlkvEZl.js").then((module) => ({ default: module.DouyinImageWork }))
8060
+ lazyComponent: () => import("./ImageWork-BTlCv3zJ.js").then((module) => ({ default: module.DouyinImageWork }))
8046
8061
  });
8047
8062
  case "article-work": return createComponentConfig(baseComponent, {
8048
8063
  validateData: (data) => data && typeof data.share_url === "string",
8049
- lazyComponent: () => import("./ArticleWork-DM-2P7yk.js").then((module) => ({ default: module.DouyinArticleWork }))
8064
+ lazyComponent: () => import("./ArticleWork-DMZqDdJt.js").then((module) => ({ default: module.DouyinArticleWork }))
8050
8065
  });
8051
8066
  case "favorite-list": return createComponentConfig(baseComponent, {
8052
8067
  validateData: (data) => data && typeof data.share_url === "string",
8053
- lazyComponent: () => import("./FavoriteList-BKRXkpgr.js").then((module) => ({ default: module.DouyinFavoriteList }))
8068
+ lazyComponent: () => import("./FavoriteList-JLcNBjgp.js").then((module) => ({ default: module.DouyinFavoriteList }))
8054
8069
  });
8055
8070
  case "recommend-list": return createComponentConfig(baseComponent, {
8056
8071
  validateData: (data) => data && typeof data.share_url === "string",
8057
- lazyComponent: () => import("./RecommendList-CVmqCepV.js").then((module) => ({ default: module.DouyinRecommendList }))
8072
+ lazyComponent: () => import("./RecommendList-ByA44xKH.js").then((module) => ({ default: module.DouyinRecommendList }))
8058
8073
  });
8059
8074
  case "live": return createComponentConfig(baseComponent, {
8060
8075
  validateData: (data) => data && typeof data.share_url === "string",
8061
- lazyComponent: () => import("./Live-CBi-Jg5R.js").then((module) => ({ default: module.DouyinLive }))
8076
+ lazyComponent: () => import("./Live-B97H70Zl.js").then((module) => ({ default: module.DouyinLive }))
8062
8077
  });
8063
8078
  case "musicinfo": return createComponentConfig(baseComponent, {
8064
8079
  validateData: (data) => data && typeof data.share_url === "string",
8065
- lazyComponent: () => import("./MusicInfo-CgN5WBVO.js").then((module) => ({ default: module.DouyinMusicInfo }))
8080
+ lazyComponent: () => import("./MusicInfo-Gf3lYxpf.js").then((module) => ({ default: module.DouyinMusicInfo }))
8066
8081
  });
8067
- case "user_profile": return createComponentConfig(baseComponent, { lazyComponent: () => import("./UserVideoList-B7KG12MD.js").then((module) => ({ default: module.DouyinUserVideoList })) });
8082
+ case "user_profile": return createComponentConfig(baseComponent, { lazyComponent: () => import("./UserVideoList-CraXJoYi.js").then((module) => ({ default: module.DouyinUserVideoList })) });
8068
8083
  case "userlist": return createComponentConfig(baseComponent, {
8069
8084
  validateData: (data) => data && Array.isArray(data.renderOpt),
8070
- lazyComponent: () => import("./UserList-CTZhILez.js").then((module) => ({ default: module.default }))
8085
+ lazyComponent: () => import("./UserList-B4crgw2C.js").then((module) => ({ default: module.default }))
8071
8086
  });
8072
- case "videoInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./videoInfo-BsvVR1g1.js").then((module) => ({ default: module.DouyinVideoInfo })) });
8073
- case "qrcodeImg": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrcodeImg-Cwm5rWx0.js").then((module) => ({ default: module.DouyinQrcodeImg })) });
8087
+ case "videoInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./videoInfo-BDhqCqGB.js").then((module) => ({ default: module.DouyinVideoInfo })) });
8088
+ case "qrcodeImg": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrcodeImg-BuLYuLSU.js").then((module) => ({ default: module.DouyinQrcodeImg })) });
8074
8089
  default: return createComponentConfig(baseComponent);
8075
8090
  }
8076
8091
  });
@@ -8080,42 +8095,42 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
8080
8095
  switch (baseComponent.id) {
8081
8096
  case "comment": return createComponentConfig(baseComponent, {
8082
8097
  validateData: (data) => data && typeof data.share_url === "string",
8083
- lazyComponent: () => import("./Comment-_ehzzbCT.js").then((module) => ({ default: module.BilibiliComment }))
8098
+ lazyComponent: () => import("./Comment-CQ0_gjTa.js").then((module) => ({ default: module.BilibiliComment }))
8084
8099
  });
8085
8100
  case "userlist": return createComponentConfig(baseComponent, {
8086
8101
  validateData: (data) => data && Array.isArray(data.renderOpt),
8087
- lazyComponent: () => import("./UserList-BvG2QasY.js").then((module) => ({ default: module.default }))
8102
+ lazyComponent: () => import("./UserList-Dkk2Lr6m.js").then((module) => ({ default: module.default }))
8088
8103
  });
8089
- case "bangumi": return createComponentConfig(baseComponent, { lazyComponent: () => import("./bangumi-U94Tg-9H.js").then((module) => ({ default: module.default })) });
8104
+ case "bangumi": return createComponentConfig(baseComponent, { lazyComponent: () => import("./bangumi-C6OzOIkT.js").then((module) => ({ default: module.default })) });
8090
8105
  case "dynamic/DYNAMIC_TYPE_DRAW": return createComponentConfig(baseComponent, {
8091
8106
  validateData: (data) => data && typeof data.share_url === "string",
8092
- lazyComponent: () => import("./DYNAMIC_TYPE_DRAW-Be8d7lCg.js").then((module) => ({ default: module.BilibiliDrawDynamic }))
8107
+ lazyComponent: () => import("./DYNAMIC_TYPE_DRAW-D2rUQTJ2.js").then((module) => ({ default: module.BilibiliDrawDynamic }))
8093
8108
  });
8094
8109
  case "dynamic/DYNAMIC_TYPE_WORD": return createComponentConfig(baseComponent, {
8095
8110
  validateData: (data) => data && typeof data.share_url === "string",
8096
- lazyComponent: () => import("./DYNAMIC_TYPE_WORD-D_qb-nmj.js").then((module) => ({ default: module.BilibiliWordDynamic }))
8111
+ lazyComponent: () => import("./DYNAMIC_TYPE_WORD-DNEp_RRB.js").then((module) => ({ default: module.BilibiliWordDynamic }))
8097
8112
  });
8098
8113
  case "dynamic/DYNAMIC_TYPE_AV": return createComponentConfig(baseComponent, {
8099
8114
  validateData: (data) => data && typeof data.share_url === "string",
8100
- lazyComponent: () => import("./DYNAMIC_TYPE_AV-BFmgJoig.js").then((module) => ({ default: module.BilibiliVideoDynamic }))
8115
+ lazyComponent: () => import("./DYNAMIC_TYPE_AV-CRrB44zc.js").then((module) => ({ default: module.BilibiliVideoDynamic }))
8101
8116
  });
8102
8117
  case "dynamic/DYNAMIC_TYPE_FORWARD": return createComponentConfig(baseComponent, {
8103
8118
  validateData: (data) => data && typeof data.share_url === "string",
8104
- lazyComponent: () => import("./DYNAMIC_TYPE_FORWARD-SRgseEdb.js").then((module) => ({ default: module.BilibiliForwardDynamic }))
8119
+ lazyComponent: () => import("./DYNAMIC_TYPE_FORWARD-BRG8ZPEV.js").then((module) => ({ default: module.BilibiliForwardDynamic }))
8105
8120
  });
8106
8121
  case "dynamic/DYNAMIC_TYPE_LIVE_RCMD": return createComponentConfig(baseComponent, {
8107
8122
  validateData: (data) => data && typeof data.share_url === "string",
8108
- lazyComponent: () => import("./DYNAMIC_TYPE_LIVE_RCMD-CDBDKK4u.js").then((module) => ({ default: module.BilibiliLiveDynamic }))
8123
+ lazyComponent: () => import("./DYNAMIC_TYPE_LIVE_RCMD-D7HhziPY.js").then((module) => ({ default: module.BilibiliLiveDynamic }))
8109
8124
  });
8110
8125
  case "dynamic/DYNAMIC_TYPE_WORD": return createComponentConfig(baseComponent, { validateData: (data) => data && typeof data.share_url === "string" });
8111
- case "dynamic/DYNAMIC_TYPE_ARTICLE": return createComponentConfig(baseComponent, { lazyComponent: () => import("./DYNAMIC_TYPE_ARTICLE-RG5B0GYl.js").then((module) => ({ default: module.BilibiliArticleDynamic })) });
8126
+ case "dynamic/DYNAMIC_TYPE_ARTICLE": return createComponentConfig(baseComponent, { lazyComponent: () => import("./DYNAMIC_TYPE_ARTICLE-B56zR_R9.js").then((module) => ({ default: module.BilibiliArticleDynamic })) });
8112
8127
  case "videoInfo": return createComponentConfig(baseComponent, {
8113
8128
  validateData: (data) => data && typeof data.share_url === "string",
8114
- lazyComponent: () => import("./videoInfo-CZIF1cOh.js").then((module) => ({ default: module.BilibiliVideoInfo }))
8129
+ lazyComponent: () => import("./videoInfo-DDAlCvXi.js").then((module) => ({ default: module.BilibiliVideoInfo }))
8115
8130
  });
8116
8131
  case "qrcodeImg": return createComponentConfig(baseComponent, {
8117
8132
  validateData: (data) => data && typeof data.share_url === "string",
8118
- lazyComponent: () => import("./qrcodeImg-DLK0ebMK.js").then((module) => ({ default: module.BilibiliQrcodeImg }))
8133
+ lazyComponent: () => import("./qrcodeImg-DQD_P4es.js").then((module) => ({ default: module.BilibiliQrcodeImg }))
8119
8134
  });
8120
8135
  default: return createComponentConfig(baseComponent);
8121
8136
  }
@@ -8126,7 +8141,7 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
8126
8141
  switch (baseComponent.id) {
8127
8142
  case "comment": return createComponentConfig(baseComponent, {
8128
8143
  validateData: (data) => data && typeof data.share_url === "string",
8129
- lazyComponent: () => import("./Comment-DyzgsNH4.js").then((module) => ({ default: module.KuaishouComment }))
8144
+ lazyComponent: () => import("./Comment-CdSAgo0q.js").then((module) => ({ default: module.KuaishouComment }))
8130
8145
  });
8131
8146
  default: return createComponentConfig(baseComponent);
8132
8147
  }
@@ -8135,8 +8150,8 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
8135
8150
  case PlatformType.XIAOHONGSHU:
8136
8151
  platform.components = basePlatform.components.map((baseComponent) => {
8137
8152
  switch (baseComponent.id) {
8138
- case "noteInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./noteInfo-Cc0CdOh6.js").then((module) => ({ default: module.XiaohongshuNoteInfo })) });
8139
- case "comment": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Comment-vmLpukdO.js").then((module) => ({ default: module.XiaohongshuComment })) });
8153
+ case "noteInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./noteInfo-SnQIUxMs.js").then((module) => ({ default: module.XiaohongshuNoteInfo })) });
8154
+ case "comment": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Comment-DgJu9Jo7.js").then((module) => ({ default: module.XiaohongshuComment })) });
8140
8155
  default: return createComponentConfig(baseComponent);
8141
8156
  }
8142
8157
  });
@@ -8144,11 +8159,11 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
8144
8159
  case PlatformType.OTHER:
8145
8160
  platform.components = basePlatform.components.map((baseComponent) => {
8146
8161
  switch (baseComponent.id) {
8147
- case "help": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Help-CSQsl-iG.js").then((module) => ({ default: module.default })) });
8148
- case "handlerError": return createComponentConfig(baseComponent, { lazyComponent: () => import("./handlerError-CZimBCI0.js").then((module) => ({ default: module.handlerError })) });
8149
- case "changelog": return createComponentConfig(baseComponent, { lazyComponent: () => import("./changelog-COLIz9yq.js").then((module) => ({ default: module.Changelog })) });
8150
- case "version_warning": return createComponentConfig(baseComponent, { lazyComponent: () => import("./VersionWarning--dZBxhCO.js").then((module) => ({ default: module.VersionWarning })) });
8151
- case "qrlogin": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrlogin-V7NbxsLi.js").then((module) => ({ default: module.QrLogin })) });
8162
+ case "help": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Help-BbdLNLZA.js").then((module) => ({ default: module.default })) });
8163
+ case "handlerError": return createComponentConfig(baseComponent, { lazyComponent: () => import("./handlerError-9xOD3c4Z.js").then((module) => ({ default: module.handlerError })) });
8164
+ case "changelog": return createComponentConfig(baseComponent, { lazyComponent: () => import("./changelog-BBAJVaYS.js").then((module) => ({ default: module.Changelog })) });
8165
+ case "version_warning": return createComponentConfig(baseComponent, { lazyComponent: () => import("./VersionWarning-BQImq_Uu.js").then((module) => ({ default: module.VersionWarning })) });
8166
+ case "qrlogin": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrlogin-DEMggG6F.js").then((module) => ({ default: module.QrLogin })) });
8152
8167
  default: return createComponentConfig(baseComponent);
8153
8168
  }
8154
8169
  });
@@ -8156,8 +8171,8 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
8156
8171
  case PlatformType.STATISTICS:
8157
8172
  platform.components = basePlatform.components.map((baseComponent) => {
8158
8173
  switch (baseComponent.id) {
8159
- case "group": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GroupStatistics-Mkeip-kD.js").then((module) => ({ default: module.GroupStatistics })) });
8160
- case "global": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GlobalStatistics-D5SYUMFx.js").then((module) => ({ default: module.GlobalStatistics })) });
8174
+ case "group": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GroupStatistics-DxE6003e.js").then((module) => ({ default: module.GroupStatistics })) });
8175
+ case "global": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GlobalStatistics-DocHiyTr.js").then((module) => ({ default: module.GlobalStatistics })) });
8161
8176
  default: return createComponentConfig(baseComponent);
8162
8177
  }
8163
8178
  });
@@ -13131,40 +13146,44 @@ var Bilibili = class extends Base {
13131
13146
  videoSize = await getvideosize(correctList.videoList[0].base_url, playUrlData.data.data.dash.audio[0].base_url, infoData.data.data.bvid);
13132
13147
  } else videoSize = (nockData.data.durl[0].size / (1024 * 1024)).toFixed(2);
13133
13148
  if (Config.bilibili.sendContent.some((content) => content === "comment")) {
13134
- const { comments: commentsdata, image_urls } = bilibiliComments((await this.amagi.bilibili.fetcher.fetchComments({
13149
+ const commentsData = await softFetch(() => this.amagi.bilibili.fetcher.fetchComments({
13135
13150
  number: Config.bilibili.numcomment,
13136
13151
  type: 1,
13137
13152
  oid: infoData.data.data.aid.toString(),
13138
13153
  typeMode: "strict"
13139
- })).data, infoData.data.data.owner.mid.toString());
13140
- if (!commentsdata?.length) this.e.reply("这个视频没有评论 ~");
13154
+ }), [SOFT_ERROR_CODES.BILIBILI_COMMENTS_DISABLED]);
13155
+ if (commentsData.code === SOFT_ERROR_CODES.BILIBILI_COMMENTS_DISABLED) this.e.reply("UP主已关闭评论区,无法获取评论");
13141
13156
  else {
13142
- const messageElements = [];
13143
- if (Config.bilibili.commentImageCollection && image_urls.length > 0) {
13144
- for (const [index, v] of image_urls.entries()) {
13145
- const imageUrl = await processImageUrl(v, infoData.data.data.title, index);
13146
- messageElements.push(segment.image(imageUrl));
13157
+ const { comments: commentsdata, image_urls } = bilibiliComments(commentsData.data, infoData.data.data.owner.mid.toString());
13158
+ if (!commentsdata?.length) this.e.reply("这个视频没有评论 ~");
13159
+ else {
13160
+ const messageElements = [];
13161
+ if (Config.bilibili.commentImageCollection && image_urls.length > 0) {
13162
+ for (const [index, v] of image_urls.entries()) {
13163
+ const imageUrl = await processImageUrl(v, infoData.data.data.title, index);
13164
+ messageElements.push(segment.image(imageUrl));
13165
+ }
13166
+ const res = common.makeForward(messageElements, Config.app.fakeForward ? this.e.sender.userId : this.e.bot.account.selfId, Config.app.fakeForward ? this.e.sender.nick : this.e.bot.account.name);
13167
+ await this.e.bot.sendForwardMsg(this.e.contact, res, {
13168
+ source: "评论图片收集",
13169
+ summary: `查看${messageElements.length}张图片`,
13170
+ prompt: "B站评论解析结果",
13171
+ news: [{ text: "点击查看解析结果" }]
13172
+ });
13147
13173
  }
13148
- const res = common.makeForward(messageElements, Config.app.fakeForward ? this.e.sender.userId : this.e.bot.account.selfId, Config.app.fakeForward ? this.e.sender.nick : this.e.bot.account.name);
13149
- await this.e.bot.sendForwardMsg(this.e.contact, res, {
13150
- source: "评论图片收集",
13151
- summary: `查看${messageElements.length}张图片`,
13152
- prompt: "B站评论解析结果",
13153
- news: [{ text: "点击查看解析结果" }]
13174
+ img$1 = await Render(this.e, "bilibili/comment", {
13175
+ Type: "视频",
13176
+ CommentsData: commentsdata,
13177
+ CommentLength: Config.bilibili.realCommentCount ? Count(infoData.data.data.stat.reply) : String(commentsdata.length),
13178
+ share_url: "https://b23.tv/" + infoData.data.data.bvid,
13179
+ Clarity: Config.bilibili.videoQuality !== 0 && Config.bilibili.videoQuality < 64 ? nockData.data.accept_description[nockData.data.accept_description.length - 1] : playUrlData.data.data.accept_description[0],
13180
+ VideoSize: Config.bilibili.videoQuality !== 0 && Config.bilibili.videoQuality < 64 ? Common.formatFileSize((nockData.data.durl[0].size / (1024 * 1024)).toFixed(2)) : Common.formatFileSize(videoSize),
13181
+ ImageLength: 0,
13182
+ shareurl: "https://b23.tv/" + infoData.data.data.bvid,
13183
+ Resolution: Config.bilibili.videoQuality !== 0 && Config.bilibili.videoQuality < 64 ? null : `${playUrlData.data.data.dash.video[0].width} x ${playUrlData.data.data.dash.video[0].height}`
13154
13184
  });
13185
+ this.e.reply(img$1);
13155
13186
  }
13156
- img$1 = await Render(this.e, "bilibili/comment", {
13157
- Type: "视频",
13158
- CommentsData: commentsdata,
13159
- CommentLength: Config.bilibili.realCommentCount ? Count(infoData.data.data.stat.reply) : String(commentsdata.length),
13160
- share_url: "https://b23.tv/" + infoData.data.data.bvid,
13161
- Clarity: Config.bilibili.videoQuality !== 0 && Config.bilibili.videoQuality < 64 ? nockData.data.accept_description[nockData.data.accept_description.length - 1] : playUrlData.data.data.accept_description[0],
13162
- VideoSize: Config.bilibili.videoQuality !== 0 && Config.bilibili.videoQuality < 64 ? Common.formatFileSize((nockData.data.durl[0].size / (1024 * 1024)).toFixed(2)) : Common.formatFileSize(videoSize),
13163
- ImageLength: 0,
13164
- shareurl: "https://b23.tv/" + infoData.data.data.bvid,
13165
- Resolution: Config.bilibili.videoQuality !== 0 && Config.bilibili.videoQuality < 64 ? null : `${playUrlData.data.data.dash.video[0].width} x ${playUrlData.data.data.dash.video[0].height}`
13166
- });
13167
- this.e.reply(img$1);
13168
13187
  }
13169
13188
  }
13170
13189
  if (Config.bilibili.sendContent.some((content) => content === "video")) if (Config.upload.usefilelimit && Number(videoSize) > Number(Config.upload.filelimit) && !Config.upload.compress) this.e.reply(`设定的最大上传大小为 ${Config.upload.filelimit}MB\n当前解析到的视频大小为 ${Number(videoSize)}MB\n视频太大了,还是去B站看吧~`, { reply: true });
@@ -13683,41 +13702,45 @@ var Bilibili = class extends Base {
13683
13702
  }
13684
13703
  }
13685
13704
  if (Config.bilibili.sendContent.some((content) => content === "comment") && dynamicInfo.data.data.item.type !== DynamicType.LIVE_RCMD) {
13686
- const { comments: commentsdata, image_urls } = bilibiliComments((await this.amagi.bilibili.fetcher.fetchComments({
13705
+ const commentsData = await softFetch(() => this.amagi.bilibili.fetcher.fetchComments({
13687
13706
  type: mapping_table(dynamicInfo.data.data.item.type),
13688
13707
  oid: oid(dynamicInfo.data, dynamicInfoCard.data),
13689
13708
  number: Config.bilibili.numcomment,
13690
13709
  typeMode: "strict"
13691
- })).data, dynamicInfo.data.data.item.modules.module_author.mid.toString());
13692
- if (commentsdata && commentsdata.length > 0) {
13693
- if (Config.bilibili.commentImageCollection && image_urls.length > 0) {
13694
- const messageElements = [];
13695
- let title = "bilibili_dynamic";
13696
- if (dynamicInfo.data.data.item.type === DynamicType.DRAW) title = dynamicInfo.data.data.item.modules.module_dynamic.major.opus.title || "bilibili_dynamic";
13697
- else if (dynamicInfo.data.data.item.type === DynamicType.AV) title = dynamicInfo.data.data.item.modules.module_dynamic.major.archive.title || "bilibili_dynamic";
13698
- for (const [index, v] of image_urls.entries()) {
13699
- const imageUrl = await processImageUrl(v, title, index);
13700
- messageElements.push(segment.image(imageUrl));
13710
+ }), [SOFT_ERROR_CODES.BILIBILI_COMMENTS_DISABLED]);
13711
+ if (commentsData.code === SOFT_ERROR_CODES.BILIBILI_COMMENTS_DISABLED) this.e.reply("UP主已关闭评论区,无法获取评论");
13712
+ else {
13713
+ const { comments: commentsdata, image_urls } = bilibiliComments(commentsData.data, dynamicInfo.data.data.item.modules.module_author.mid.toString());
13714
+ if (commentsdata && commentsdata.length > 0) {
13715
+ if (Config.bilibili.commentImageCollection && image_urls.length > 0) {
13716
+ const messageElements = [];
13717
+ let title = "bilibili_dynamic";
13718
+ if (dynamicInfo.data.data.item.type === DynamicType.DRAW) title = dynamicInfo.data.data.item.modules.module_dynamic.major.opus.title || "bilibili_dynamic";
13719
+ else if (dynamicInfo.data.data.item.type === DynamicType.AV) title = dynamicInfo.data.data.item.modules.module_dynamic.major.archive.title || "bilibili_dynamic";
13720
+ for (const [index, v] of image_urls.entries()) {
13721
+ const imageUrl = await processImageUrl(v, title, index);
13722
+ messageElements.push(segment.image(imageUrl));
13723
+ }
13724
+ const res = common.makeForward(messageElements, Config.app.fakeForward ? this.e.sender.userId : this.e.bot.account.selfId, Config.app.fakeForward ? this.e.sender.nick : this.e.bot.account.name);
13725
+ await this.e.bot.sendForwardMsg(this.e.contact, res, {
13726
+ source: "评论图片收集",
13727
+ summary: `查看${messageElements.length}张图片`,
13728
+ prompt: "B站评论解析结果",
13729
+ news: [{ text: "点击查看解析结果" }]
13730
+ });
13701
13731
  }
13702
- const res = common.makeForward(messageElements, Config.app.fakeForward ? this.e.sender.userId : this.e.bot.account.selfId, Config.app.fakeForward ? this.e.sender.nick : this.e.bot.account.name);
13703
- await this.e.bot.sendForwardMsg(this.e.contact, res, {
13704
- source: "评论图片收集",
13705
- summary: `查看${messageElements.length}张图片`,
13706
- prompt: "B站评论解析结果",
13707
- news: [{ text: "点击查看解析结果" }]
13732
+ const img = await Render(this.e, "bilibili/comment", {
13733
+ Type: "动态",
13734
+ CommentsData: commentsdata,
13735
+ CommentLength: String(commentsdata.length),
13736
+ share_url: dynamicInfo.data.data.item.type === DynamicType.AV ? `https://www.bilibili.com/video/${dynamicInfo.data.data.item.modules.module_dynamic.major.archive.bvid}` : `https://t.bilibili.com/${dynamicInfo.data.data.item.id_str}`,
13737
+ ImageLength: dynamicInfo.data.data.item.modules?.module_dynamic?.major?.draw?.items?.length ?? 0,
13738
+ shareurl: "动态分享链接",
13739
+ Resolution: null
13708
13740
  });
13709
- }
13710
- const img = await Render(this.e, "bilibili/comment", {
13711
- Type: "动态",
13712
- CommentsData: commentsdata,
13713
- CommentLength: String(commentsdata.length),
13714
- share_url: dynamicInfo.data.data.item.type === DynamicType.AV ? `https://www.bilibili.com/video/${dynamicInfo.data.data.item.modules.module_dynamic.major.archive.bvid}` : `https://t.bilibili.com/${dynamicInfo.data.data.item.id_str}`,
13715
- ImageLength: dynamicInfo.data.data.item.modules?.module_dynamic?.major?.draw?.items?.length ?? 0,
13716
- shareurl: "动态分享链接",
13717
- Resolution: null
13718
- });
13719
- this.e.reply(img);
13720
- } else this.e.reply("这条动态暂时还没有评论~");
13741
+ this.e.reply(img);
13742
+ } else this.e.reply("这条动态暂时还没有评论~");
13743
+ }
13721
13744
  }
13722
13745
  break;
13723
13746
  }
@@ -19925,11 +19948,12 @@ var handleUpdateHook = wrapWithErrorHandler(async (e) => {
19925
19948
  if (upd.status === "yes") {
19926
19949
  const result = await updatePkg(Root.pluginName);
19927
19950
  if (result.status === "ok") {
19928
- if ((await e.reply(`${Root.pluginName} 更新成功!\n${result.local} -> ${result.remote}\n开始执行重启......`)).messageId) try {
19951
+ const msgResult = await e.reply(`${Root.pluginName} 更新成功!\n${result.local} -> ${result.remote}\n开始执行重启......`);
19952
+ if (msgResult.messageId) try {
19929
19953
  await db.del(UPDATE_MSGID_KEY);
19930
19954
  await db.del(UPDATE_LOCK_KEY);
19931
19955
  } catch {}
19932
- await restart(e.selfId, e.contact, e.messageId);
19956
+ await restart(e.selfId, e.contact, msgResult.messageId);
19933
19957
  } else e.reply(`${Root.pluginName} 更新失败: ${result.data ?? "更新执行失败"}`);
19934
19958
  } else if (upd.status === "no") e.reply("未检测到可更新版本。");
19935
19959
  else e.reply(`${Root.pluginName} 更新失败: ${upd.error?.message ?? String(upd.error)}`);
@@ -33944,7 +33968,7 @@ var Changelog = import_react.memo((props) => {
33944
33968
  className: "text-default-500 text-[1.2em]",
33945
33969
  children: "•"
33946
33970
  }),
33947
- (0, import_jsx_runtime.jsx)("span", { children: "回复" }),
33971
+ (0, import_jsx_runtime.jsx)("span", { children: "引用回复" }),
33948
33972
  (0, import_jsx_runtime.jsx)("span", {
33949
33973
  className: "inline-block text-[1.15em] font-bold text-default-900",
33950
33974
  children: "更新"
@@ -35203,7 +35227,7 @@ var handlerError = (props) => {
35203
35227
  }), (0, import_jsx_runtime.jsx)("p", {
35204
35228
  className: "text-xl",
35205
35229
  style: { color: secondaryColor },
35206
- children: "此图片 + 触发命令"
35230
+ children: "此图片 + 触发命令 + 对应配置(自行脱敏处理)"
35207
35231
  })] })
35208
35232
  ]
35209
35233
  }),
@@ -36031,4 +36055,4 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
36031
36055
  });
36032
36056
  });
36033
36057
  XiaohongshuNoteInfo.displayName = "XiaohongshuNoteInfo";
36034
- export { setdyPush as $, BilibiliVideoDynamic as A, kuaishouAPP as B, DouyinArticleWork as C, amagiClient as Ct, BilibiliLiveDynamic as D, reloadAmagiConfig as Dt, BilibiliWordDynamic as E, kuaishouFetcher as Et, kkkUpdate as F, qrLogin as G, xiaohongshuAPP as H, kkkUpdateCommand as I, changeBotID as J, bilibiliPush as K, update as L, BangumiBilibili as M, BilibiliUserList as N, BilibiliForwardDynamic as O, Root as Ot, BilibiliComment as P, setbiliPush as Q, bilibiliAPP as R, DouyinComment as S, AmagiError as St, BilibiliQrcodeImg as T, douyinFetcher as Tt, globalStatistics as U, prefix as V, groupStatistics as W, douyinPushList as X, douyinPush as Y, forcePush as Z, DouyinMusicInfo as _, DouyinDBBase as _t, Changelog as a, removeOldFiles as at, DouyinFavoriteList as b, renderVideoPreviewPage as bt, GroupStatistics as c, webConfig as ct, DouyinVideoInfo as d, douyinDBInstance as dt, testDouyinPush as et, DouyinQrcodeImg as f, getBilibiliDB as ft, DouyinRecommendList as g, StatisticsDBBase as gt, DouyinUserList as h, initAllDatabases as ht, handlerError as i, dylogin as it, BilibiliArticleDynamic as j, BilibiliDrawDynamic as k, GlobalStatistics as l, bilibiliDBInstance as lt, DouyinUserVideoList as m, getStatisticsDB as mt, XiaohongshuComment as n, version as nt, VersionWarning as o, task as ot, DouyinVideoWork as p, getDouyinDB as pt, bilibiliPushList as q, QrLogin as r, biLogin as rt, Help as s, template_default as st, XiaohongshuNoteInfo as t, help as tt, KuaishouComment as u, cleanOldDynamicCache as ut, DouyinLive as v, BilibiliDBBase as vt, BilibiliVideoInfo as w, bilibiliFetcher as wt, DouyinDynamic as x, AmagiBase as xt, DouyinImageWork as y, reactServerRender as yt, douyinAPP as z };
36058
+ export { setdyPush as $, BilibiliVideoDynamic as A, Root as At, kuaishouAPP as B, DouyinArticleWork as C, SOFT_ERROR_CODES as Ct, BilibiliLiveDynamic as D, kuaishouFetcher as Dt, BilibiliWordDynamic as E, douyinFetcher as Et, kkkUpdate as F, qrLogin as G, xiaohongshuAPP as H, kkkUpdateCommand as I, changeBotID as J, bilibiliPush as K, update as L, BangumiBilibili as M, BilibiliUserList as N, BilibiliForwardDynamic as O, reloadAmagiConfig as Ot, BilibiliComment as P, setbiliPush as Q, bilibiliAPP as R, DouyinComment as S, AmagiError as St, BilibiliQrcodeImg as T, bilibiliFetcher as Tt, globalStatistics as U, prefix as V, groupStatistics as W, douyinPushList as X, douyinPush as Y, forcePush as Z, DouyinMusicInfo as _, DouyinDBBase as _t, Changelog as a, removeOldFiles as at, DouyinFavoriteList as b, renderVideoPreviewPage as bt, GroupStatistics as c, webConfig as ct, DouyinVideoInfo as d, douyinDBInstance as dt, testDouyinPush as et, DouyinQrcodeImg as f, getBilibiliDB as ft, DouyinRecommendList as g, StatisticsDBBase as gt, DouyinUserList as h, initAllDatabases as ht, handlerError as i, dylogin as it, BilibiliArticleDynamic as j, BilibiliDrawDynamic as k, softFetch as kt, GlobalStatistics as l, bilibiliDBInstance as lt, DouyinUserVideoList as m, getStatisticsDB as mt, XiaohongshuComment as n, version as nt, VersionWarning as o, task as ot, DouyinVideoWork as p, getDouyinDB as pt, bilibiliPushList as q, QrLogin as r, biLogin as rt, Help as s, template_default as st, XiaohongshuNoteInfo as t, help as tt, KuaishouComment as u, cleanOldDynamicCache as ut, DouyinLive as v, BilibiliDBBase as vt, BilibiliVideoInfo as w, amagiClient as wt, DouyinDynamic as x, AmagiBase as xt, DouyinImageWork as y, reactServerRender as yt, douyinAPP as z };
@@ -1,2 +1,2 @@
1
- import { t as XiaohongshuNoteInfo } from "./main-CH1PySBD.js";
1
+ import { t as XiaohongshuNoteInfo } from "./main-BSOtY_jl.js";
2
2
  export { XiaohongshuNoteInfo, XiaohongshuNoteInfo as default };
@@ -0,0 +1,2 @@
1
+ import { f as DouyinQrcodeImg } from "./main-BSOtY_jl.js";
2
+ export { DouyinQrcodeImg, DouyinQrcodeImg as default };
@@ -0,0 +1,2 @@
1
+ import { T as BilibiliQrcodeImg } from "./main-BSOtY_jl.js";
2
+ export { BilibiliQrcodeImg, BilibiliQrcodeImg as default };
@@ -0,0 +1,2 @@
1
+ import { r as QrLogin } from "./main-BSOtY_jl.js";
2
+ export { QrLogin, QrLogin as default };
@@ -0,0 +1,2 @@
1
+ import "./main-BSOtY_jl.js";
2
+ export {};
@@ -1,2 +1,2 @@
1
- import { bt as renderVideoPreviewPage, st as template_default, yt as reactServerRender } from "./main-CH1PySBD.js";
1
+ import { bt as renderVideoPreviewPage, st as template_default, yt as reactServerRender } from "./main-BSOtY_jl.js";
2
2
  export { template_default as default, reactServerRender, renderVideoPreviewPage };
@@ -0,0 +1,2 @@
1
+ import { d as DouyinVideoInfo } from "./main-BSOtY_jl.js";
2
+ export { DouyinVideoInfo, DouyinVideoInfo as default };
@@ -0,0 +1,2 @@
1
+ import { w as BilibiliVideoInfo } from "./main-BSOtY_jl.js";
2
+ export { BilibiliVideoInfo, BilibiliVideoInfo as default };
package/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  globalThis.__kkkLoadStart ??= typeof process !== "undefined" && process.hrtime?.bigint ? process.hrtime.bigint() : BigInt(Date.now());
2
- import "./core_chunk/main-CH1PySBD.js";
2
+ import "./core_chunk/main-BSOtY_jl.js";
3
3
  export {};
package/lib/root.js CHANGED
@@ -1,2 +1,2 @@
1
- import { Ot as Root } from "./core_chunk/main-CH1PySBD.js";
1
+ import { At as Root } from "./core_chunk/main-BSOtY_jl.js";
2
2
  export { Root };
package/lib/web.config.js CHANGED
@@ -1,2 +1,2 @@
1
- import { ct as webConfig } from "./core_chunk/main-CH1PySBD.js";
1
+ import { ct as webConfig } from "./core_chunk/main-BSOtY_jl.js";
2
2
  export { webConfig as default, webConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "karin-plugin-kkk",
3
- "version": "2.27.6",
3
+ "version": "2.27.7",
4
4
  "description": "Karin 的「抖音」「B 站」视频解析/动态推送插件",
5
5
  "keywords": [
6
6
  "karin-plugin",
@@ -77,5 +77,5 @@
77
77
  "web": "./lib/web.config.js",
78
78
  "ts-web": "./src/web.config.ts"
79
79
  },
80
- "timestamp": "2026-03-31T15:45:14.153Z"
80
+ "timestamp": "2026-04-01T14:45:23.651Z"
81
81
  }
@@ -1,2 +0,0 @@
1
- import { C as DouyinArticleWork } from "./main-CH1PySBD.js";
2
- export { DouyinArticleWork, DouyinArticleWork as default };
@@ -1,2 +0,0 @@
1
- import { S as DouyinComment } from "./main-CH1PySBD.js";
2
- export { DouyinComment, DouyinComment as default };
@@ -1,2 +0,0 @@
1
- import { u as KuaishouComment } from "./main-CH1PySBD.js";
2
- export { KuaishouComment, KuaishouComment as default };
@@ -1,2 +0,0 @@
1
- import { P as BilibiliComment } from "./main-CH1PySBD.js";
2
- export { BilibiliComment, BilibiliComment as default };
@@ -1,2 +0,0 @@
1
- import { x as DouyinDynamic } from "./main-CH1PySBD.js";
2
- export { DouyinDynamic, DouyinDynamic as default };
@@ -1,2 +0,0 @@
1
- import { b as DouyinFavoriteList } from "./main-CH1PySBD.js";
2
- export { DouyinFavoriteList };
@@ -1,2 +0,0 @@
1
- import { l as GlobalStatistics } from "./main-CH1PySBD.js";
2
- export { GlobalStatistics, GlobalStatistics as default };
@@ -1,2 +0,0 @@
1
- import { c as GroupStatistics } from "./main-CH1PySBD.js";
2
- export { GroupStatistics, GroupStatistics as default };
@@ -1,2 +0,0 @@
1
- import { s as Help } from "./main-CH1PySBD.js";
2
- export { Help, Help as default };
@@ -1,2 +0,0 @@
1
- import { y as DouyinImageWork } from "./main-CH1PySBD.js";
2
- export { DouyinImageWork, DouyinImageWork as default };
@@ -1,2 +0,0 @@
1
- import { v as DouyinLive } from "./main-CH1PySBD.js";
2
- export { DouyinLive, DouyinLive as default };
@@ -1,2 +0,0 @@
1
- import { _ as DouyinMusicInfo } from "./main-CH1PySBD.js";
2
- export { DouyinMusicInfo, DouyinMusicInfo as default };
@@ -1,2 +0,0 @@
1
- import { g as DouyinRecommendList } from "./main-CH1PySBD.js";
2
- export { DouyinRecommendList };
@@ -1,2 +0,0 @@
1
- import { N as BilibiliUserList } from "./main-CH1PySBD.js";
2
- export { BilibiliUserList as default };
@@ -1,2 +0,0 @@
1
- import { h as DouyinUserList } from "./main-CH1PySBD.js";
2
- export { DouyinUserList as default };
@@ -1,2 +0,0 @@
1
- import { m as DouyinUserVideoList } from "./main-CH1PySBD.js";
2
- export { DouyinUserVideoList };
@@ -1,2 +0,0 @@
1
- import { o as VersionWarning } from "./main-CH1PySBD.js";
2
- export { VersionWarning };
@@ -1,2 +0,0 @@
1
- import { p as DouyinVideoWork } from "./main-CH1PySBD.js";
2
- export { DouyinVideoWork, DouyinVideoWork as default };
@@ -1,2 +0,0 @@
1
- import { M as BangumiBilibili } from "./main-CH1PySBD.js";
2
- export { BangumiBilibili, BangumiBilibili as default };
@@ -1,2 +0,0 @@
1
- import { a as Changelog } from "./main-CH1PySBD.js";
2
- export { Changelog, Changelog as default };
@@ -1,2 +0,0 @@
1
- import { ft as getBilibiliDB, pt as getDouyinDB } from "./main-CH1PySBD.js";
2
- export { getBilibiliDB, getDouyinDB };
@@ -1,2 +0,0 @@
1
- import { i as handlerError } from "./main-CH1PySBD.js";
2
- export { handlerError as default, handlerError };
@@ -1,2 +0,0 @@
1
- import { f as DouyinQrcodeImg } from "./main-CH1PySBD.js";
2
- export { DouyinQrcodeImg, DouyinQrcodeImg as default };
@@ -1,2 +0,0 @@
1
- import { T as BilibiliQrcodeImg } from "./main-CH1PySBD.js";
2
- export { BilibiliQrcodeImg, BilibiliQrcodeImg as default };
@@ -1,2 +0,0 @@
1
- import { r as QrLogin } from "./main-CH1PySBD.js";
2
- export { QrLogin, QrLogin as default };
@@ -1,2 +0,0 @@
1
- import "./main-CH1PySBD.js";
2
- export {};
@@ -1,2 +0,0 @@
1
- import { d as DouyinVideoInfo } from "./main-CH1PySBD.js";
2
- export { DouyinVideoInfo, DouyinVideoInfo as default };
@@ -1,2 +0,0 @@
1
- import { w as BilibiliVideoInfo } from "./main-CH1PySBD.js";
2
- export { BilibiliVideoInfo, BilibiliVideoInfo as default };