mirror of
https://shylinux.com/x/icebergs
synced 2025-04-25 17:18:05 +08:00
40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package ctx
|
|
|
|
import (
|
|
ice "github.com/shylinux/icebergs"
|
|
kit "github.com/shylinux/toolkits"
|
|
)
|
|
|
|
func _context_list(m *ice.Message, all bool) {
|
|
m.Travel(func(p *ice.Context, s *ice.Context) {
|
|
m.Push(kit.MDB_NAME, kit.Select("ice", s.Cap(ice.CTX_FOLLOW)))
|
|
m.Push(ice.CTX_STATUS, s.Cap(ice.CTX_STATUS))
|
|
m.Push(ice.CTX_STREAM, s.Cap(ice.CTX_STREAM))
|
|
m.Push(kit.MDB_HELP, s.Help)
|
|
})
|
|
}
|
|
|
|
const CONTEXT = "context"
|
|
|
|
func init() {
|
|
Index.Merge(&ice.Context{
|
|
Commands: map[string]*ice.Command{
|
|
CONTEXT: {Name: "context name=web.chat action=context,command,config key auto", Help: "模块", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
m.Search(kit.Select("ice", arg, 0)+".", func(p *ice.Context, s *ice.Context, key string) {
|
|
msg := m.Spawn(s)
|
|
defer m.Copy(msg)
|
|
|
|
switch kit.Select(CONTEXT, arg, 1) {
|
|
case CONTEXT:
|
|
_context_list(msg, true)
|
|
case COMMAND:
|
|
msg.Cmdy(COMMAND, arg[2:])
|
|
case CONFIG:
|
|
msg.Cmdy(CONFIG, arg[2:])
|
|
}
|
|
})
|
|
}},
|
|
},
|
|
}, nil)
|
|
}
|