llonebot-dist 7.12.10 → 7.12.13

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/llbot.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from "node:module";
2
2
  import * as path$4 from "node:path";
3
3
  import path, { dirname, join } from "node:path";
4
- import fsp, { access, copyFile, mkdir, readFile, stat, unlink, writeFile } from "node:fs/promises";
5
- import fs, { existsSync } from "fs";
6
- import * as fs$5 from "node:fs";
7
- import fs$1, { appendFile, appendFileSync, createReadStream, existsSync as existsSync$1, mkdirSync, promises, stat as stat$1, statSync, watch } from "node:fs";
4
+ import fs, { access, copyFile, mkdir, readFile, stat, unlink, writeFile } from "node:fs/promises";
5
+ import fs$1, { existsSync } from "fs";
6
+ import * as fs$6 from "node:fs";
7
+ import fs$2, { appendFile, appendFileSync, createReadStream, existsSync as existsSync$1, mkdirSync, promises, stat as stat$1, statSync, watch } from "node:fs";
8
8
  import os from "node:os";
9
9
  import { Binary, Time, camelize, clone, deduplicate, deepEqual, defineProperty, difference, filterKeys, hyphenate, is, isNonNullable, isNullable, isPlainObject, makeArray, mapValues, noop, omit, pick, remove, valueMap } from "cosmokit";
10
10
  import { Exporter, Factory } from "reggol";
@@ -3973,7 +3973,7 @@ var require_utils$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
3973
3973
  //#endregion
3974
3974
  //#region node_modules/qrcode/lib/renderer/png.js
