mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-16 13:01:14 +00:00
style: eslint
This commit is contained in:
parent
d6113a8f0a
commit
bc1deba3e4
@ -152,180 +152,180 @@ export async function createSendElements(messageData: OB11MessageData[], group:
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
switch (sendMsg.type) {
|
switch (sendMsg.type) {
|
||||||
case OB11MessageDataType.text: {
|
case OB11MessageDataType.text: {
|
||||||
const text = sendMsg.data?.text;
|
const text = sendMsg.data?.text;
|
||||||
if (text) {
|
if (text) {
|
||||||
sendElements.push(SendMsgElementConstructor.text(sendMsg.data!.text));
|
sendElements.push(SendMsgElementConstructor.text(sendMsg.data!.text));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
case OB11MessageDataType.at: {
|
break;
|
||||||
if (!group) {
|
case OB11MessageDataType.at: {
|
||||||
continue;
|
if (!group) {
|
||||||
}
|
continue;
|
||||||
let atQQ = sendMsg.data?.qq;
|
|
||||||
if (atQQ) {
|
|
||||||
atQQ = atQQ.toString();
|
|
||||||
if (atQQ === 'all') {
|
|
||||||
sendElements.push(SendMsgElementConstructor.at(atQQ, atQQ, AtType.atAll, '全体成员'));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// const atMember = group?.members.find(m => m.uin == atQQ)
|
|
||||||
const atMember = await getGroupMember(group?.groupCode, atQQ);
|
|
||||||
if (atMember) {
|
|
||||||
sendElements.push(SendMsgElementConstructor.at(atQQ, atMember.uid, AtType.atUser, atMember.cardName || atMember.nick));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
let atQQ = sendMsg.data?.qq;
|
||||||
case OB11MessageDataType.reply: {
|
if (atQQ) {
|
||||||
const replyMsgId = sendMsg.data.id;
|
atQQ = atQQ.toString();
|
||||||
if (replyMsgId) {
|
if (atQQ === 'all') {
|
||||||
const replyMsg = await dbUtil.getMsgByShortId(parseInt(replyMsgId));
|
sendElements.push(SendMsgElementConstructor.at(atQQ, atQQ, AtType.atAll, '全体成员'));
|
||||||
if (replyMsg) {
|
|
||||||
sendElements.push(SendMsgElementConstructor.reply(replyMsg.msgSeq, replyMsg.msgId, replyMsg.senderUin!, replyMsg.senderUin!));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.face: {
|
|
||||||
const faceId = sendMsg.data?.id;
|
|
||||||
if (faceId) {
|
|
||||||
sendElements.push(SendMsgElementConstructor.face(parseInt(faceId)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.mface: {
|
|
||||||
sendElements.push(
|
|
||||||
SendMsgElementConstructor.mface(sendMsg.data.emoji_package_id, sendMsg.data.emoji_id, sendMsg.data.key, sendMsg.data.summary),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.image:
|
|
||||||
case OB11MessageDataType.file:
|
|
||||||
case OB11MessageDataType.video:
|
|
||||||
case OB11MessageDataType.voice: {
|
|
||||||
let file = sendMsg.data?.file;
|
|
||||||
const payloadFileName = sendMsg.data?.name;
|
|
||||||
if (file) {
|
|
||||||
const cache = await dbUtil.getFileCacheByName(file);
|
|
||||||
if (cache) {
|
|
||||||
if (fs.existsSync(cache.path)) {
|
|
||||||
file = 'file://' + cache.path;
|
|
||||||
}
|
|
||||||
else if (cache.url) {
|
|
||||||
file = cache.url;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const fileMsg = await dbUtil.getMsgByLongId(cache.msgId);
|
|
||||||
if (fileMsg) {
|
|
||||||
const downloadPath = await NTQQFileApi.downloadMedia(fileMsg.msgId, fileMsg.chatType, fileMsg.peerUid,
|
|
||||||
cache.elementId, '', '');
|
|
||||||
cache.path = downloadPath!;
|
|
||||||
dbUtil.updateFileCache(cache).then();
|
|
||||||
file = 'file://' + cache.path;
|
|
||||||
}
|
|
||||||
// await sleep(1000);
|
|
||||||
|
|
||||||
// log('download result', downloadPath);
|
|
||||||
// log('下载完成后的msg', msg);
|
|
||||||
}
|
|
||||||
logDebug('找到文件缓存', file);
|
|
||||||
}
|
|
||||||
const { path, isLocal, fileName, errMsg } = (await uri2local(file));
|
|
||||||
if (errMsg) {
|
|
||||||
logError('文件下载失败', errMsg);
|
|
||||||
throw Error('文件下载失败' + errMsg);
|
|
||||||
// throw (errMsg);
|
|
||||||
// continue
|
|
||||||
}
|
|
||||||
if (path) {
|
|
||||||
if (!isLocal) { // 只删除http和base64转过来的文件
|
|
||||||
deleteAfterSentFiles.push(path);
|
|
||||||
}
|
|
||||||
if (sendMsg.type === OB11MessageDataType.file) {
|
|
||||||
logDebug('发送文件', path, payloadFileName || fileName);
|
|
||||||
sendElements.push(await SendMsgElementConstructor.file(path, payloadFileName || fileName));
|
|
||||||
}
|
|
||||||
else if (sendMsg.type === OB11MessageDataType.video) {
|
|
||||||
logDebug('发送视频', path, payloadFileName || fileName);
|
|
||||||
let thumb = sendMsg.data?.thumb;
|
|
||||||
if (thumb) {
|
|
||||||
const uri2LocalRes = await uri2local(thumb);
|
|
||||||
if (uri2LocalRes.success) {
|
|
||||||
thumb = uri2LocalRes.path;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sendElements.push(await SendMsgElementConstructor.video(path, payloadFileName || fileName, thumb));
|
|
||||||
}
|
|
||||||
else if (sendMsg.type === OB11MessageDataType.voice) {
|
|
||||||
sendElements.push(await SendMsgElementConstructor.ptt(path));
|
|
||||||
}
|
|
||||||
else if (sendMsg.type === OB11MessageDataType.image) {
|
|
||||||
sendElements.push(await SendMsgElementConstructor.pic(path, sendMsg.data.summary || '', <PicSubType>parseInt(sendMsg.data?.subType?.toString() || '0')));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.json: {
|
|
||||||
sendElements.push(SendMsgElementConstructor.ark(sendMsg.data.data));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.dice: {
|
|
||||||
const resultId = sendMsg.data?.result;
|
|
||||||
sendElements.push(SendMsgElementConstructor.dice(resultId));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.RPS: {
|
|
||||||
const resultId = sendMsg.data?.result;
|
|
||||||
sendElements.push(SendMsgElementConstructor.rps(resultId));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.markdown: {
|
|
||||||
const content = sendMsg.data?.content;
|
|
||||||
sendElements.push(SendMsgElementConstructor.markdown(content));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OB11MessageDataType.music: {
|
|
||||||
const musicData = sendMsg.data;
|
|
||||||
if (musicData.type === 'custom') {
|
|
||||||
if (!musicData.url) {
|
|
||||||
logError('自定义音卡缺少参数url');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!musicData.audio) {
|
|
||||||
logError('自定义音卡缺少参数audio');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!musicData.title) {
|
|
||||||
logError('自定义音卡缺少参数title');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!['qq', '163'].includes(musicData.type)) {
|
// const atMember = group?.members.find(m => m.uin == atQQ)
|
||||||
logError('音乐卡片type错误, 只支持qq、163、custom,当前type:', musicData.type);
|
const atMember = await getGroupMember(group?.groupCode, atQQ);
|
||||||
break;
|
if (atMember) {
|
||||||
|
sendElements.push(SendMsgElementConstructor.at(atQQ, atMember.uid, AtType.atUser, atMember.cardName || atMember.nick));
|
||||||
}
|
}
|
||||||
if (!musicData.id) {
|
|
||||||
logError('音乐卡片缺少参数id');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const postData = { ...sendMsg.data } as IdMusicSignPostData | CustomMusicSignPostData;
|
|
||||||
if (sendMsg.data.type === 'custom' && sendMsg.data.content) {
|
|
||||||
(postData as CustomMusicSignPostData).singer = sendMsg.data.content;
|
|
||||||
delete (postData as OB11MessageCustomMusic['data']).content;
|
|
||||||
}
|
|
||||||
const musicMsgElement = await genMusicElement(postData);
|
|
||||||
logDebug('生成音乐消息', musicMsgElement);
|
|
||||||
if (musicMsgElement) {
|
|
||||||
sendElements.push(musicMsgElement);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.reply: {
|
||||||
|
const replyMsgId = sendMsg.data.id;
|
||||||
|
if (replyMsgId) {
|
||||||
|
const replyMsg = await dbUtil.getMsgByShortId(parseInt(replyMsgId));
|
||||||
|
if (replyMsg) {
|
||||||
|
sendElements.push(SendMsgElementConstructor.reply(replyMsg.msgSeq, replyMsg.msgId, replyMsg.senderUin!, replyMsg.senderUin!));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.face: {
|
||||||
|
const faceId = sendMsg.data?.id;
|
||||||
|
if (faceId) {
|
||||||
|
sendElements.push(SendMsgElementConstructor.face(parseInt(faceId)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.mface: {
|
||||||
|
sendElements.push(
|
||||||
|
SendMsgElementConstructor.mface(sendMsg.data.emoji_package_id, sendMsg.data.emoji_id, sendMsg.data.key, sendMsg.data.summary),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.image:
|
||||||
|
case OB11MessageDataType.file:
|
||||||
|
case OB11MessageDataType.video:
|
||||||
|
case OB11MessageDataType.voice: {
|
||||||
|
let file = sendMsg.data?.file;
|
||||||
|
const payloadFileName = sendMsg.data?.name;
|
||||||
|
if (file) {
|
||||||
|
const cache = await dbUtil.getFileCacheByName(file);
|
||||||
|
if (cache) {
|
||||||
|
if (fs.existsSync(cache.path)) {
|
||||||
|
file = 'file://' + cache.path;
|
||||||
|
}
|
||||||
|
else if (cache.url) {
|
||||||
|
file = cache.url;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const fileMsg = await dbUtil.getMsgByLongId(cache.msgId);
|
||||||
|
if (fileMsg) {
|
||||||
|
const downloadPath = await NTQQFileApi.downloadMedia(fileMsg.msgId, fileMsg.chatType, fileMsg.peerUid,
|
||||||
|
cache.elementId, '', '');
|
||||||
|
cache.path = downloadPath!;
|
||||||
|
dbUtil.updateFileCache(cache).then();
|
||||||
|
file = 'file://' + cache.path;
|
||||||
|
}
|
||||||
|
// await sleep(1000);
|
||||||
|
|
||||||
|
// log('download result', downloadPath);
|
||||||
|
// log('下载完成后的msg', msg);
|
||||||
|
}
|
||||||
|
logDebug('找到文件缓存', file);
|
||||||
|
}
|
||||||
|
const { path, isLocal, fileName, errMsg } = (await uri2local(file));
|
||||||
|
if (errMsg) {
|
||||||
|
logError('文件下载失败', errMsg);
|
||||||
|
throw Error('文件下载失败' + errMsg);
|
||||||
|
// throw (errMsg);
|
||||||
|
// continue
|
||||||
|
}
|
||||||
|
if (path) {
|
||||||
|
if (!isLocal) { // 只删除http和base64转过来的文件
|
||||||
|
deleteAfterSentFiles.push(path);
|
||||||
|
}
|
||||||
|
if (sendMsg.type === OB11MessageDataType.file) {
|
||||||
|
logDebug('发送文件', path, payloadFileName || fileName);
|
||||||
|
sendElements.push(await SendMsgElementConstructor.file(path, payloadFileName || fileName));
|
||||||
|
}
|
||||||
|
else if (sendMsg.type === OB11MessageDataType.video) {
|
||||||
|
logDebug('发送视频', path, payloadFileName || fileName);
|
||||||
|
let thumb = sendMsg.data?.thumb;
|
||||||
|
if (thumb) {
|
||||||
|
const uri2LocalRes = await uri2local(thumb);
|
||||||
|
if (uri2LocalRes.success) {
|
||||||
|
thumb = uri2LocalRes.path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sendElements.push(await SendMsgElementConstructor.video(path, payloadFileName || fileName, thumb));
|
||||||
|
}
|
||||||
|
else if (sendMsg.type === OB11MessageDataType.voice) {
|
||||||
|
sendElements.push(await SendMsgElementConstructor.ptt(path));
|
||||||
|
}
|
||||||
|
else if (sendMsg.type === OB11MessageDataType.image) {
|
||||||
|
sendElements.push(await SendMsgElementConstructor.pic(path, sendMsg.data.summary || '', <PicSubType>parseInt(sendMsg.data?.subType?.toString() || '0')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.json: {
|
||||||
|
sendElements.push(SendMsgElementConstructor.ark(sendMsg.data.data));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.dice: {
|
||||||
|
const resultId = sendMsg.data?.result;
|
||||||
|
sendElements.push(SendMsgElementConstructor.dice(resultId));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.RPS: {
|
||||||
|
const resultId = sendMsg.data?.result;
|
||||||
|
sendElements.push(SendMsgElementConstructor.rps(resultId));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.markdown: {
|
||||||
|
const content = sendMsg.data?.content;
|
||||||
|
sendElements.push(SendMsgElementConstructor.markdown(content));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OB11MessageDataType.music: {
|
||||||
|
const musicData = sendMsg.data;
|
||||||
|
if (musicData.type === 'custom') {
|
||||||
|
if (!musicData.url) {
|
||||||
|
logError('自定义音卡缺少参数url');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!musicData.audio) {
|
||||||
|
logError('自定义音卡缺少参数audio');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!musicData.title) {
|
||||||
|
logError('自定义音卡缺少参数title');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!['qq', '163'].includes(musicData.type)) {
|
||||||
|
logError('音乐卡片type错误, 只支持qq、163、custom,当前type:', musicData.type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!musicData.id) {
|
||||||
|
logError('音乐卡片缺少参数id');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const postData = { ...sendMsg.data } as IdMusicSignPostData | CustomMusicSignPostData;
|
||||||
|
if (sendMsg.data.type === 'custom' && sendMsg.data.content) {
|
||||||
|
(postData as CustomMusicSignPostData).singer = sendMsg.data.content;
|
||||||
|
delete (postData as OB11MessageCustomMusic['data']).content;
|
||||||
|
}
|
||||||
|
const musicMsgElement = await genMusicElement(postData);
|
||||||
|
logDebug('生成音乐消息', musicMsgElement);
|
||||||
|
if (musicMsgElement) {
|
||||||
|
sendElements.push(musicMsgElement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -564,14 +564,14 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
|
|||||||
logDebug(sendElementsSplit);
|
logDebug(sendElementsSplit);
|
||||||
}
|
}
|
||||||
// log("分割后的转发节点", sendElementsSplit)
|
// log("分割后的转发节点", sendElementsSplit)
|
||||||
let MsgNodeList: Promise<RawMessage>[] = [];
|
const MsgNodeList: Promise<RawMessage>[] = [];
|
||||||
for (const eles of sendElementsSplit) {
|
for (const eles of sendElementsSplit) {
|
||||||
MsgNodeList.push(sendMsg(selfPeer, eles, [], true));
|
MsgNodeList.push(sendMsg(selfPeer, eles, [], true));
|
||||||
await sleep(Math.trunc(sendElementsSplit.length / 10) * 100);
|
await sleep(Math.trunc(sendElementsSplit.length / 10) * 100);
|
||||||
//await sleep(10);
|
//await sleep(10);
|
||||||
}
|
}
|
||||||
for (const msgNode of MsgNodeList) {
|
for (const msgNode of MsgNodeList) {
|
||||||
let result = await msgNode;
|
const result = await msgNode;
|
||||||
nodeMsgIds.push(result.msgId);
|
nodeMsgIds.push(result.msgId);
|
||||||
logDebug('转发节点生成成功', result.msgId);
|
logDebug('转发节点生成成功', result.msgId);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user