feat(schedulerAdmin): 允许定时任务删除、暂停、恢复命令支持多ID操作

This commit is contained in:
webjoin111 2025-10-29 16:30:39 +08:00
parent 9bba83cfe6
commit b74fb66939
2 changed files with 9 additions and 9 deletions

View File

@ -147,8 +147,8 @@ schedule_cmd = on_alconna(
Subcommand( Subcommand(
"删除", "删除",
Args[ Args[
"schedule_id?", "schedule_ids?",
int, MultiVar(int),
Field(unmatch_tips=lambda text: f"任务ID '{text}' 必须是数字!"), Field(unmatch_tips=lambda text: f"任务ID '{text}' 必须是数字!"),
], ],
*create_targeting_options(), *create_targeting_options(),
@ -158,8 +158,8 @@ schedule_cmd = on_alconna(
Subcommand( Subcommand(
"暂停", "暂停",
Args[ Args[
"schedule_id?", "schedule_ids?",
int, MultiVar(int),
Field(unmatch_tips=lambda text: f"任务ID '{text}' 必须是数字!"), Field(unmatch_tips=lambda text: f"任务ID '{text}' 必须是数字!"),
], ],
*create_targeting_options(), *create_targeting_options(),
@ -169,8 +169,8 @@ schedule_cmd = on_alconna(
Subcommand( Subcommand(
"恢复", "恢复",
Args[ Args[
"schedule_id?", "schedule_ids?",
int, MultiVar(int),
Field(unmatch_tips=lambda text: f"任务ID '{text}' 必须是数字!"), Field(unmatch_tips=lambda text: f"任务ID '{text}' 必须是数字!"),
], ],
*create_targeting_options(), *create_targeting_options(),

View File

@ -158,7 +158,7 @@ async def GetTargeter(
event: Event, event: Event,
bot: Bot, bot: Bot,
arp: Arparma = AlconnaMatches(), arp: Arparma = AlconnaMatches(),
schedule_id: Match[int] = AlconnaMatch("schedule_id"), schedule_ids: Match[list[int]] = AlconnaMatch("schedule_ids"),
plugin_name: Match[str] = AlconnaMatch("plugin_name"), plugin_name: Match[str] = AlconnaMatch("plugin_name"),
group_ids: Match[list[str]] = AlconnaMatch("group_ids"), group_ids: Match[list[str]] = AlconnaMatch("group_ids"),
user_id: Match[str] = AlconnaMatch("user_id"), user_id: Match[str] = AlconnaMatch("user_id"),
@ -172,8 +172,8 @@ async def GetTargeter(
if not subcommand: if not subcommand:
await matcher.finish("内部错误:无法解析子命令。") await matcher.finish("内部错误:无法解析子命令。")
if schedule_id.available: if schedule_ids.available:
return scheduler_manager.target(id=schedule_id.result) return scheduler_manager.target(id__in=schedule_ids.result)
all_enabled = arp.query(f"{subcommand}.all.value", False) all_enabled = arp.query(f"{subcommand}.all.value", False)
global_flag = arp.query(f"{subcommand}.global.value", False) global_flag = arp.query(f"{subcommand}.global.value", False)