fix: Rich Header 发送失败时自动重试 + 修复发送图片时没有发送人的 bug

This commit is contained in:
Clansty 2024-02-01 00:38:22 +08:00
parent eb77e7a936
commit 465ae35d7f
No known key found for this signature in database
GPG Key ID: 3A6BE8BAF2EDE134
1 changed files with 22 additions and 4 deletions

View File

@ -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 });