mirror of https://github.com/Nofated095/Q2TG.git
feat: 增加禁用在 tg 同步撤回消息的 flag
This commit is contained in:
parent
d6dcdd0bbf
commit
31d9f503f1
|
@ -2,7 +2,7 @@ import { BigInteger } from 'big-integer';
|
|||
import { Api, TelegramClient, utils } from 'telegram';
|
||||
import { ButtonLike, Entity, EntityLike, MessageIDLike } from 'telegram/define';
|
||||
import WaitForMessageHelper from '../helpers/WaitForMessageHelper';
|
||||
import { SendMessageParams } from 'telegram/client/messages';
|
||||
import { EditMessageParams, SendMessageParams } from 'telegram/client/messages';
|
||||
import { CustomFile } from 'telegram/client/uploads';
|
||||
import Telegram from './Telegram';
|
||||
import createPaginatedInlineSelector from '../utils/paginatedInlineSelector';
|
||||
|
@ -186,6 +186,10 @@ export default class TelegramChat {
|
|||
return await this.client.deleteMessages(this.entity, messageId, { revoke: true });
|
||||
}
|
||||
|
||||
public async editMessages(params: EditMessageParams) {
|
||||
return await this.client.editMessage(this.entity, params);
|
||||
}
|
||||
|
||||
public async inviteMember(member: EntityLike | EntityLike[]) {
|
||||
if (!Array.isArray(member)) {
|
||||
member = [member];
|
||||
|
|
|
@ -2,7 +2,8 @@ enum flags {
|
|||
DISABLE_Q2TG = 1,
|
||||
DISABLE_TG2Q = 1 << 1,
|
||||
DISABLE_JOIN_NOTICE = 1 << 2,
|
||||
DISABLE_POKE = 1 << 3
|
||||
DISABLE_POKE = 1 << 3,
|
||||
NO_DELETE_MESSAGE = 1 << 4,
|
||||
}
|
||||
|
||||
export default flags;
|
||||
|
|
|
@ -17,8 +17,8 @@ export default class DeleteMessageController {
|
|||
tgBot.addNewMessageEventHandler(this.onTelegramMessage);
|
||||
tgBot.addEditedMessageEventHandler(this.onTelegramEditMessage);
|
||||
tgUser.addDeletedMessageEventHandler(this.onTgDeletedMessage);
|
||||
oicq.on('notice.friend.recall', this.onQqFriendRecall);
|
||||
oicq.on('notice.group.recall', this.onQqGroupRecall);
|
||||
oicq.on('notice.friend.recall', this.onQqRecall);
|
||||
oicq.on('notice.group.recall', this.onQqRecall);
|
||||
}
|
||||
|
||||
private onTelegramMessage = async (message: Api.Message) => {
|
||||
|
@ -42,14 +42,8 @@ export default class DeleteMessageController {
|
|||
return await this.onTelegramMessage(message);
|
||||
};
|
||||
|
||||
private onQqFriendRecall = async (event: FriendRecallEvent) => {
|
||||
const pair = this.instance.forwardPairs.find(event.friend);
|
||||
if (!pair) return;
|
||||
await this.deleteMessageService.handleQqRecall(event, pair);
|
||||
};
|
||||
|
||||
private onQqGroupRecall = async (event: GroupRecallEvent) => {
|
||||
const pair = this.instance.forwardPairs.find(event.group);
|
||||
private onQqRecall = async (event: FriendRecallEvent | GroupRecallEvent) => {
|
||||
const pair = this.instance.forwardPairs.find('friend' in event ? event.friend : event.group);
|
||||
if (!pair) return;
|
||||
await this.deleteMessageService.handleQqRecall(event, pair);
|
||||
};
|
||||
|
|
|
@ -7,6 +7,7 @@ import Instance from '../models/Instance';
|
|||
import { Pair } from '../models/Pair';
|
||||
import { consumer } from '../utils/highLevelFunces';
|
||||
import forwardHelper from '../helpers/forwardHelper';
|
||||
import flags from '../constants/flags';
|
||||
|
||||
export default class DeleteMessageService {
|
||||
private readonly log: Logger;
|
||||
|
@ -143,11 +144,19 @@ export default class DeleteMessageService {
|
|||
instanceId: this.instance.id,
|
||||
},
|
||||
});
|
||||
if (message) {
|
||||
if (!message) return;
|
||||
if (pair.flags & flags.NO_DELETE_MESSAGE) {
|
||||
await pair.tg.editMessages({
|
||||
message: message.tgMsgId,
|
||||
text: `<del>${message.tgMessageText}</del>\n<i>此消息已删除</i>`,
|
||||
parseMode: 'html',
|
||||
});
|
||||
}
|
||||
else {
|
||||
await pair.tg.deleteMessages(message.tgMsgId);
|
||||
await db.message.delete({
|
||||
where: { id: message.id },
|
||||
});
|
||||
await pair.tg.deleteMessages(message.tgMsgId);
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
|
|
Loading…
Reference in New Issue