(msg: Api.Message, taskIdStr: string)
| 548 | }); |
| 549 | |
| 550 | await msg.edit({ text: response, parseMode: "html" }); |
| 551 | } |
| 552 | |
| 553 | private async handleRemoveTask(msg: Api.Message, taskIdStr: string): Promise<void> { |
| 554 | const taskId = parseInt(taskIdStr); |
| 555 | if (isNaN(taskId)) { |
| 556 | await msg.edit({ text: "❌ 请输入有效的任务ID", parseMode: "html" }); |
| 557 | return; |
| 558 | } |
| 559 | |
| 560 | const task = this.taskManager.getTask(taskId); |
| 561 | if (!task) { |
| 562 | await msg.edit({ text: "❌ 任务不存在", parseMode: "html" }); |
| 563 | return; |
| 564 | } |
| 565 | |
| 566 | // 权限检查:只能删除自己的任务或者是管理员 |
| 567 | const chatId = msg.chatId?.toJSNumber() || 0; |
| 568 | const userId = msg.senderId?.toJSNumber(); |
| 569 | |
| 570 | if (task.cid !== chatId && !(await this.isSudoUser(userId))) { |
| 571 | await msg.edit({ text: "❌ 只能删除自己的任务", parseMode: "html" }); |
| 572 | return; |
| 573 | } |
| 574 | |
| 575 | const success = await this.taskManager.removeTask(taskId); |
| 576 | if (success) { |
| 577 | await msg.edit({ text: `✅ 已删除任务 #${taskId}`, parseMode: "html" }); |
| 578 | } else { |
| 579 | await msg.edit({ text: "❌ 删除任务失败", parseMode: "html" }); |
| 580 | } |
| 581 | } |
| 582 | |
| 583 | private async handlePauseTask(msg: Api.Message, taskIdStr: string): Promise<void> { |
no test coverage detected