feat: TG 中直接原地转发复读来自 QQ 的消息,转发到 QQ 的复读消息中不包含原消息的发送人名称

This commit is contained in:
Clansty 2024-01-12 20:40:32 +08:00
parent d78be6ebb9
commit 29f4712450
No known key found for this signature in database
GPG Key ID: 3A6BE8BAF2EDE134
1 changed files with 16 additions and 4 deletions

View File

@ -393,7 +393,7 @@ export default class ForwardService {
const senderId = Number(message.senderId || message.sender?.id);
// 这条消息在 tg 中被回复的时候显示的
let brief = '', isSpoilerPhoto = false;
const messageHeader = helper.getUserDisplayName(message.sender) +
let messageHeader = helper.getUserDisplayName(message.sender) +
(message.forward ? ' 转发自 ' +
// 要是隐私设置了,应该会有这个,然后下面两个都获取不到
(message.fwdFrom?.fromName ||
@ -555,8 +555,8 @@ export default class ForwardService {
}
if (message.message && !isSpoilerPhoto) {
if (message.entities) {
const emojiEntities = message.entities.filter(it => it instanceof Api.MessageEntityCustomEmoji) as Api.MessageEntityCustomEmoji[];
const emojiEntities = (message.entities || []).filter(it => it instanceof Api.MessageEntityCustomEmoji) as Api.MessageEntityCustomEmoji[];
if (emojiEntities.length) {
const isMessageAllEmojis = _.sum(emojiEntities.map(it => it.length)) === message.message.length;
const newChain = [] as (string | MessageElem)[];
let messageLeft = message.message;
@ -572,11 +572,23 @@ export default class ForwardService {
});
}
chain.push(messageLeft, ...newChain);
brief += message.message;
}
// Q2TG Bot 转发的消息目前不会包含 custom emoji
else if (message.forward?.senderId?.eq?.(this.tgBot.me.id) && /^.*: ?$/.test(message.message.split('\n')[0])) {
// 复读了某一条来自 QQ 的消息 (Repeat as forward)
const originalMessage = message.message.includes('\n') ?
message.message.substring(message.message.indexOf('\n') + 1) : '';
chain.push(originalMessage);
brief += originalMessage;
messageHeader = helper.getUserDisplayName(message.sender) + ' 转发自 ' +
message.message.substring(0, message.message.indexOf(':')) + ': \n';
}
else {
chain.push(message.message);
brief += message.message;
}
brief += message.message;
}
// 处理回复