forked from x/icebergs
34 lines
1.1 KiB
Go
34 lines
1.1 KiB
Go
package chat
|
|
|
|
import (
|
|
ice "shylinux.com/x/icebergs"
|
|
"shylinux.com/x/icebergs/base/mdb"
|
|
"shylinux.com/x/icebergs/base/tcp"
|
|
"shylinux.com/x/icebergs/base/web"
|
|
kit "shylinux.com/x/toolkits"
|
|
)
|
|
|
|
const GROUP = "group"
|
|
|
|
func init() {
|
|
Index.MergeCommands(ice.Commands{
|
|
GROUP: {Help: "群组", Actions: ice.MergeActions(ice.Actions{
|
|
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
|
|
switch arg[0] {
|
|
case mdb.NAME:
|
|
m.AdminCmd(web.MATRIX).Table(func(value ice.Maps) {
|
|
m.Push(arg[0], kit.Keys(kit.Select("", ice.OPS, ice.Info.NodeType == web.WORKER), value[web.DOMAIN], value[mdb.NAME]))
|
|
m.Push(mdb.TYPE, value[mdb.TYPE])
|
|
})
|
|
}
|
|
}},
|
|
mdb.CREATE: {Name: "create type*=worker,server,origin, name*"},
|
|
tcp.SEND: {Name: "send text=hi", Hand: func(m *ice.Message, arg ...string) {
|
|
m.Cmd(web.SPACE, m.Option(mdb.NAME), Prefix(MESSAGE), tcp.RECV, mdb.TEXT, m.Option(mdb.TEXT))
|
|
}},
|
|
}, mdb.HashAction(mdb.SHORT, mdb.NAME, mdb.FIELD, "time,type*,name*")), Hand: func(m *ice.Message, arg ...string) {
|
|
mdb.HashSelect(m, arg...).PushAction(tcp.SEND, mdb.REMOVE)
|
|
}},
|
|
})
|
|
}
|