(
client: TelegramClient,
chatId: any,
userId: number
)
| 535 | // ==================== 消息管理器 ==================== |
| 536 | class MessageManager { |
| 537 | static async smartEdit( |
| 538 | message: Api.Message, |
| 539 | text: string, |
| 540 | deleteAfter: number = CONFIG.MESSAGE_AUTO_DELETE, |
| 541 | parseMode: "html" | "md" = "html" |
| 542 | ): Promise<Api.Message> { |
| 543 | try { |
| 544 | const client = await getGlobalClient(); |
| 545 | if (!client) return message; |
| 546 | |
| 547 | await client.editMessage(message.peerId, { |
| 548 | message: message.id, |
| 549 | text: text, |
| 550 | parseMode: parseMode, |
| 551 | linkPreview: false, |
| 552 | }); |
| 553 | |
| 554 | if (deleteAfter > 0) { |
| 555 | const lifecycle = getCurrentGenerationContext(); |
| 556 | if (lifecycle) { |
| 557 | lifecycle.setTimeout(async () => { |
| 558 | try { |
| 559 | await client.deleteMessages(message.peerId, [message.id], { |
| 560 | revoke: true, |
| 561 | }); |
| 562 | } catch (e) { |
| 563 | const msg = e instanceof Error ? e.message : String(e); |
| 564 | if (!msg.includes('MESSAGE_ID_INVALID')) { |
| 565 | console.error(`删除消息失败: ${e}`); |
| 566 | } |
| 567 | } |
| 568 | }, deleteAfter * 1000, { label: 'aban:smartEdit-delayed-delete' }); |
| 569 | } |
| 570 | } |
| 571 |
no test coverage detected