(msg: Api.Message)
| 461 | try { |
| 462 | return sudoDB.has(userId); |
| 463 | } finally { |
| 464 | sudoDB.close(); |
| 465 | } |
| 466 | } |
| 467 | |
| 468 | private async handleSendAtCommand(msg: Api.Message): Promise<void> { |
| 469 | const client = await getGlobalClient(); |
| 470 | if (!client) return; |
| 471 | |
| 472 | const text = msg.text || ""; |
| 473 | const parts = text.trim().split(/\s+/); |
| 474 | const command = parts[0]?.replace(/^[.!。]/, "") || ""; |
| 475 | const subCommand = parts[1]?.toLowerCase(); |
| 476 | |
| 477 | try { |
| 478 | // 显示帮助 |
| 479 | if (!subCommand || subCommand === 'help' || subCommand === 'h') { |
| 480 | await msg.edit({ text: this.helpText, parseMode: "html" }); |
| 481 | return; |
| 482 | } |
| 483 | |
| 484 | // 列出任务 |
| 485 | if (subCommand === 'list') { |
| 486 | await this.handleListTasks(msg, parts[2] === 'all'); |
| 487 | return; |
| 488 | } |
| 489 | |
| 490 | // 删除任务 |
| 491 | if (subCommand === 'rm' || subCommand === 'delete') { |
| 492 | await this.handleRemoveTask(msg, parts[2]); |
| 493 | return; |
| 494 | } |
| 495 | |
| 496 | // 暂停任务 |
| 497 | if (subCommand === 'pause') { |
| 498 | await this.handlePauseTask(msg, parts[2]); |
| 499 | return; |
| 500 | } |
| 501 | |
| 502 | // 恢复任务 |
| 503 | if (subCommand === 'resume') { |
| 504 | await this.handleResumeTask(msg, parts[2]); |
| 505 | return; |
| 506 | } |
| 507 | |
| 508 | // 添加新任务 |
| 509 | await this.handleAddTask(msg); |
| 510 | |
| 511 | } catch (error: any) { |
| 512 | await msg.edit({ |
| 513 | text: `❌ <b>错误:</b>${htmlEscape(error.message)}`, |
| 514 | parseMode: "html" |
| 515 | }); |
no test coverage detected