(
message: Api.Message | undefined,
text: string,
deleteAfter: number = CONFIG.MESSAGE_AUTO_DELETE,
parseMode: "html" | "md" = "html"
)
| 146 | parseMode: "html" | "md" = "html" |
| 147 | ): Promise<Api.Message | undefined> { |
| 148 | try { |
| 149 | const client = await getGlobalClient(); |
| 150 | if (!client || !message) return message; |
| 151 | |
| 152 | await client.editMessage(message.peerId, { |
| 153 | message: message.id, |
| 154 | text: text, |
| 155 | parseMode: parseMode, |
| 156 | linkPreview: false, |
| 157 | }); |
| 158 | |
| 159 | if (deleteAfter > 0) { |
| 160 | const timer = setTimeout(async () => { |
| 161 | clearTrackedTimer(timer); |
| 162 | try { |
| 163 | await client.deleteMessages(message.peerId, [message.id], { |
| 164 | revoke: true, |
| 165 | }); |
| 166 | } catch (e) { |
| 167 | console.error(`删除消息失败: ${e}`); |
| 168 | } |
| 169 | }, deleteAfter * 1000); |
| 170 | trackTimer(timer); |
| 171 | } |
| 172 | |
| 173 | return message; |
| 174 | } catch (error: any) { |
| 175 | console.error(`编辑消息失败: ${error.message || error}`); |
| 176 | return message; |
| 177 | } |
| 178 | } |
| 179 | } |
| 180 | |
| 181 | // ==================== 权限管理器 ==================== |
| 182 | class PermissionManager { |
| 183 | static async checkAdminPermission( |
| 184 | client: TelegramClient, |
| 185 | chatId: any |
| 186 | ): Promise<boolean> { |
| 187 | try { |
no test coverage detected