✨ feat(tag): 实现群组标签自动清理及手动清理功能

This commit is contained in:
webjoin111
2025-11-15 12:43:16 +08:00
parent c36c161b0e
commit 50c04f3625
4 changed files with 82 additions and 0 deletions
@@ -176,6 +176,7 @@ tag_cmd = on_alconna(
help_text="删除标签",
),
Subcommand("clear", help_text="清空所有标签"),
Subcommand("prune", alias=["check", "清理"], help_text="清理无效的群组关联"),
Subcommand(
"clone",
Args["source_name", str]["new_name", str],
@@ -192,6 +193,13 @@ tag_cmd = on_alconna(
block=True,
)
tag_cmd.shortcut(
"清理标签",
command="tag",
arguments=["prune"],
prefix=True,
)
@tag_cmd.assign("list")
async def handle_list():
@@ -466,3 +474,10 @@ async def handle_clone(
await MessageUtils.build_message(msg).finish()
except (ValueError, IntegrityError) as e:
await MessageUtils.build_message(f"克隆失败: {e}").finish()
@tag_cmd.assign("prune")
async def handle_prune():
deleted_count = await tag_manager.prune_stale_group_links()
msg = f"清理完成!共移除了 {deleted_count} 个无效的群组关联。"
await MessageUtils.build_message(msg).finish()