3975
3975
  var require_png = /* @__PURE__ */ __commonJSMin(((exports) => {
3976
- var fs$10 = __require("fs");
3976
+ var fs$11 = __require("fs");
3977
3977
  var PNG = require_png$1().PNG;
3978
3978
  var Utils = require_utils$1();
3979
3979
  exports.render = function render(qrData, options) {
@@ -4025,7 +4025,7 @@ var require_png = /* @__PURE__ */ __commonJSMin(((exports) => {
4025
4025
  called = true;
4026
4026
  cb.apply(null, args);
4027
4027
  };
4028
- const stream = fs$10.createWriteStream(path);
4028
+ const stream = fs$11.createWriteStream(path);
4029
4029
  stream.on("error", done);
4030
4030
  stream.on("close", done);
4031
4031
  exports.renderToFileStream(stream, qrData, options);
@@ -6624,7 +6624,7 @@ async function logSummaryMessage(ctx, message) {
6624
6624
  var require_windows = /* @__PURE__ */ __commonJSMin(((exports, module) => {
6625
6625
  module.exports = isexe;
6626
6626
  isexe.sync = sync;
6627
- var fs$9 = __require("fs");
6627
+ var fs$10 = __require("fs");
6628
6628
  function checkPathExt(path, options) {
6629
6629
  var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
6630
6630
  if (!pathext) return true;
@@ -6641,12 +6641,12 @@ var require_windows = /* @__PURE__ */ __commonJSMin(((exports, module) => {
6641
6641
  return checkPathExt(path, options);
6642
6642
  }
6643
6643
  function isexe(path, options, cb) {
6644
- fs$9.stat(path, function(er, stat) {
6644
+ fs$10.stat(path, function(er, stat) {
6645
6645
  cb(er, er ? false : checkStat(stat, path, options));
6646
6646
  });
6647
6647
  }
6648
6648
  function sync(path, options) {
6649
- return checkStat(fs$9.statSync(path), path, options);
6649
+ return checkStat(fs$10.statSync(path), path, options);
6650
6650
  }
6651
6651
  }));
6652
6652
  //#endregion
@@ -6654,14 +6654,14 @@ var require_windows = /* @__PURE__ */ __commonJSMin(((exports, module) => {
6654
6654
  var require_mode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
6655
6655
  module.exports = isexe;
6656
6656
  isexe.sync = sync;
6657
- var fs$8 = __require("fs");
6657
+ var fs$9 = __require("fs");
6658
6658
  function isexe(path, options, cb) {
6659
- fs$8.stat(path, function(er, stat) {
6659
+ fs$9.stat(path, function(er, stat) {
6660
6660
  cb(er, er ? false : checkStat(stat, options));
6661
6661
  });
6662
6662
  }
6663
6663
  function sync(path, options) {
6664
- return checkStat(fs$8.statSync(path), options);
6664
+ return checkStat(fs$9.statSync(path), options);
6665
6665
  }
6666
6666
  function checkStat(stat, options) {
6667
6667
  return stat.isFile() && checkMode(stat, options);
@@ -9153,7 +9153,7 @@ var require_processor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9153
9153
  //#endregion
9154
9154
  //#region node_modules/fluent-ffmpeg/lib/capabilities.js
9155
9155
  var require_capabilities = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9156
- var fs$7 = __require("fs");
9156
+ var fs$8 = __require("fs");
9157
9157
  var path$7 = __require("path");
9158
9158
  var async = require_async();
9159
9159
  var utils = require_utils();
@@ -9229,7 +9229,7 @@ var require_capabilities = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9229
9229
  proto._getFfmpegPath = function(callback) {
9230
9230
  if ("ffmpegPath" in cache) return callback(null, cache.ffmpegPath);
9231
9231
  async.waterfall([function(cb) {
9232
- if (process.env.FFMPEG_PATH) fs$7.exists(process.env.FFMPEG_PATH, function(exists) {
9232
+ if (process.env.FFMPEG_PATH) fs$8.exists(process.env.FFMPEG_PATH, function(exists) {
9233
9233
  if (exists) cb(null, process.env.FFMPEG_PATH);
9234
9234
  else cb(null, "");
9235
9235
  });
@@ -9260,7 +9260,7 @@ var require_capabilities = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9260
9260
  if ("ffprobePath" in cache) return callback(null, cache.ffprobePath);
9261
9261
  async.waterfall([
9262
9262
  function(cb) {
9263
- if (process.env.FFPROBE_PATH) fs$7.exists(process.env.FFPROBE_PATH, function(exists) {
9263
+ if (process.env.FFPROBE_PATH) fs$8.exists(process.env.FFPROBE_PATH, function(exists) {
9264
9264
  cb(null, exists ? process.env.FFPROBE_PATH : "");
9265
9265
  });
9266
9266
  else cb(null, "");
@@ -9278,7 +9278,7 @@ var require_capabilities = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9278
9278
  else if (ffmpeg.length) {
9279
9279
  var name = utils.isWindows ? "ffprobe.exe" : "ffprobe";
9280
9280
  var ffprobe = path$7.join(path$7.dirname(ffmpeg), name);
9281
- fs$7.exists(ffprobe, function(exists) {
9281
+ fs$8.exists(ffprobe, function(exists) {
9282
9282
  cb(null, exists ? ffprobe : "");
9283
9283
  });
9284
9284
  } else cb(null, "");
@@ -9303,14 +9303,14 @@ var require_capabilities = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9303
9303
  if ("flvtoolPath" in cache) return callback(null, cache.flvtoolPath);
9304
9304
  async.waterfall([
9305
9305
  function(cb) {
9306
- if (process.env.FLVMETA_PATH) fs$7.exists(process.env.FLVMETA_PATH, function(exists) {
9306
+ if (process.env.FLVMETA_PATH) fs$8.exists(process.env.FLVMETA_PATH, function(exists) {
9307
9307
  cb(null, exists ? process.env.FLVMETA_PATH : "");
9308
9308
  });
9309
9309
  else cb(null, "");
9310
9310
  },
9311
9311
  function(flvtool, cb) {
9312
9312
  if (flvtool.length) return cb(null, flvtool);
9313
- if (process.env.FLVTOOL2_PATH) fs$7.exists(process.env.FLVTOOL2_PATH, function(exists) {
9313
+ if (process.env.FLVTOOL2_PATH) fs$8.exists(process.env.FLVTOOL2_PATH, function(exists) {
9314
9314
  cb(null, exists ? process.env.FLVTOOL2_PATH : "");
9315
9315
  });
9316
9316
  else cb(null, "");
@@ -9815,7 +9815,7 @@ var require_ffprobe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9815
9815
  //#endregion
9816
9816
  //#region node_modules/fluent-ffmpeg/lib/recipes.js
9817
9817
  var require_recipes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9818
- var fs$6 = __require("fs");
9818
+ var fs$7 = __require("fs");
9819
9819
  var path$6 = __require("path");
9820
9820
  var PassThrough$4 = __require("stream").PassThrough;
9821
9821
  var async = require_async();
@@ -10021,8 +10021,8 @@ var require_recipes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
10021
10021
  next(null, filenames);
10022
10022
  },
10023
10023
  function createDirectory(filenames, next) {
10024
- fs$6.exists(config.folder, function(exists) {
10025
- if (!exists) fs$6.mkdir(config.folder, function(err) {
10024
+ fs$7.exists(config.folder, function(exists) {
10025
+ if (!exists) fs$7.mkdir(config.folder, function(err) {
10026
10026
  if (err) next(err);
10027
10027
  else next(null, filenames);
10028
10028
  });
@@ -10270,7 +10270,7 @@ function setFFMpegPath(ffmpegPath) {
10270
10270
  path.join(import.meta.dirname, "ffmpeg.exe"),
10271
10271
  process.env["FFMPEG_PATH"] || ""
10272
10272
  ];
10273
- for (const p of paths) if (fs$1.existsSync(p)) {
10273
+ for (const p of paths) if (fs$2.existsSync(p)) {
10274
10274
  import_fluent_ffmpeg.default.setFfmpegPath(p);
10275
10275
  console.log("set ffmpeg successfully", p);
10276
10276
  break;
@@ -11240,8 +11240,12 @@ var OB11Entities;
11240
11240
  let operatorUin;
11241
11241
  if (revokeElement.operatorUid === revokeElement.origMsgSenderUid) operatorUin = msg.senderUin;
11242
11242
  else operatorUin = await ctx.ntUserApi.getUinByUid(revokeElement.operatorUid);
11243
- if (msg.senderUin === "0" || !msg.senderUin) ctx.logger.warn(`发生异常 senderUin: ${msg.senderUin}`);
11244
- return new OB11GroupRecallNoticeEvent(Number(msg.peerUid), Number(msg.senderUin), Number(operatorUin), shortId);
11243
+ let senderUin = msg.senderUin;
11244
+ if (msg.senderUin === "0") {
11245
+ senderUin = await ctx.ntUserApi.getUinByUid(revokeElement.origMsgSenderUid);
11246
+ if (revokeElement.operatorUid === revokeElement.origMsgSenderUid) operatorUin = senderUin;
11247
+ }
11248
+ return new OB11GroupRecallNoticeEvent(Number(msg.peerUid), Number(senderUin), Number(operatorUin), shortId);
11245
11249
  } else return new OB11FriendRecallNoticeEvent(+msg.senderUin, shortId);
11246
11250
  }
11247
11251
  _OB11Entities.recallEvent = recallEvent;
@@ -11385,7 +11389,7 @@ var OB11HeartbeatEvent = class extends OB11BaseMetaEvent {
11385
11389
  };
11386
11390
  //#endregion
11387
11391
  //#region src/version.ts
11388
- var version$2 = "7.12.10";
11392
+ var version$2 = "7.12.13";
11389
11393
  //#endregion
11390
11394
  //#region node_modules/sift/es5m/index.js
11391
11395
  /******************************************************************************
@@ -12219,7 +12223,6 @@ var OB11WebSocket = class {
12219
12223
  }
12220
12224
  const disposeHeartBeat = this.ctx.interval(() => {
12221
12225
  const event = new OB11HeartbeatEvent(selfInfo.online, true, this.config.heartInterval);
12222
- if (!matchEventFilter(this.config.filter, event)) return;
12223
12226
  this.reply(socket, event);
12224
12227
  }, this.config.heartInterval);
12225
12228
  socket.on("close", () => {
@@ -12342,7 +12345,6 @@ var OB11WebSocketReverse = class {
12342
12345
  const disposeHeartBeat = this.ctx.interval(() => {
12343
12346
  if (this.wsClient) {
12344
12347
  const event = new OB11HeartbeatEvent(selfInfo.online, true, this.config.heartInterval);
12345
- if (!matchEventFilter(this.config.filter, event)) return;
12346
12348
  this.reply(this.wsClient, event);
12347
12349
  }
12348
12350
  }, this.config.heartInterval);
@@ -17045,7 +17047,7 @@ var processQueue = async () => {
17045
17047
  const promises = queue.splice(0, concurrency).map(async ({ filePath, resolve, reject }) => {
17046
17048
  let handle;
17047
17049
  try {
17048
- handle = await fs$5.promises.open(path$4.resolve(filePath), "r");
17050
+ handle = await fs$6.promises.open(path$4.resolve(filePath), "r");
17049
17051
  } catch (err) {
17050
17052
  return reject(err);
17051
17053
  }
@@ -17092,7 +17094,7 @@ function checkUriType(uri) {
17092
17094
  if (uri.startsWith("data:")) return { type: FileUriType.DataURL };
17093
17095
  if (uri.startsWith("http://") || uri.startsWith("https://")) return { type: FileUriType.RemoteURL };
17094
17096
  if (uri.startsWith("file://")) return { type: FileUriType.FileURL };
17095
- if (fs$1.existsSync(uri)) return { type: FileUriType.Path };
17097
+ if (fs$2.existsSync(uri)) return { type: FileUriType.Path };
17096
17098
  return { type: FileUriType.Unknown };
17097
17099
  }
17098
17100
  async function fetchFile(url, headersInit) {
@@ -17122,7 +17124,7 @@ async function uri2local(ctx, uri, needExt) {
17122
17124
  const { type } = checkUriType(uri);
17123
17125
  if (type === FileUriType.FileURL) {
17124
17126
  const filePath = fileURLToPath(uri);
17125
- if (!fs$1.existsSync(filePath)) return {
17127
+ if (!fs$2.existsSync(filePath)) return {
17126
17128
  success: false,
17127
17129
  errMsg: "路径不存在",
17128
17130
  fileName: "",
@@ -17148,12 +17150,12 @@ async function uri2local(ctx, uri, needExt) {
17148
17150
  const res = await fetchFile(uri);
17149
17151
  let fileName = randomUUID();
17150
17152
  let filePath = path.join(TEMP_DIR, fileName);
17151
- await fsp.writeFile(filePath, res.data);
17153
+ await fs.writeFile(filePath, res.data);
17152
17154
  if (needExt) {
17153
17155
  const ext = (await ctx.ntFileApi.getFileType(filePath)).ext;
17154
17156
  fileName += `.${ext}`;
17155
17157
  const newPath = `${filePath}.${ext}`;
17156
- await fsp.rename(filePath, newPath);
17158
+ await fs.rename(filePath, newPath);
17157
17159
  filePath = newPath;
17158
17160
  }
17159
17161
  return {
@@ -17176,11 +17178,11 @@ async function uri2local(ctx, uri, needExt) {
17176
17178
  let filename = randomUUID();
17177
17179
  let filePath = path.join(TEMP_DIR, filename);
17178
17180
  const base64 = uri.replace(/^base64:\/\//, "");
17179
- await fsp.writeFile(filePath, base64, "base64");
17181
+ await fs.writeFile(filePath, base64, "base64");
17180
17182
  if (needExt) {
17181
17183
  const ext = (await ctx.ntFileApi.getFileType(filePath)).ext;
17182
17184
  filename += `.${ext}`;
17183
- await fsp.rename(filePath, `${filePath}.${ext}`);
17185
+ await fs.rename(filePath, `${filePath}.${ext}`);
17184
17186
  filePath = `${filePath}.${ext}`;
17185
17187
  }
17186
17188
  return {
@@ -17197,11 +17199,11 @@ async function uri2local(ctx, uri, needExt) {
17197
17199
  let filename = randomUUID();
17198
17200
  const [, _type, base64] = capture;
17199
17201
  let filePath = path.join(TEMP_DIR, filename);
17200
- await fsp.writeFile(filePath, base64, "base64");
17202
+ await fs.writeFile(filePath, base64, "base64");
17201
17203
  if (needExt) {
17202
17204
  const ext = (await ctx.ntFileApi.getFileType(filePath)).ext;
17203
17205
  filename += `.${ext}`;
17204
- await fsp.rename(filePath, `${filePath}.${ext}`);
17206
+ await fs.rename(filePath, `${filePath}.${ext}`);
17205
17207
  filePath = `${filePath}.${ext}`;
17206
17208
  }
17207
17209
  return {
@@ -17265,13 +17267,13 @@ function getSha1HexFromBuffer(buf) {
17265
17267
  }
17266
17268
  async function getMd5HexFromFile(filePath) {
17267
17269
  const hash = createHash("md5");
17268
- const stream = fs$1.createReadStream(filePath);
17270
+ const stream = fs$2.createReadStream(filePath);
17269
17271
  for await (const chunk of stream) hash.update(chunk);
17270
17272
  return hash.digest("hex");
17271
17273
  }
17272
17274
  async function getSha1HexFromFile(filePath) {
17273
17275
  const hash = createHash("sha1");
17274
- const stream = fs$1.createReadStream(filePath);
17276
+ const stream = fs$2.createReadStream(filePath);
17275
17277
  for await (const chunk of stream) hash.update(chunk);
17276
17278
  return hash.digest("hex");
17277
17279
  }
@@ -17280,13 +17282,13 @@ function getMd5BufferFromBuffer(buf) {
17280
17282
  }
17281
17283
  async function getMd5BufferFromFile(filePath) {
17282
17284
  const hash = createHash("md5");
17283
- const stream = fs$1.createReadStream(filePath);
17285
+ const stream = fs$2.createReadStream(filePath);
17284
17286
  for await (const chunk of stream) hash.update(chunk);
17285
17287
  return hash.digest();
17286
17288
  }
17287
17289
  async function getSha1BufferFromFile(filePath) {
17288
17290
  const hash = createHash("sha1");
17289
- const stream = fs$1.createReadStream(filePath);
17291
+ const stream = fs$2.createReadStream(filePath);
17290
17292
  for await (const chunk of stream) hash.update(chunk);
17291
17293
  return hash.digest();
17292
17294
  }
@@ -17522,7 +17524,7 @@ async function calculateSha1StreamBytes(filePath) {
17522
17524
  let bytesRead = 0;
17523
17525
  let nextBlockBoundary = blockSize;
17524
17526
  const byteArrayList = [];
17525
- const readable = fs$1.createReadStream(filePath);
17527
+ const readable = fs$2.createReadStream(filePath);
17526
17528
  for await (const chunk of readable) {
17527
17529
  let buf;
17528
17530
  if (tail.length > 0) {
@@ -17547,7 +17549,7 @@ async function calculateSha1StreamBytes(filePath) {
17547
17549
  }
17548
17550
  async function readAndHash10M(filePath) {
17549
17551
  const maxSize = 10002432;
17550
- const fd = await fsp.open(filePath, "r");
17552
+ const fd = await fs.open(filePath, "r");
17551
17553
  const buffer = Buffer.allocUnsafe(maxSize);
17552
17554
  const { bytesRead } = await fd.read(buffer, 0, maxSize, 0);
17553
17555
  await fd.close();
@@ -17589,13 +17591,13 @@ var TriSha1 = class {
17589
17591
  };
17590
17592
  async function calculateTriSha1(filePath, fileSize) {
17591
17593
  const hash = new TriSha1(fileSize);
17592
- const stream = fs$1.createReadStream(filePath);
17594
+ const stream = fs$2.createReadStream(filePath);
17593
17595
  for await (const chunk of stream) hash.update(chunk);
17594
17596
  return hash.finalize();
17595
17597
  }
17596
17598
  var defaultVideoThumb = Buffer.from("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", "base64");
17597
17599
  async function getVideoInfo(filePath) {
17598
- const size = fs$1.statSync(filePath).size;
17600
+ const size = fs$2.statSync(filePath).size;
17599
17601
  return new Promise((resolve, reject) => {
17600
17602
  (0, import_fluent_ffmpeg.default)(filePath).ffprobe((err, metadata) => {
17601
17603
  if (err) reject(err);
@@ -17672,7 +17674,7 @@ function convert(ctx, input, options, outputPath) {
17672
17674
  });
17673
17675
  }
17674
17676
  async function encodeSilk(ctx, filePath) {
17675
- const file = await fsp.readFile(filePath);
17677
+ const file = await fs.readFile(filePath);
17676
17678
  if (!isSilk(file)) {
17677
17679
  ctx.logger.info(`语音文件${filePath}需要转换成silk`);
17678
17680
  let result;
@@ -17691,7 +17693,7 @@ async function encodeSilk(ctx, filePath) {
17691
17693
  "-f s16le"
17692
17694
  ] }), 24e3);
17693
17695
  const pttPath = path.join(TEMP_DIR, randomUUID());
17694
- await fsp.writeFile(pttPath, result.data);
17696
+ await fs.writeFile(pttPath, result.data);
17695
17697
  ctx.logger.info(`语音文件${filePath}转换成功!`, pttPath, `时长:`, result.duration);
17696
17698
  return {
17697
17699
  converted: true,
@@ -17714,11 +17716,11 @@ async function encodeSilk(ctx, filePath) {
17714
17716
  }
17715
17717
  }
17716
17718
  async function decodeSilk(ctx, inputFilePath, outFormat) {
17717
- const { data } = await decode(await fsp.readFile(inputFilePath), 24e3);
17719
+ const { data } = await decode(await fs.readFile(inputFilePath), 24e3);
17718
17720
  const tmpPath = path.join(TEMP_DIR, path.basename(inputFilePath));
17719
17721
  const outFilePath = tmpPath + `.${outFormat}`;
17720
17722
  const pcmFilePath = tmpPath + ".pcm";
17721
- await fsp.writeFile(pcmFilePath, data);
17723
+ await fs.writeFile(pcmFilePath, data);
17722
17724
  return convert(ctx, pcmFilePath, { input: [
17723
17725
  "-f s16le",
17724
17726
  "-ar 24000",
@@ -24911,7 +24913,7 @@ var DownloadFile = class extends BaseAction {
24911
24913
  const res = await fetchFile(payload.url, headers);
24912
24914
  await fsPromise.writeFile(filePath, res.data);
24913
24915
  } else throw new Error("不存在任何文件, 无法下载");
24914
- if (fs.existsSync(filePath)) {
24916
+ if (fs$1.existsSync(filePath)) {
24915
24917
  if (isRandomName) {
24916
24918
  const md5 = await getMd5HexFromFile(filePath);
24917
24919
  const newPath = path.join(TEMP_DIR, md5);
@@ -24995,24 +24997,40 @@ async function decodeMultiMessage(ctx, items, messageFormat) {
24995
24997
  type: OB11MessageDataType.Text,
24996
24998
  data: { text: element.text.str }
24997
24999
  };
24998
- else if (element.commonElem && element.commonElem.serviceType === 48) {
24999
- const richMediaInfo = Media.MsgInfo.decode(element.commonElem.pbElem);
25000
- const infoBody = richMediaInfo.msgInfoBody[0];
25001
- const parsedUrl = new URL("https://" + infoBody.pic.domain + infoBody.pic.urlPath + infoBody.pic.ext.originalParam);
25002
- const imageAppid = parsedUrl.searchParams.get("appid");
25003
- const rkeyData = await ctx.ntFileApi.rkeyManager.getRkey();
25004
- const url = parsedUrl.href + (imageAppid === "1406" ? rkeyData.private_rkey : rkeyData.group_rkey);
25005
- const { info } = richMediaInfo.msgInfoBody[0].index;
25006
- const { pic } = richMediaInfo.extBizInfo;
25007
- segment = {
25008
- type: OB11MessageDataType.Image,
25009
- data: {
25010
- file: info.fileName,
25011
- subType: pic.bizType,
25012
- url,
25013
- file_size: info.fileSize.toString()
25014
- }
25015
- };
25000
+ else if (element.commonElem) {
25001
+ const { businessType, serviceType, pbElem } = element.commonElem;
25002
+ if (serviceType === 48 && (businessType === 10 || businessType === 20)) {
25003
+ const richMediaInfo = Media.MsgInfo.decode(pbElem);
25004
+ const infoBody = richMediaInfo.msgInfoBody[0];
25005
+ const parsedUrl = new URL("https://" + infoBody.pic.domain + infoBody.pic.urlPath + infoBody.pic.ext.originalParam);
25006
+ const imageAppid = parsedUrl.searchParams.get("appid");
25007
+ const rkeyData = await ctx.ntFileApi.rkeyManager.getRkey();
25008
+ const url = parsedUrl.href + (imageAppid === "1406" ? rkeyData.private_rkey : rkeyData.group_rkey);
25009
+ const { info } = richMediaInfo.msgInfoBody[0].index;
25010
+ const { pic } = richMediaInfo.extBizInfo;
25011
+ segment = {
25012
+ type: OB11MessageDataType.Image,
25013
+ data: {
25014
+ file: info.fileName,
25015
+ subType: pic.bizType,
25016
+ url,
25017
+ file_size: info.fileSize.toString()
25018
+ }
25019
+ };
25020
+ } else if (serviceType === 48 && (businessType === 11 || businessType === 21)) {
25021
+ const { msgInfoBody } = Media.MsgInfo.decode(pbElem);
25022
+ const { index } = msgInfoBody[0];
25023
+ const url = await ctx.ntFileApi.getVideoUrlByPacket(index.fileUuid, businessType === 21);
25024
+ segment = {
25025
+ type: OB11MessageDataType.Video,
25026
+ data: {
25027
+ file: index.info.fileName,
25028
+ url,
25029
+ path: "",
25030
+ file_size: index.info.fileSize.toString()
25031
+ }
25032
+ };
25033
+ }
25016
25034
  }
25017
25035
  if (segment) if (typeof content === "string") content += encodeCQCode(segment);
25018
25036
  else content.push(segment);
@@ -26415,8 +26433,15 @@ var SendGroupAiRecord = class extends BaseAction {
26415
26433
  chat_type: lib_default$1.union([Number, String]).default(1)
26416
26434
  });
26417
26435
  async _handle(payload) {
26418
- await this.ctx.pmhq.getGroupGenerateAiRecord(+payload.group_id, payload.character, payload.text, +payload.chat_type);
26419
- return { message_id: 0 };
26436
+ const targetMsgRandom = (await this.ctx.pmhq.getGroupGenerateAiRecord(+payload.group_id, payload.character, payload.text, +payload.chat_type)).msgRandom.toString();
26437
+ const { promise, resolve } = Promise.withResolvers();
26438
+ const dispose = this.ctx.on("nt/message-created", (msg) => {
26439
+ if (msg.msgRandom === targetMsgRandom) {
26440
+ dispose();
26441
+ resolve({ message_id: this.ctx.store.createMsgShortId(msg) });
26442
+ }
26443
+ });
26444
+ return promise;
26420
26445
  }
26421
26446
  };
26422
26447
  //#endregion
@@ -43459,7 +43484,7 @@ async function download(url, headers) {
43459
43484
  return Buffer.from(bytes);
43460
43485
  }
43461
43486
  async function resolveMilkyUri(uri) {
43462
- if (uri.startsWith("file://")) return await fsp.readFile(fileURLToPath(uri));
43487
+ if (uri.startsWith("file://")) return await fs.readFile(fileURLToPath(uri));
43463
43488
  if (uri.startsWith("http://") || uri.startsWith("https://")) return await download(uri);
43464
43489
  if (uri.startsWith("base64://")) return Buffer.from(uri.slice(9), "base64");
43465
43490
  throw new Error(`Unsupported URI scheme: ${uri}`);
@@ -54326,7 +54351,7 @@ var NTQQWebApi = class extends Service {
54326
54351
  const iBatchID = Math.floor(Date.now() / 1e3);
54327
54352
  for (let i = 0; i < filePathList.length; i++) {
54328
54353
  const filePath = filePathList[i];
54329
- const fileBuffer = await fsp.readFile(filePath);
54354
+ const fileBuffer = await fs.readFile(filePath);
54330
54355
  const fileSize = fileBuffer.length;
54331
54356
  const fileType = await fileTypeFromBuffer(fileBuffer);
54332
54357
  const timestamp = Math.floor(Date.now() / 1e3);
@@ -54511,7 +54536,7 @@ var NTQQWebApi = class extends Service {
54511
54536
  }
54512
54537
  if (sVid) {
54513
54538
  const filePath = await createThumb(this.ctx, filePathList[i]);
54514
- const fileBuffer = await fsp.readFile(filePath);
54539
+ const fileBuffer = await fs.readFile(filePath);
54515
54540
  const fileSize = fileBuffer.length;
54516
54541
  const timestamp = Math.floor(Date.now() / 1e3);
54517
54542
  const checksum = getMd5HexFromBuffer(fileBuffer);
@@ -56003,7 +56028,7 @@ var Config = class extends Service {
56003
56028
  this.logger.info("配置文件位于", this.configPath);
56004
56029
  this.config = this.get();
56005
56030
  if (this.configPath) {
56006
- fs$1.watchFile(this.configPath, {
56031
+ fs$2.watchFile(this.configPath, {
56007
56032
  persistent: true,
56008
56033
  interval: 1e3
56009
56034
  }, () => {
@@ -56021,7 +56046,7 @@ var Config = class extends Service {
56021
56046
  }
56022
56047
  getDefaultConfig() {
56023
56048
  const _defaultConfig = { ...defaultConfig };
56024
- const defaultConfigFromFile = fs$1.readFileSync(this.defaultConfigPath, "utf-8");
56049
+ const defaultConfigFromFile = fs$2.readFileSync(this.defaultConfigPath, "utf-8");
56025
56050
  try {
56026
56051
  const parsedDefaultConfig = import_dist.default.parse(defaultConfigFromFile);
56027
56052
  Object.assign(_defaultConfig, parsedDefaultConfig);
@@ -56032,12 +56057,12 @@ var Config = class extends Service {
56032
56057
  }
56033
56058
  reloadConfig() {
56034
56059
  if (!this.configPath) return this.getDefaultConfig();
56035
- if (!fs$1.existsSync(this.configPath)) {
56060
+ if (!fs$2.existsSync(this.configPath)) {
56036
56061
  this.config = this.getDefaultConfig();
56037
56062
  this.set(this.config);
56038
56063
  return this.config;
56039
56064
  } else {
56040
- const data = fs$1.readFileSync(this.configPath, "utf-8");
56065
+ const data = fs$2.readFileSync(this.configPath, "utf-8");
56041
56066
  let jsonData = defaultConfig;
56042
56067
  try {
56043
56068
  jsonData = import_dist.default.parse(data);
@@ -56063,7 +56088,7 @@ var Config = class extends Service {
56063
56088
  writeConfig(config) {
56064
56089
  if (!this.configPath) return;
56065
56090
  this.watch = false;
56066
- fs$1.writeFileSync(this.configPath, JSON.stringify(config, null, 2), "utf-8");
56091
+ fs$2.writeFileSync(this.configPath, JSON.stringify(config, null, 2), "utf-8");
56067
56092
  setTimeout(() => {
56068
56093
  this.watch = true;
56069
56094
  }, 1500);
@@ -56169,13 +56194,13 @@ var WebUITokenUtil = class {
56169
56194
  }
56170
56195
  getToken() {
56171
56196
  if (!this.token) {
56172
- if (fs$1.existsSync(this.tokenPath)) this.token = fs$1.readFileSync(this.tokenPath, "utf-8").trim();
56197
+ if (fs$2.existsSync(this.tokenPath)) this.token = fs$2.readFileSync(this.tokenPath, "utf-8").trim();
56173
56198
  }
56174
56199
  return this.token;
56175
56200
  }
56176
56201
  setToken(token) {
56177
56202
  this.token = token.trim();
56178
- fs$1.writeFileSync(this.tokenPath, token, "utf-8");
56203
+ fs$2.writeFileSync(this.tokenPath, token, "utf-8");
56179
56204
  }
56180
56205
  };
56181
56206
  var webuiTokenUtil = new WebUITokenUtil(path.join(DATA_DIR, "webui_token.txt"));
@@ -58450,7 +58475,7 @@ var require_fetch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
58450
58475
  var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
58451
58476
  var urllib$2 = __require("url");
58452
58477
  var util$1 = __require("util");
58453
- var fs$4 = __require("fs");
58478
+ var fs$5 = __require("fs");
58454
58479
  var nmfetch = require_fetch();
58455
58480
  var dns$1 = __require("dns");
58456
58481
  var net$4 = __require("net");
@@ -58786,7 +58811,7 @@ var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
58786
58811
  const parsedDataUri = module.exports.parseDataURI(content.path || content.href);
58787
58812
  if (!parsedDataUri || !parsedDataUri.data) return callback(null, Buffer.from(0));
58788
58813
  return callback(null, parsedDataUri.data);
58789
- } else if (content.path) return resolveStream(fs$4.createReadStream(content.path), callback);
58814
+ } else if (content.path) return resolveStream(fs$5.createReadStream(content.path), callback);
58790
58815
  }
58791
58816
  if (typeof data[key].content === "string" && ![
58792
58817
  "utf8",
@@ -62726,7 +62751,7 @@ var require_le_unix = /* @__PURE__ */ __commonJSMin(((exports, module) => {
62726
62751
  //#region node_modules/nodemailer/lib/mime-node/index.js
62727
62752
  var require_mime_node = /* @__PURE__ */ __commonJSMin(((exports, module) => {
62728
62753
  var crypto$8 = __require("crypto");
62729
- var fs$3 = __require("fs");
62754
+ var fs$4 = __require("fs");
62730
62755
  var punycode = require_punycode();
62731
62756
  var { PassThrough: PassThrough$2 } = __require("stream");
62732
62757
  var shared = require_shared();
@@ -63435,7 +63460,7 @@ var require_mime_node = /* @__PURE__ */ __commonJSMin(((exports, module) => {
63435
63460
  });
63436
63461
  return contentStream;
63437
63462
  }
63438
- return fs$3.createReadStream(content.path);
63463
+ return fs$4.createReadStream(content.path);
63439
63464
  }
63440
63465
  if (content && typeof content.href === "string") {
63441
63466
  if (this.disableUrlAccess) {
@@ -64274,7 +64299,7 @@ var require_dkim = /* @__PURE__ */ __commonJSMin(((exports, module) => {
64274
64299
  var RelaxedBody = require_relaxed_body();
64275
64300
  var sign = require_sign();
64276
64301
  var { PassThrough: PassThrough$1 } = __require("stream");
64277
- var fs$2 = __require("fs");
64302
+ var fs$3 = __require("fs");
64278
64303
  var path$2 = __require("path");
64279
64304
  var crypto$5 = __require("crypto");
64280
64305
  var DKIM_ALGO = "sha256";
@@ -64307,10 +64332,10 @@ var require_dkim = /* @__PURE__ */ __commonJSMin(((exports, module) => {
64307
64332
  }
64308
64333
  cleanup() {
64309
64334
  if (!this.cache || !this.cachePath) return;
64310
- fs$2.unlink(this.cachePath, () => false);
64335
+ fs$3.unlink(this.cachePath, () => false);
64311
64336
  }
64312
64337
  createReadCache() {
64313
- this.cache = fs$2.createReadStream(this.cachePath);
64338
+ this.cache = fs$3.createReadStream(this.cachePath);
64314
64339
  this.cache.once("error", (err) => {
64315
64340
  this.cleanup();
64316
64341
  this.output.emit("error", err);
@@ -64356,7 +64381,7 @@ var require_dkim = /* @__PURE__ */ __commonJSMin(((exports, module) => {
64356
64381
  }
64357
64382
  createWriteCache() {
64358
64383
  this.output.usingCache = true;
64359
- this.cache = fs$2.createWriteStream(this.cachePath);
64384
+ this.cache = fs$3.createWriteStream(this.cachePath);
64360
64385
  this.cache.once("error", (err) => {
64361
64386
  this.cleanup();
64362
64387
  this.relaxedBody.unpipe(this.cache);
@@ -70339,12 +70364,13 @@ function MessageMixin(Base) {
70339
70364
  return Oidb.FetchAiCharacterListResp.decode(oidbRespBody);
70340
70365
  }
70341
70366
  async getGroupGenerateAiRecord(groupId, character, text, chatType) {
70367
+ const msgRandom = randomBytes(4).readUInt32BE(0);
70342
70368
  const body = Oidb.GetGroupGenerateAiRecordReq.encode({
70343
70369
  groupId,
70344
70370
  voiceId: character,
70345
70371
  text,
70346
70372
  chatType,
70347
- clientMsgInfo: { msgRandom: randomBytes(4).readUInt32BE(0) }
70373
+ clientMsgInfo: { msgRandom }
70348
70374
  });
70349
70375
  const data = Oidb.Base.encode({
70350
70376
  command: 37531,
@@ -70352,6 +70378,7 @@ function MessageMixin(Base) {
70352
70378
  body
70353
70379
  });
70354
70380
  await this.httpSendPB("OidbSvcTrpcTcp.0x929b_0", data);
70381
+ return { msgRandom };
70355
70382
  }
70356
70383
  };
70357
70384
  }