diff --git a/base/ctx/context.go b/base/ctx/context.go index 2cf7ca0c..14c27b7e 100644 --- a/base/ctx/context.go +++ b/base/ctx/context.go @@ -7,9 +7,12 @@ import ( kit "shylinux.com/x/toolkits" ) -func _context_list(m *ice.Message, sub *ice.Context) { +func _context_list(m *ice.Message, sub *ice.Context, name string) { m.Travel(func(p *ice.Context, s *ice.Context) { - m.Push(kit.MDB_NAME, s.Cap(ice.CTX_FOLLOW)) + if !strings.HasPrefix(s.Cap(ice.CTX_FOLLOW), name+ice.PT) { + return + } + m.Push(kit.MDB_NAME, strings.TrimPrefix(s.Cap(ice.CTX_FOLLOW), name+ice.PT)) m.Push(kit.MDB_STATUS, s.Cap(ice.CTX_STATUS)) m.Push(kit.MDB_STREAM, s.Cap(ice.CTX_STREAM)) m.Push(kit.MDB_HELP, s.Help) @@ -23,14 +26,14 @@ func init() { CONTEXT: {Name: "context name=web.chat action=context,command,config key auto spide", Help: "模块", Action: ice.MergeAction(map[string]*ice.Action{ "spide": {Name: "spide", Help: "架构图", Hand: func(m *ice.Message, arg ...string) { if len(arg) == 0 || arg[1] == CONTEXT { // 模块列表 - m.Cmdy(CONTEXT, kit.Select("ice", arg, 0), CONTEXT) - m.Display("/plugin/story/spide.js", "root", kit.Select("ice", arg, 0), - "field", "name", "split", ".", "prefix", SPIDE) + m.Cmdy(CONTEXT, kit.Select(ice.ICE, arg, 0), CONTEXT) + m.Display("/plugin/story/spide.js", "root", kit.Select(ice.ICE, arg, 0), + "field", "name", "split", ice.PT, "prefix", "spide") return } - if index := kit.Keys(arg[1]); strings.HasSuffix(index, arg[2]) { // 命令列表 + if index := kit.Keys(arg[0], arg[1]); strings.HasSuffix(index, arg[2]) { // 命令列表 m.Cmdy(CONTEXT, index, COMMAND).Table(func(i int, value map[string]string, head []string) { - m.Push("file", index) + m.Push("file", arg[1]) }) } else { // 命令详情 m.Cmdy(COMMAND, kit.Keys(index, strings.Split(arg[2], " ")[0])) @@ -43,7 +46,7 @@ func init() { switch kit.Select(CONTEXT, arg, 1) { case CONTEXT: - _context_list(msg, s) + _context_list(msg, s, kit.Select("", arg, 0)) case COMMAND: msg.Cmdy(COMMAND, arg[2:]) case CONFIG: