mirror of https://github.com/Nofated095/Q2TG.git
fix: Rich Header 发送失败时自动重试 + 修复发送图片时没有发送人的 bug
This commit is contained in:
parent
eb77e7a936
commit
465ae35d7f
|
@ -371,11 +371,11 @@ export default class ForwardService {
|
|||
this.instance.userMe.username}</b>`;
|
||||
}
|
||||
|
||||
let richHeaderUsed = false;
|
||||
// 发送消息
|
||||
const messageToSend: SendMessageParams = {
|
||||
forceDocument: forceDocument as any, // 恼
|
||||
};
|
||||
message && (messageToSend.message = message);
|
||||
if (files.length === 1) {
|
||||
messageToSend.file = files[0];
|
||||
}
|
||||
|
@ -384,7 +384,7 @@ export default class ForwardService {
|
|||
}
|
||||
else if ((pair.flags | this.instance.flags) & flags.RICH_HEADER) {
|
||||
// 没有文件时才能显示链接预览
|
||||
messageHeader = '';
|
||||
richHeaderUsed = true;
|
||||
const url = new URL('https://q2tg-header.clansty.workers.dev');
|
||||
url.searchParams.set('name', sender);
|
||||
url.searchParams.set('id', event.sender.user_id.toString());
|
||||
|
@ -397,11 +397,29 @@ export default class ForwardService {
|
|||
messageToSend.linkPreview = { showAboveText: true };
|
||||
}
|
||||
|
||||
message = messageHeader + (message && messageHeader ? '\n' : '') + message;
|
||||
if (!richHeaderUsed) {
|
||||
message = messageHeader + (message && messageHeader ? '\n' : '') + message;
|
||||
}
|
||||
message && (messageToSend.message = message);
|
||||
|
||||
buttons.length && (messageToSend.buttons = _.chunk(buttons, 3));
|
||||
replyTo && (messageToSend.replyTo = replyTo);
|
||||
|
||||
const tgMessage = await pair.tg.sendMessage(messageToSend);
|
||||
let tgMessage: Api.Message;
|
||||
try {
|
||||
tgMessage = await pair.tg.sendMessage(messageToSend);
|
||||
}
|
||||
catch (e) {
|
||||
if (richHeaderUsed) {
|
||||
this.log.warn('Rich Header 发送错误', messageToSend.file);
|
||||
delete messageToSend.file;
|
||||
delete messageToSend.linkPreview;
|
||||
message = messageHeader + (message && messageHeader ? '\n' : '') + message;
|
||||
message && (messageToSend.message = message);
|
||||
tgMessage = await pair.tg.sendMessage(messageToSend);
|
||||
}
|
||||
else throw e;
|
||||
}
|
||||
|
||||
if (this.instance.workMode === 'personal' && event.message_type === 'group' && event.atall) {
|
||||
await tgMessage.pin({ notify: false });
|
||||
|
|
Loading…
Reference in New Issue