新增后台命令索引页面与群命令视图
This commit is contained in:
@@ -297,7 +297,7 @@ class RobotMenuRenderTool:
|
||||
"status_label": str(normalized_snapshot.get("status_label") or "").strip(),
|
||||
}
|
||||
|
||||
def _collect_command_catalog(self, group_id: str, requester_id: str) -> dict:
|
||||
def _collect_command_catalog(self, group_id: str, requester_id: str, force_admin: Optional[bool] = None) -> dict:
|
||||
"""采集当前群和当前身份视角下的命令清单。
|
||||
|
||||
输出结构分三层:
|
||||
@@ -307,7 +307,10 @@ class RobotMenuRenderTool:
|
||||
"""
|
||||
plugin_manager = self._get_plugin_manager()
|
||||
snapshots = plugin_manager.get_plugin_snapshots()
|
||||
is_admin = bool(GroupBotManager.is_admin_for_group(requester_id, group_id)) if group_id else bool(GroupBotManager.is_admin(requester_id))
|
||||
if force_admin is None:
|
||||
is_admin = bool(GroupBotManager.is_admin_for_group(requester_id, group_id)) if group_id else bool(GroupBotManager.is_admin(requester_id))
|
||||
else:
|
||||
is_admin = bool(force_admin)
|
||||
|
||||
available_manual = []
|
||||
available_auto = []
|
||||
@@ -356,9 +359,13 @@ class RobotMenuRenderTool:
|
||||
"generated_at": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
|
||||
}
|
||||
|
||||
def build_command_catalog_data(self, group_id: str, requester_id: str, force_admin: Optional[bool] = None) -> dict:
|
||||
"""对外暴露统一的命令目录结构,供机器人菜单和后台页面共同复用。"""
|
||||
return self._collect_command_catalog(group_id, requester_id, force_admin=force_admin)
|
||||
|
||||
def build_command_catalog_text(self, group_id: str, requester_id: str) -> str:
|
||||
"""构建适合直接发送给用户的文本版命令清单。"""
|
||||
catalog = self._collect_command_catalog(group_id, requester_id)
|
||||
catalog = self.build_command_catalog_data(group_id, requester_id)
|
||||
lines = [
|
||||
"📚 当前群指令清单",
|
||||
f"群ID:{catalog['group_id'] or '私聊'}",
|
||||
@@ -411,7 +418,7 @@ class RobotMenuRenderTool:
|
||||
|
||||
def build_command_catalog_markdown(self, group_id: str, requester_id: str) -> str:
|
||||
"""构建适合图片渲染的 Markdown 版指令清单。"""
|
||||
catalog = self._collect_command_catalog(group_id, requester_id)
|
||||
catalog = self.build_command_catalog_data(group_id, requester_id)
|
||||
lines = [
|
||||
"# 机器人指令清单",
|
||||
"",
|
||||
|
||||
Reference in New Issue
Block a user