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
|
|
5
|
-
import fs, { existsSync } from "fs";
|
|
6
|
-
import * as fs$
|
|
7
|
-
import 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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
6657
|
+
var fs$9 = __require("fs");
|
|
6658
6658
|
function isexe(path, options, cb) {
|
|
6659
|
-
fs$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
10025
|
-
if (!exists) fs$
|
|
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$
|
|
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
|
-
|
|
11244
|
-
|
|
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.
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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$
|
|
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$
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
24999
|
-
const
|
|
25000
|
-
|
|
25001
|
-
|
|
25002
|
-
|
|
25003
|
-
|
|
25004
|
-
|
|
25005
|
-
|
|
25006
|
-
|
|
25007
|
-
|
|
25008
|
-
|
|
25009
|
-
|
|
25010
|
-
|
|
25011
|
-
|
|
25012
|
-
|
|
25013
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
64335
|
+
fs$3.unlink(this.cachePath, () => false);
|
|
64311
64336
|
}
|
|
64312
64337
|
createReadCache() {
|
|
64313
|
-
this.cache = fs$
|
|
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$
|
|
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
|
|
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
|
}
|