Q2TG/src/controllers/MiraiSkipFilterController.ts

30 lines
1.1 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Instance from '../models/Instance';
import Telegram from '../client/Telegram';
import OicqClient from '../client/OicqClient';
import { GroupMessageEvent, MiraiElem, PrivateMessageEvent } from 'icqq';
export default class {
constructor(private readonly instance: Instance,
private readonly tgBot: Telegram,
// private readonly tgUser: Telegram,
private readonly qqBot: OicqClient) {
qqBot.addNewMessageEventHandler(this.onQqMessage);
}
// 当 mapInstance 用同服务器其他个人模式账号发送消息后message mirai 会带 q2tgSkip=true
// 防止 bot 重新收到消息再转一圈回来重新转发或者重新响应命令
private onQqMessage = async (event: PrivateMessageEvent | GroupMessageEvent) => {
if ('friend' in event) return;
if (!event.message) return;
const messageMirai = event.message.find(it => it.type === 'mirai') as MiraiElem;
if (messageMirai) {
try {
const miraiData = JSON.parse(messageMirai.data);
if (miraiData.q2tgSkip) return true;
}
catch {
}
}
};
}