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 OicqClient from '../client/OicqClient';
|
||||||
import ForwardService from '../services/ForwardService';
|
import ForwardService from '../services/ForwardService';
|
||||||
import forwardPairs from '../providers/forwardPairs';
|
import forwardPairs from '../providers/forwardPairs';
|
||||||
import { Friend, Group, GroupMessageEvent, PrivateMessageEvent } from 'oicq';
|
import { GroupMessageEvent, PrivateMessageEvent } from 'oicq';
|
||||||
import db from '../providers/db';
|
import db from '../providers/db';
|
||||||
import { Api } from 'telegram';
|
import { Api } from 'telegram';
|
||||||
|
import { getLogger } from 'log4js';
|
||||||
|
|
||||||
export default class ForwardController {
|
export default class ForwardController {
|
||||||
private readonly forwardService: ForwardService;
|
private readonly forwardService: ForwardService;
|
||||||
|
private readonly log = getLogger('ForwardController');
|
||||||
|
|
||||||
constructor(private readonly tgBot: Telegram,
|
constructor(private readonly tgBot: Telegram,
|
||||||
private readonly tgUser: Telegram,
|
private readonly tgUser: Telegram,
|
||||||
|
@ -19,54 +21,58 @@ export default class ForwardController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private onQqMessage = async (event: PrivateMessageEvent | GroupMessageEvent) => {
|
private onQqMessage = async (event: PrivateMessageEvent | GroupMessageEvent) => {
|
||||||
let target: Friend | Group;
|
try {
|
||||||
if (event.message_type === 'private') {
|
const target = event.message_type === 'private' ? event.friend : event.group;
|
||||||
target = event.friend;
|
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 {
|
catch (e) {
|
||||||
target = event.group;
|
this.log.error('处理 QQ 消息时遇到问题', e);
|
||||||
}
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private onTelegramMessage = async (message: Api.Message) => {
|
private onTelegramMessage = async (message: Api.Message) => {
|
||||||
const pair = forwardPairs.find(message.chat);
|
try{
|
||||||
if (!pair) return;
|
const pair = forwardPairs.find(message.chat);
|
||||||
const qqMessageSent = await this.forwardService.forwardFromTelegram(message, pair);
|
if (!pair) return;
|
||||||
// 返回的信息不太够
|
const qqMessageSent = await this.forwardService.forwardFromTelegram(message, pair);
|
||||||
if (qqMessageSent) {
|
// 返回的信息不太够
|
||||||
// 更新数据库
|
if (qqMessageSent) {
|
||||||
await db.message.create({
|
// 更新数据库
|
||||||
data: {
|
await db.message.create({
|
||||||
qqRoomId: pair.qqRoomId,
|
data: {
|
||||||
qqSenderId: this.oicq.uin,
|
qqRoomId: pair.qqRoomId,
|
||||||
time: qqMessageSent.time,
|
qqSenderId: this.oicq.uin,
|
||||||
brief: qqMessageSent.brief,
|
time: qqMessageSent.time,
|
||||||
seq: qqMessageSent.seq,
|
brief: qqMessageSent.brief,
|
||||||
rand: qqMessageSent.rand,
|
seq: qqMessageSent.seq,
|
||||||
pktnum: 1,
|
rand: qqMessageSent.rand,
|
||||||
tgChatId: Number(pair.tg.id),
|
pktnum: 1,
|
||||||
tgMsgId: message.id,
|
tgChatId: Number(pair.tg.id),
|
||||||
},
|
tgMsgId: message.id,
|
||||||
});
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
this.log.error('处理 Telegram 消息时遇到问题', e);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue