mirror of https://github.com/Nofated095/Q2TG.git
fix: ForwardController 中可能的 UnhandledException
This commit is contained in:
parent
d3e266d80f
commit
80473dde21
|
@ -2,12 +2,14 @@ import Telegram from '../client/Telegram';
|
|||
import OicqClient from '../client/OicqClient';
|
||||
import ForwardService from '../services/ForwardService';
|
||||
import forwardPairs from '../providers/forwardPairs';
|
||||
import { Friend, Group, GroupMessageEvent, PrivateMessageEvent } from 'oicq';
|
||||
import { GroupMessageEvent, PrivateMessageEvent } from 'oicq';
|
||||
import db from '../providers/db';
|
||||
import { Api } from 'telegram';
|
||||
import { getLogger } from 'log4js';
|
||||
|
||||
export default class ForwardController {
|
||||
private readonly forwardService: ForwardService;
|
||||
private readonly log = getLogger('ForwardController');
|
||||
|
||||
constructor(private readonly tgBot: Telegram,
|
||||
private readonly tgUser: Telegram,
|
||||
|
@ -19,54 +21,58 @@ export default class ForwardController {
|
|||
}
|
||||
|
||||
private onQqMessage = async (event: PrivateMessageEvent | GroupMessageEvent) => {
|
||||
let target: Friend | Group;
|
||||
if (event.message_type === 'private') {
|
||||
target = event.friend;
|
||||
try {
|
||||
const target = event.message_type === 'private' ? event.friend : event.group;
|
||||
const pair = forwardPairs.find(target);
|
||||
if (!pair) return;
|
||||
const tgMessage = await this.forwardService.forwardFromQq(event, pair);
|
||||
if (tgMessage) {
|
||||
// 更新数据库
|
||||
await db.message.create({
|
||||
data: {
|
||||
qqRoomId: pair.qqRoomId,
|
||||
qqSenderId: event.user_id,
|
||||
time: event.time,
|
||||
brief: event.raw_message,
|
||||
seq: event.seq,
|
||||
rand: event.rand,
|
||||
pktnum: event.pktnum,
|
||||
tgChatId: Number(pair.tg.id),
|
||||
tgMsgId: tgMessage.id,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
target = event.group;
|
||||
}
|
||||
const pair = forwardPairs.find(target);
|
||||
if (!pair) return;
|
||||
const tgMessage = await this.forwardService.forwardFromQq(event, pair);
|
||||
if (tgMessage) {
|
||||
// 更新数据库
|
||||
await db.message.create({
|
||||
data: {
|
||||
qqRoomId: pair.qqRoomId,
|
||||
qqSenderId: event.user_id,
|
||||
time: event.time,
|
||||
brief: event.raw_message,
|
||||
seq: event.seq,
|
||||
rand: event.rand,
|
||||
pktnum: event.pktnum,
|
||||
tgChatId: Number(pair.tg.id),
|
||||
tgMsgId: tgMessage.id,
|
||||
},
|
||||
});
|
||||
catch (e) {
|
||||
this.log.error('处理 QQ 消息时遇到问题', e);
|
||||
}
|
||||
};
|
||||
|
||||
private onTelegramMessage = async (message: Api.Message) => {
|
||||
const pair = forwardPairs.find(message.chat);
|
||||
if (!pair) return;
|
||||
const qqMessageSent = await this.forwardService.forwardFromTelegram(message, pair);
|
||||
// 返回的信息不太够
|
||||
if (qqMessageSent) {
|
||||
// 更新数据库
|
||||
await db.message.create({
|
||||
data: {
|
||||
qqRoomId: pair.qqRoomId,
|
||||
qqSenderId: this.oicq.uin,
|
||||
time: qqMessageSent.time,
|
||||
brief: qqMessageSent.brief,
|
||||
seq: qqMessageSent.seq,
|
||||
rand: qqMessageSent.rand,
|
||||
pktnum: 1,
|
||||
tgChatId: Number(pair.tg.id),
|
||||
tgMsgId: message.id,
|
||||
},
|
||||
});
|
||||
try{
|
||||
const pair = forwardPairs.find(message.chat);
|
||||
if (!pair) return;
|
||||
const qqMessageSent = await this.forwardService.forwardFromTelegram(message, pair);
|
||||
// 返回的信息不太够
|
||||
if (qqMessageSent) {
|
||||
// 更新数据库
|
||||
await db.message.create({
|
||||
data: {
|
||||
qqRoomId: pair.qqRoomId,
|
||||
qqSenderId: this.oicq.uin,
|
||||
time: qqMessageSent.time,
|
||||
brief: qqMessageSent.brief,
|
||||
seq: qqMessageSent.seq,
|
||||
rand: qqMessageSent.rand,
|
||||
pktnum: 1,
|
||||
tgChatId: Number(pair.tg.id),
|
||||
tgMsgId: message.id,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
this.log.error('处理 Telegram 消息时遇到问题', e);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue