koishi-plugin-echo-cave 1.12.0 → 1.12.1
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/lib/forward-helper.d.ts +2 -2
- package/lib/index.cjs +18 -6
- package/package.json +1 -1
package/lib/forward-helper.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Config } from './index';
|
|
2
2
|
import { CQCode } from '@pynickle/koishi-plugin-adapter-onebot';
|
|
3
3
|
import { Message } from '@pynickle/koishi-plugin-adapter-onebot/lib/types';
|
|
4
|
-
import { Context } from 'koishi';
|
|
5
|
-
export declare function reconstructForwardMsg(ctx: Context, message: Message[], cfg: Config): Promise<CQCode[]>;
|
|
4
|
+
import { Context, Session } from 'koishi';
|
|
5
|
+
export declare function reconstructForwardMsg(ctx: Context, session: Session, message: Message[], cfg: Config): Promise<CQCode[]>;
|
package/lib/index.cjs
CHANGED
|
@@ -356,28 +356,39 @@ async function checkAndCleanMediaFiles(ctx, cfg, type) {
|
|
|
356
356
|
}
|
|
357
357
|
|
|
358
358
|
// src/forward-helper.ts
|
|
359
|
-
async function reconstructForwardMsg(ctx, message, cfg) {
|
|
359
|
+
async function reconstructForwardMsg(ctx, session, message, cfg) {
|
|
360
360
|
return Promise.all(
|
|
361
361
|
message.map(async (msg) => {
|
|
362
|
-
const content = await processForwardMessageContent(ctx, msg, cfg);
|
|
362
|
+
const content = await processForwardMessageContent(ctx, session, msg, cfg);
|
|
363
|
+
const senderNickname = msg.sender.nickname;
|
|
364
|
+
let senderUserId = msg.sender.user_id;
|
|
365
|
+
senderUserId = senderUserId === 1094950020 ? await getUserIdFromNickname(session, senderNickname, senderUserId) : senderUserId;
|
|
363
366
|
return {
|
|
364
367
|
type: "node",
|
|
365
368
|
data: {
|
|
366
|
-
user_id:
|
|
367
|
-
nickname:
|
|
369
|
+
user_id: senderUserId,
|
|
370
|
+
nickname: senderNickname,
|
|
368
371
|
content
|
|
369
372
|
}
|
|
370
373
|
};
|
|
371
374
|
})
|
|
372
375
|
);
|
|
373
376
|
}
|
|
374
|
-
async function
|
|
377
|
+
async function getUserIdFromNickname(session, nickname, userId) {
|
|
378
|
+
const memberInfos = await session.onebot.getGroupMemberList(session.channelId);
|
|
379
|
+
const matches = memberInfos.filter((m) => m.nickname === nickname);
|
|
380
|
+
if (matches.length === 1) {
|
|
381
|
+
return matches[0].user_id;
|
|
382
|
+
}
|
|
383
|
+
return userId;
|
|
384
|
+
}
|
|
385
|
+
async function processForwardMessageContent(ctx, session, msg, cfg) {
|
|
375
386
|
if (typeof msg.message === "string") {
|
|
376
387
|
return msg.message;
|
|
377
388
|
}
|
|
378
389
|
const firstElement = msg.message[0];
|
|
379
390
|
if (firstElement?.type === "forward") {
|
|
380
|
-
return reconstructForwardMsg(ctx, firstElement.data.content, cfg);
|
|
391
|
+
return reconstructForwardMsg(ctx, session, firstElement.data.content, cfg);
|
|
381
392
|
}
|
|
382
393
|
return Promise.all(
|
|
383
394
|
msg.message.map(async (element) => {
|
|
@@ -566,6 +577,7 @@ async function addCave(ctx, session, cfg) {
|
|
|
566
577
|
type = "forward";
|
|
567
578
|
const message = await reconstructForwardMsg(
|
|
568
579
|
ctx,
|
|
580
|
+
session,
|
|
569
581
|
await session.onebot.getForwardMsg(messageId),
|
|
570
582
|
cfg
|
|
571
583
|
);
|