mirror of
https://shylinux.com/x/icebergs
synced 2025-04-28 10:12:02 +08:00
opt chat
This commit is contained in:
parent
d8c03d6331
commit
b015003088
@ -7,6 +7,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
|
"github.com/shylinux/icebergs/base/ctx"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
)
|
)
|
||||||
@ -66,15 +67,35 @@ func _daemon_show(m *ice.Message, cmd *exec.Cmd, out, err string) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Inputs(m *ice.Message, field, value string) bool {
|
||||||
|
switch strings.TrimPrefix(field, "extra.") {
|
||||||
|
case POD:
|
||||||
|
m.Cmdy("route")
|
||||||
|
case CTX:
|
||||||
|
m.Cmdy(ctx.CONTEXT)
|
||||||
|
case CMD:
|
||||||
|
m.Cmdy(ctx.CONTEXT, kit.Select(m.Option(CTX), m.Option(kit.Keys("extra", CTX))), ctx.COMMAND)
|
||||||
|
case ARG:
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
PID = "pid"
|
|
||||||
PWD = "pwd"
|
|
||||||
DIR = "dir"
|
DIR = "dir"
|
||||||
ENV = "env"
|
ENV = "env"
|
||||||
|
PID = "pid"
|
||||||
|
PWD = "pwd"
|
||||||
|
|
||||||
|
POD = "pod"
|
||||||
|
CTX = "ctx"
|
||||||
CMD = "cmd"
|
CMD = "cmd"
|
||||||
API = "api"
|
|
||||||
ARG = "arg"
|
ARG = "arg"
|
||||||
|
|
||||||
RUN = "run"
|
RUN = "run"
|
||||||
|
API = "api"
|
||||||
RES = "res"
|
RES = "res"
|
||||||
ERR = "err"
|
ERR = "err"
|
||||||
)
|
)
|
||||||
|
@ -139,3 +139,34 @@ func _hash_inputs(m *ice.Message, prefix, chain string, field, value string) {
|
|||||||
}
|
}
|
||||||
m.Sort(kit.MDB_COUNT, "int_r")
|
m.Sort(kit.MDB_COUNT, "int_r")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func HashAction(key string, fields ...string) map[string]*ice.Action {
|
||||||
|
list := map[string]*ice.Action{
|
||||||
|
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(MODIFY, m.Prefix(key), "", HASH, m.OptionSimple(kit.MDB_HASH), arg)
|
||||||
|
}},
|
||||||
|
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(DELETE, m.Prefix(key), "", HASH, m.OptionSimple(kit.MDB_HASH))
|
||||||
|
}},
|
||||||
|
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(EXPORT, m.Prefix(key), "", HASH)
|
||||||
|
}},
|
||||||
|
IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(IMPORT, m.Prefix(key), "", HASH)
|
||||||
|
}},
|
||||||
|
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(INPUTS, m.Prefix(key), "", HASH, arg)
|
||||||
|
}},
|
||||||
|
}
|
||||||
|
if len(fields) == 0 {
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
|
||||||
|
res := map[string]*ice.Action{}
|
||||||
|
for _, field := range fields {
|
||||||
|
res[field] = list[field]
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
const HASH = "hash"
|
||||||
|
@ -129,3 +129,5 @@ func _list_inputs(m *ice.Message, prefix, chain string, field, value string) {
|
|||||||
}
|
}
|
||||||
m.SortIntR(kit.MDB_COUNT)
|
m.SortIntR(kit.MDB_COUNT)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const LIST = "list"
|
||||||
|
@ -140,8 +140,6 @@ const (
|
|||||||
const (
|
const (
|
||||||
DICT = "dict"
|
DICT = "dict"
|
||||||
META = "meta"
|
META = "meta"
|
||||||
HASH = "hash"
|
|
||||||
LIST = "list"
|
|
||||||
ZONE = "zone"
|
ZONE = "zone"
|
||||||
)
|
)
|
||||||
const (
|
const (
|
||||||
|
@ -59,6 +59,12 @@ func _islocalhost(m *ice.Message, ip string) (ok bool) {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
func IsLocalHost(m *ice.Message, ip string) bool { return _islocalhost(m, ip) }
|
func IsLocalHost(m *ice.Message, ip string) bool { return _islocalhost(m, ip) }
|
||||||
|
func ReplaceLocalhost(m *ice.Message, url string) string {
|
||||||
|
if strings.Contains(url, "://"+LOCALHOST) {
|
||||||
|
url = strings.Replace(url, "://"+LOCALHOST, "://"+m.Cmd(HOST, ice.OptionFields(IP)).Append(IP), 1)
|
||||||
|
}
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
HOSTPORT = "hostport"
|
HOSTPORT = "hostport"
|
||||||
|
@ -103,7 +103,7 @@ func _action_share(m *ice.Message, arg ...string) {
|
|||||||
func _action_list(m *ice.Message, river, storm string) {
|
func _action_list(m *ice.Message, river, storm string) {
|
||||||
m.Option(ice.MSG_RIVER, river)
|
m.Option(ice.MSG_RIVER, river)
|
||||||
m.Cmdy(TOOL, storm).Table(func(index int, value map[string]string, head []string) {
|
m.Cmdy(TOOL, storm).Table(func(index int, value map[string]string, head []string) {
|
||||||
m.Cmdy(m.Space(kit.Select(m.Option(POD), value[POD])), ctx.COMMAND, kit.Keys(value[CTX], value[CMD]))
|
m.Cmdy(m.Space(kit.Select(m.Option(cli.POD), value[cli.POD])), ctx.COMMAND, kit.Keys(value[cli.CTX], value[cli.CMD]))
|
||||||
})
|
})
|
||||||
m.SortInt(kit.MDB_ID)
|
m.SortInt(kit.MDB_ID)
|
||||||
}
|
}
|
||||||
@ -114,8 +114,8 @@ func _action_show(m *ice.Message, river, storm, index string, arg ...string) {
|
|||||||
cmds := []string{index}
|
cmds := []string{index}
|
||||||
prefix := kit.Keys(kit.MDB_HASH, river, TOOL, kit.MDB_HASH, storm)
|
prefix := kit.Keys(kit.MDB_HASH, river, TOOL, kit.MDB_HASH, storm)
|
||||||
if m.Grows(RIVER, prefix, kit.MDB_ID, index, func(index int, value map[string]interface{}) {
|
if m.Grows(RIVER, prefix, kit.MDB_ID, index, func(index int, value map[string]interface{}) {
|
||||||
if cmds = kit.Simple(kit.Keys(value[CTX], value[CMD])); kit.Format(value[POD]) != "" {
|
if cmds = kit.Simple(kit.Keys(value[cli.CTX], value[cli.CMD])); kit.Format(value[cli.POD]) != "" {
|
||||||
m.Option(POD, value[POD])
|
m.Option(cli.POD, value[cli.POD])
|
||||||
}
|
}
|
||||||
}) == nil && m.Warn(!m.Right(cmds), ice.ErrNotRight) {
|
}) == nil && m.Warn(!m.Right(cmds), ice.ErrNotRight) {
|
||||||
return
|
return
|
||||||
@ -127,9 +127,9 @@ func _action_show(m *ice.Message, river, storm, index string, arg ...string) {
|
|||||||
m.Cmdy(_action_proxy(m), cmds, arg)
|
m.Cmdy(_action_proxy(m), cmds, arg)
|
||||||
}
|
}
|
||||||
func _action_proxy(m *ice.Message) (proxy []string) {
|
func _action_proxy(m *ice.Message) (proxy []string) {
|
||||||
if p := m.Option(POD); p != "" {
|
if p := m.Option(cli.POD); p != "" {
|
||||||
proxy = append(proxy, web.SPACE, p)
|
proxy = append(proxy, web.SPACE, p)
|
||||||
m.Option(POD, "")
|
m.Option(cli.POD, "")
|
||||||
}
|
}
|
||||||
return proxy
|
return proxy
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package chat
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
"github.com/shylinux/icebergs/base/web"
|
"github.com/shylinux/icebergs/base/web"
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
@ -17,19 +18,16 @@ func init() {
|
|||||||
)},
|
)},
|
||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
FILES: {Name: "files hash auto upload", Help: "文件夹", Action: map[string]*ice.Action{
|
FILES: {Name: "files hash auto upload", Help: "文件夹", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
web.UPLOAD: {Name: "upload", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
web.UPLOAD: {Name: "upload", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
||||||
up := kit.Simple(m.Optionv(ice.MSG_UPLOAD))
|
up := kit.Simple(m.Optionv(ice.MSG_UPLOAD))
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(FILES), "", mdb.HASH, kit.MDB_TYPE, kit.Ext(up[1]), kit.MDB_NAME, up[1], kit.MDB_SIZE, up[2], kit.MDB_DATA, up[0])
|
m.Cmdy(mdb.INSERT, m.Prefix(FILES), "", mdb.HASH, kit.MDB_TYPE, kit.Ext(up[1]), kit.MDB_NAME, up[1], kit.MDB_SIZE, up[2], kit.MDB_DATA, up[0])
|
||||||
}},
|
}},
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(FILES)), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(FILES), "", mdb.HASH, m.OptionSimple(kit.MDB_HASH))
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Fields(len(arg), m.Conf(FILES, kit.META_FIELD))
|
m.Fields(len(arg), m.Conf(FILES, kit.META_FIELD))
|
||||||
m.Cmdy(mdb.SELECT, m.Prefix(FILES), "", mdb.HASH, kit.MDB_HASH, arg)
|
m.Cmdy(mdb.SELECT, m.Prefix(FILES), "", mdb.HASH, kit.MDB_HASH, arg)
|
||||||
m.Table(func(index int, value map[string]string, head []string) {
|
m.Table(func(index int, value map[string]string, head []string) {
|
||||||
link := kit.MergeURL("/share/cache/"+value[kit.MDB_DATA], "pod", m.Option(ice.MSG_USERPOD))
|
link := kit.MergeURL("/share/cache/"+value[kit.MDB_DATA], cli.POD, m.Option(ice.MSG_USERPOD))
|
||||||
if m.PushDownload(kit.MDB_LINK, value[kit.MDB_NAME], link); len(arg) > 0 && kit.ExtIsImage(value[kit.MDB_NAME]) {
|
if m.PushDownload(kit.MDB_LINK, value[kit.MDB_NAME], link); len(arg) > 0 && kit.ExtIsImage(value[kit.MDB_NAME]) {
|
||||||
m.PushImages(kit.MDB_IMAGE, link)
|
m.PushImages(kit.MDB_IMAGE, link)
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package chat
|
package chat
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strings"
|
|
||||||
|
|
||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
"github.com/shylinux/icebergs/base/aaa"
|
"github.com/shylinux/icebergs/base/aaa"
|
||||||
|
"github.com/shylinux/icebergs/base/ctx"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
"github.com/shylinux/icebergs/base/tcp"
|
"github.com/shylinux/icebergs/base/tcp"
|
||||||
"github.com/shylinux/icebergs/base/web"
|
"github.com/shylinux/icebergs/base/web"
|
||||||
@ -12,7 +11,7 @@ import (
|
|||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
func _header_check(m *ice.Message) {
|
func _header_check(m *ice.Message, arg ...string) {
|
||||||
if m.Option(web.SHARE) != "" {
|
if m.Option(web.SHARE) != "" {
|
||||||
switch msg := m.Cmd(web.SHARE, m.Option(web.SHARE)); msg.Append(kit.MDB_TYPE) {
|
switch msg := m.Cmd(web.SHARE, m.Option(web.SHARE)); msg.Append(kit.MDB_TYPE) {
|
||||||
case web.LOGIN: // 扫码登录
|
case web.LOGIN: // 扫码登录
|
||||||
@ -35,20 +34,14 @@ func _header_share(m *ice.Message, arg ...string) {
|
|||||||
share := m.Cmdx(web.SHARE, mdb.CREATE, kit.MDB_TYPE, web.LOGIN, arg)
|
share := m.Cmdx(web.SHARE, mdb.CREATE, kit.MDB_TYPE, web.LOGIN, arg)
|
||||||
m.Option(kit.MDB_LINK, kit.MergeURL(m.Option(ice.MSG_USERWEB), web.SHARE, share))
|
m.Option(kit.MDB_LINK, kit.MergeURL(m.Option(ice.MSG_USERWEB), web.SHARE, share))
|
||||||
}
|
}
|
||||||
|
link := tcp.ReplaceLocalhost(m, m.Option(kit.MDB_LINK))
|
||||||
link := m.Option(kit.MDB_LINK)
|
|
||||||
if strings.Contains(link, tcp.LOCALHOST) {
|
|
||||||
link = strings.Replace(link, tcp.LOCALHOST, m.Cmd(tcp.HOST, ice.OptionFields(tcp.IP)).Append(tcp.IP), 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
m.Set(kit.MDB_NAME, kit.MDB_TEXT)
|
m.Set(kit.MDB_NAME, kit.MDB_TEXT)
|
||||||
m.PushQRCode(kit.MDB_TEXT, link)
|
m.PushQRCode(kit.MDB_TEXT, link)
|
||||||
m.Push(kit.MDB_NAME, link)
|
m.Push(kit.MDB_NAME, link)
|
||||||
}
|
}
|
||||||
func _header_grant(m *ice.Message, arg ...string) {
|
func _header_grant(m *ice.Message, arg ...string) {
|
||||||
if pod := m.Option(kit.SSH_POD); pod != "" {
|
if m.PodCmd(m.Prefix("/header"), ctx.ACTION, GRANT, arg) {
|
||||||
m.Option(kit.SSH_POD, "")
|
|
||||||
m.Cmd(web.SPACE, pod, m.Prefix(P_HEADER), kit.MDB_ACTION, GRANT, arg)
|
|
||||||
return // 下发命令
|
return // 下发命令
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,20 +51,16 @@ func _header_grant(m *ice.Message, arg ...string) {
|
|||||||
}
|
}
|
||||||
func _header_users(m *ice.Message, key string, arg ...string) {
|
func _header_users(m *ice.Message, key string, arg ...string) {
|
||||||
m.Option(aaa.USERNAME, m.Option(ice.MSG_USERNAME))
|
m.Option(aaa.USERNAME, m.Option(ice.MSG_USERNAME))
|
||||||
m.Cmdy("aaa.user", kit.MDB_ACTION, mdb.MODIFY, key, m.Option(key, arg[0]))
|
m.Cmdy("aaa.user", ctx.ACTION, mdb.MODIFY, key, m.Option(key, arg[0]))
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
TITLE = "title"
|
TITLE = "title"
|
||||||
CHECK = "check"
|
|
||||||
LOGIN = "login"
|
|
||||||
GRANT = "grant"
|
|
||||||
SHARE = "share"
|
|
||||||
AGENT = "agent"
|
AGENT = "agent"
|
||||||
|
CHECK = "check"
|
||||||
LOGOUT = "logout"
|
SHARE = "share"
|
||||||
|
GRANT = "grant"
|
||||||
)
|
)
|
||||||
const P_HEADER = "/header"
|
|
||||||
const HEADER = "header"
|
const HEADER = "header"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -80,41 +69,41 @@ func init() {
|
|||||||
HEADER: {Name: HEADER, Help: "标题栏", Value: kit.Data(TITLE, "github.com/shylinux/contexts")},
|
HEADER: {Name: HEADER, Help: "标题栏", Value: kit.Data(TITLE, "github.com/shylinux/contexts")},
|
||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
P_HEADER: {Name: "/header", Help: "标题栏", Action: map[string]*ice.Action{
|
"/header": {Name: "/header", Help: "标题栏", Action: map[string]*ice.Action{
|
||||||
CHECK: {Name: "check", Help: "登录检查", Hand: func(m *ice.Message, arg ...string) {
|
AGENT: {Name: "agent", Help: "应用宿主", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_header_check(m)
|
m.Cmdy("web.chat.wx.access", "config")
|
||||||
m.Echo(m.Option(ice.MSG_USERNAME))
|
|
||||||
}},
|
}},
|
||||||
LOGIN: {Name: "login", Help: "密码登录", Hand: func(m *ice.Message, arg ...string) {
|
CHECK: {Name: "check", Help: "登录检查", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
_header_check(m, arg...)
|
||||||
|
}},
|
||||||
|
SHARE: {Name: "share type", Help: "扫码登录", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
_header_share(m, arg...)
|
||||||
|
}},
|
||||||
|
GRANT: {Name: "grant space", Help: "扫码授权", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
_header_grant(m, arg...)
|
||||||
|
}},
|
||||||
|
|
||||||
|
aaa.LOGIN: {Name: "login", Help: "密码登录", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if aaa.UserLogin(m, arg[0], arg[1]) {
|
if aaa.UserLogin(m, arg[0], arg[1]) {
|
||||||
web.RenderCookie(m, aaa.SessCreate(m, arg[0]))
|
web.RenderCookie(m, aaa.SessCreate(m, arg[0]))
|
||||||
}
|
}
|
||||||
m.Echo(m.Option(ice.MSG_USERNAME))
|
m.Echo(m.Option(ice.MSG_USERNAME))
|
||||||
}},
|
}},
|
||||||
GRANT: {Name: "grant space", Help: "扫码授权", Hand: func(m *ice.Message, arg ...string) {
|
aaa.LOGOUT: {Name: "logout", Help: "退出登录", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_header_grant(m, arg...)
|
|
||||||
}},
|
|
||||||
SHARE: {Name: "share type", Help: "扫码登录", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
_header_share(m, arg...)
|
|
||||||
}},
|
|
||||||
AGENT: {Name: "agent", Help: "应用宿主", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy("web.chat.wx.access", "config")
|
|
||||||
}},
|
|
||||||
LOGOUT: {Name: "logout", Help: "退出登录", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmd(aaa.SESS, mdb.REMOVE, ice.OptionHash(m.Option(ice.MSG_SESSID)))
|
m.Cmd(aaa.SESS, mdb.REMOVE, ice.OptionHash(m.Option(ice.MSG_SESSID)))
|
||||||
}},
|
}},
|
||||||
|
|
||||||
code.WEBPACK: {Name: "webpack", Help: "网页打包", Hand: func(m *ice.Message, arg ...string) {
|
aaa.AVATAR: {Name: "avatar", Help: "头像图片", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(code.WEBPACK, mdb.CREATE, kit.MDB_NAME, m.Option(kit.MDB_NAME))
|
_header_users(m, aaa.AVATAR, arg...)
|
||||||
}},
|
|
||||||
aaa.BACKGROUND: {Name: "background", Help: "背景图片", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
_header_users(m, aaa.BACKGROUND, arg...)
|
|
||||||
}},
|
}},
|
||||||
aaa.USERNICK: {Name: "usernick", Help: "用户昵称", Hand: func(m *ice.Message, arg ...string) {
|
aaa.USERNICK: {Name: "usernick", Help: "用户昵称", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_header_users(m, aaa.USERNICK, arg...)
|
_header_users(m, aaa.USERNICK, arg...)
|
||||||
}},
|
}},
|
||||||
aaa.AVATAR: {Name: "avatar", Help: "头像图片", Hand: func(m *ice.Message, arg ...string) {
|
aaa.BACKGROUND: {Name: "background", Help: "背景图片", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_header_users(m, aaa.AVATAR, arg...)
|
_header_users(m, aaa.BACKGROUND, arg...)
|
||||||
|
}},
|
||||||
|
code.WEBPACK: {Name: "webpack", Help: "网页打包", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(code.WEBPACK, mdb.CREATE, m.OptionSimple(kit.MDB_NAME))
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
user := m.Cmd("aaa.user", m.Option(ice.MSG_USERNAME))
|
user := m.Cmd("aaa.user", m.Option(ice.MSG_USERNAME))
|
||||||
|
@ -40,7 +40,7 @@ func init() {
|
|||||||
)},
|
)},
|
||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
LOCATION: {Name: "location hash auto getLocation", Help: "地理位置", Action: map[string]*ice.Action{
|
LOCATION: {Name: "location hash auto getLocation", Help: "地理位置", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
OPENLOCATION: {Name: "openLocation", Help: "地图", Hand: func(m *ice.Message, arg ...string) {}},
|
OPENLOCATION: {Name: "openLocation", Help: "地图", Hand: func(m *ice.Message, arg ...string) {}},
|
||||||
GETLOCATION: {Name: "getLocation", Help: "打卡", Hand: func(m *ice.Message, arg ...string) {
|
GETLOCATION: {Name: "getLocation", Help: "打卡", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(LOCATION), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(LOCATION), "", mdb.HASH, arg)
|
||||||
@ -48,22 +48,7 @@ func init() {
|
|||||||
mdb.CREATE: {Name: "create type=text name text latitude longitude", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create type=text name text latitude longitude", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(LOCATION), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(LOCATION), "", mdb.HASH, arg)
|
||||||
}},
|
}},
|
||||||
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(LOCATION)), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(LOCATION), "", mdb.HASH, m.OptionSimple(kit.MDB_HASH), arg)
|
|
||||||
}},
|
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(LOCATION), "", mdb.HASH, m.OptionSimple(kit.MDB_TEXT))
|
|
||||||
}},
|
|
||||||
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(LOCATION), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(LOCATION), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.INPUTS, m.Prefix(LOCATION), "", mdb.HASH, arg)
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Fields(len(arg), m.Conf(LOCATION, kit.META_FIELD))
|
m.Fields(len(arg), m.Conf(LOCATION, kit.META_FIELD))
|
||||||
m.Cmdy(mdb.SELECT, m.Prefix(LOCATION), "", mdb.HASH, kit.MDB_HASH, arg)
|
m.Cmdy(mdb.SELECT, m.Prefix(LOCATION), "", mdb.HASH, kit.MDB_HASH, arg)
|
||||||
m.PushAction(OPENLOCATION, mdb.REMOVE)
|
m.PushAction(OPENLOCATION, mdb.REMOVE)
|
||||||
|
@ -22,23 +22,11 @@ func init() {
|
|||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Load() }},
|
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Load() }},
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save() }},
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save() }},
|
||||||
|
|
||||||
MISS: {Name: "miss name auto create", Help: "资料", Meta: kit.Dict("_trans", kit.Dict("name", "姓名")), Action: map[string]*ice.Action{
|
MISS: {Name: "miss name auto create", Help: "资料", Meta: kit.Dict("_trans", kit.Dict("name", "姓名")), Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
mdb.CREATE: {Name: "create name 照片 性别 年龄 身高 体重 籍贯 户口 学历 学校 职业 公司 年薪 资产 家境", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create name 照片 性别 年龄 身高 体重 籍贯 户口 学历 学校 职业 公司 年薪 资产 家境", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(MISS), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(MISS), "", mdb.HASH, arg)
|
||||||
}},
|
}},
|
||||||
mdb.MODIFY: {Name: "modify key value", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(MISS)), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(MISS), "", mdb.HASH, m.OptionSimple(kit.MDB_NAME), arg)
|
|
||||||
}},
|
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(MISS), "", mdb.HASH, m.OptionSimple(kit.MDB_NAME))
|
|
||||||
}},
|
|
||||||
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(MISS), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(MISS), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Fields(len(arg), m.Conf(MISS, kit.META_FIELD))
|
m.Fields(len(arg), m.Conf(MISS, kit.META_FIELD))
|
||||||
m.Cmd(mdb.SELECT, m.Prefix(MISS), "", mdb.HASH, kit.MDB_NAME, arg).Table(func(index int, value map[string]string, head []string) {
|
m.Cmd(mdb.SELECT, m.Prefix(MISS), "", mdb.HASH, kit.MDB_NAME, arg).Table(func(index int, value map[string]string, head []string) {
|
||||||
value["照片"] = kit.Format(`<img src="%s" height=%s>`, value["照片"], kit.Select("100", "400", m.Option(mdb.FIELDS) == mdb.DETAIL))
|
value["照片"] = kit.Format(`<img src="%s" height=%s>`, value["照片"], kit.Select("100", "400", m.Option(mdb.FIELDS) == mdb.DETAIL))
|
||||||
|
@ -16,7 +16,7 @@ func init() {
|
|||||||
)},
|
)},
|
||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
PASTE: {Name: "paste hash auto getClipboardData", Help: "粘贴板", Action: map[string]*ice.Action{
|
PASTE: {Name: "paste hash auto getClipboardData", Help: "粘贴板", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
"getClipboardData": {Name: "getClipboardData", Help: "粘贴", Hand: func(m *ice.Message, arg ...string) {
|
"getClipboardData": {Name: "getClipboardData", Help: "粘贴", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_trans(arg, map[string]string{"data": "text"})
|
_trans(arg, map[string]string{"data": "text"})
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(PASTE), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(PASTE), "", mdb.HASH, arg)
|
||||||
@ -25,22 +25,7 @@ func init() {
|
|||||||
_trans(arg, map[string]string{"data": "text"})
|
_trans(arg, map[string]string{"data": "text"})
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(PASTE), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(PASTE), "", mdb.HASH, arg)
|
||||||
}},
|
}},
|
||||||
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(PASTE)), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(PASTE), "", mdb.HASH, m.OptionSimple(kit.MDB_HASH), arg)
|
|
||||||
}},
|
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(PASTE), "", mdb.HASH, m.OptionSimple(kit.MDB_HASH))
|
|
||||||
}},
|
|
||||||
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(PASTE), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(PASTE), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.INPUTS, m.Prefix(PASTE), "", mdb.HASH, arg)
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Fields(len(arg), m.Conf(PASTE, kit.META_FIELD))
|
m.Fields(len(arg), m.Conf(PASTE, kit.META_FIELD))
|
||||||
if m.Cmdy(mdb.SELECT, cmd, "", mdb.HASH, kit.MDB_HASH, arg); len(arg) > 0 {
|
if m.Cmdy(mdb.SELECT, cmd, "", mdb.HASH, kit.MDB_HASH, arg); len(arg) > 0 {
|
||||||
m.PushScript("script", m.Append(kit.MDB_TEXT))
|
m.PushScript("script", m.Append(kit.MDB_TEXT))
|
||||||
|
@ -3,6 +3,7 @@ package chat
|
|||||||
import (
|
import (
|
||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
"github.com/shylinux/icebergs/base/aaa"
|
"github.com/shylinux/icebergs/base/aaa"
|
||||||
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
"github.com/shylinux/icebergs/base/ctx"
|
"github.com/shylinux/icebergs/base/ctx"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
"github.com/shylinux/icebergs/base/tcp"
|
"github.com/shylinux/icebergs/base/tcp"
|
||||||
@ -48,19 +49,13 @@ func _river_list(m *ice.Message) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
func _river_proxy(m *ice.Message, pod string) (proxy []string) {
|
func _river_proxy(m *ice.Message, pod string) (proxy []string) {
|
||||||
if p := kit.Select(m.Option(POD), pod); p != "" {
|
if p := kit.Select(m.Option(cli.POD), pod); p != "" {
|
||||||
proxy = append(proxy, web.SPACE, p)
|
proxy = append(proxy, web.SPACE, p)
|
||||||
m.Option(POD, "")
|
m.Option(cli.POD, "")
|
||||||
}
|
}
|
||||||
return proxy
|
return proxy
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
|
||||||
POD = "pod"
|
|
||||||
CTX = "ctx"
|
|
||||||
CMD = "cmd"
|
|
||||||
ARG = "arg"
|
|
||||||
)
|
|
||||||
const (
|
const (
|
||||||
INFO = "info"
|
INFO = "info"
|
||||||
AUTH = "auth"
|
AUTH = "auth"
|
||||||
@ -178,9 +173,9 @@ func init() {
|
|||||||
m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg")
|
m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg")
|
||||||
msg := m.Cmd(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, m.Option(kit.MDB_HASH)), mdb.LIST, kit.MDB_ID, m.Option(kit.MDB_ID))
|
msg := m.Cmd(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, m.Option(kit.MDB_HASH)), mdb.LIST, kit.MDB_ID, m.Option(kit.MDB_ID))
|
||||||
|
|
||||||
cmd := kit.Keys(msg.Append(CTX), msg.Append(CMD))
|
cmd := kit.Keys(msg.Append(cli.CTX), msg.Append(cli.CMD))
|
||||||
_action_domain(m, cmd, m.Option(kit.MDB_HASH))
|
_action_domain(m, cmd, m.Option(kit.MDB_HASH))
|
||||||
m.Cmdy(_river_proxy(msg, msg.Append(POD)), cmd, mdb.EXPORT)
|
m.Cmdy(_river_proxy(msg, msg.Append(cli.POD)), cmd, mdb.EXPORT)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -188,9 +183,9 @@ func init() {
|
|||||||
m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg")
|
m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg")
|
||||||
msg := m.Cmd(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, m.Option(kit.MDB_HASH)), mdb.LIST, kit.MDB_ID, m.Option(kit.MDB_ID))
|
msg := m.Cmd(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, m.Option(kit.MDB_HASH)), mdb.LIST, kit.MDB_ID, m.Option(kit.MDB_ID))
|
||||||
|
|
||||||
cmd := kit.Keys(msg.Append(CTX), msg.Append(CMD))
|
cmd := kit.Keys(msg.Append(cli.CTX), msg.Append(cli.CMD))
|
||||||
_action_domain(m, cmd, m.Option(kit.MDB_HASH))
|
_action_domain(m, cmd, m.Option(kit.MDB_HASH))
|
||||||
m.Cmdy(_river_proxy(msg, msg.Append(POD)), cmd, mdb.IMPORT)
|
m.Cmdy(_river_proxy(msg, msg.Append(cli.POD)), cmd, mdb.IMPORT)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -200,16 +195,16 @@ func init() {
|
|||||||
m.Push(kit.MDB_HASH, value[kit.MDB_HASH])
|
m.Push(kit.MDB_HASH, value[kit.MDB_HASH])
|
||||||
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
|
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
|
||||||
})
|
})
|
||||||
case POD:
|
case cli.POD:
|
||||||
m.Cmdy(web.ROUTE)
|
m.Cmdy(web.ROUTE)
|
||||||
case CTX:
|
case cli.CTX:
|
||||||
m.Cmd(ctx.CONTEXT, "web").Table(func(index int, value map[string]string, head []string) {
|
m.Cmd(ctx.CONTEXT, "web").Table(func(index int, value map[string]string, head []string) {
|
||||||
m.Push(CTX, kit.Keys(kit.Select("", value["ups"], value["ups"] != "shy"), value[kit.MDB_NAME]))
|
m.Push(cli.CTX, kit.Keys(kit.Select("", value["ups"], value["ups"] != "shy"), value[kit.MDB_NAME]))
|
||||||
m.Push(kit.MDB_HELP, value[kit.MDB_HELP])
|
m.Push(kit.MDB_HELP, value[kit.MDB_HELP])
|
||||||
})
|
})
|
||||||
case CMD, kit.MDB_HELP:
|
case cli.CMD, kit.MDB_HELP:
|
||||||
m.Cmd(ctx.CONTEXT, m.Option(CTX), ctx.COMMAND).Table(func(index int, value map[string]string, head []string) {
|
m.Cmd(ctx.CONTEXT, m.Option(cli.CTX), ctx.COMMAND).Table(func(index int, value map[string]string, head []string) {
|
||||||
m.Push(CMD, value[kit.MDB_KEY])
|
m.Push(cli.CMD, value[kit.MDB_KEY])
|
||||||
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
|
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
|
||||||
m.Push(kit.MDB_HELP, value[kit.MDB_HELP])
|
m.Push(kit.MDB_HELP, value[kit.MDB_HELP])
|
||||||
})
|
})
|
||||||
@ -226,12 +221,12 @@ func init() {
|
|||||||
|
|
||||||
m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg,display,style")
|
m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg,display,style")
|
||||||
msg := m.Cmd(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, arg[0]), mdb.LIST, kit.MDB_ID, kit.Select("", arg, 1))
|
msg := m.Cmd(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, arg[0]), mdb.LIST, kit.MDB_ID, kit.Select("", arg, 1))
|
||||||
if len(msg.Appendv(CMD)) == 0 && len(arg) > 1 {
|
if len(msg.Appendv(cli.CMD)) == 0 && len(arg) > 1 {
|
||||||
msg.Push(CMD, arg[1])
|
msg.Push(cli.CMD, arg[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(arg) > 2 && arg[2] == "run" {
|
if len(arg) > 2 && arg[2] == "run" {
|
||||||
m.Cmdy(_river_proxy(m, msg.Append(POD)), kit.Keys(msg.Append(CTX), msg.Append(CMD)), arg[3:])
|
m.Cmdy(_river_proxy(m, msg.Append(cli.POD)), kit.Keys(msg.Append(cli.CTX), msg.Append(cli.CMD)), arg[3:])
|
||||||
return // 执行命令
|
return // 执行命令
|
||||||
}
|
}
|
||||||
if m.Copy(msg); len(arg) < 2 {
|
if m.Copy(msg); len(arg) < 2 {
|
||||||
@ -243,7 +238,7 @@ func init() {
|
|||||||
// 命令插件
|
// 命令插件
|
||||||
m.ProcessField(arg[0], arg[1], "run")
|
m.ProcessField(arg[0], arg[1], "run")
|
||||||
m.Table(func(index int, value map[string]string, head []string) {
|
m.Table(func(index int, value map[string]string, head []string) {
|
||||||
m.Cmdy(web.SPACE, value[POD], ctx.CONTEXT, value[CTX], ctx.COMMAND, value[CMD])
|
m.Cmdy(web.SPACE, value[cli.POD], ctx.CONTEXT, value[cli.CTX], ctx.COMMAND, value[cli.CMD])
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
USER: {Name: "user username auto insert invite", Help: "用户", Action: map[string]*ice.Action{
|
USER: {Name: "user username auto insert invite", Help: "用户", Action: map[string]*ice.Action{
|
||||||
@ -290,7 +285,7 @@ func init() {
|
|||||||
|
|
||||||
kit.Fetch(value, func(index int, value string) {
|
kit.Fetch(value, func(index int, value string) {
|
||||||
m.Search(value, func(p *ice.Context, s *ice.Context, key string, cmd *ice.Command) {
|
m.Search(value, func(p *ice.Context, s *ice.Context, key string, cmd *ice.Command) {
|
||||||
m.Cmd(TOOL, mdb.INSERT, kit.MDB_HASH, h, CTX, s.Cap(ice.CTX_FOLLOW), CMD, key, kit.MDB_HELP, cmd.Help)
|
m.Cmd(TOOL, mdb.INSERT, kit.MDB_HASH, h, cli.CTX, s.Cap(ice.CTX_FOLLOW), cli.CMD, key, kit.MDB_HELP, cmd.Help)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -16,7 +16,7 @@ func init() {
|
|||||||
)},
|
)},
|
||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
SCAN: {Name: "scan hash auto scanQRCode scanQRCode0", Help: "二维码", Action: map[string]*ice.Action{
|
SCAN: {Name: "scan hash auto scanQRCode scanQRCode0", Help: "二维码", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
"scanQRCode0": {Name: "create", Help: "本机扫码", Hand: func(m *ice.Message, arg ...string) {}},
|
"scanQRCode0": {Name: "create", Help: "本机扫码", Hand: func(m *ice.Message, arg ...string) {}},
|
||||||
"scanQRCode": {Name: "create", Help: "扫码", Hand: func(m *ice.Message, arg ...string) {
|
"scanQRCode": {Name: "create", Help: "扫码", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(SCAN), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(SCAN), "", mdb.HASH, arg)
|
||||||
@ -24,22 +24,7 @@ func init() {
|
|||||||
mdb.CREATE: {Name: "create type=text name=hi text:textarea=hi", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create type=text name=hi text:textarea=hi", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(SCAN), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(SCAN), "", mdb.HASH, arg)
|
||||||
}},
|
}},
|
||||||
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(SCAN)), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(SCAN), "", mdb.HASH, m.OptionSimple(kit.MDB_HASH), arg)
|
|
||||||
}},
|
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(SCAN), "", mdb.HASH, m.OptionSimple(kit.MDB_HASH))
|
|
||||||
}},
|
|
||||||
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(SCAN), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(SCAN), "", mdb.HASH)
|
|
||||||
}},
|
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.INPUTS, m.Prefix(SCAN), "", mdb.HASH, arg)
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Fields(len(arg), m.Conf(SCAN, kit.META_FIELD))
|
m.Fields(len(arg), m.Conf(SCAN, kit.META_FIELD))
|
||||||
if m.Cmdy(mdb.SELECT, m.Prefix(SCAN), "", mdb.HASH, kit.MDB_HASH, arg); len(arg) > 0 {
|
if m.Cmdy(mdb.SELECT, m.Prefix(SCAN), "", mdb.HASH, kit.MDB_HASH, arg); len(arg) > 0 {
|
||||||
m.PushScript("script", m.Append(kit.MDB_TEXT))
|
m.PushScript("script", m.Append(kit.MDB_TEXT))
|
||||||
|
@ -29,7 +29,7 @@ func init() {
|
|||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
mdb.RENDER: {Name: "render", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
|
mdb.RENDER: {Name: "render", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(m.Space(m.Option(POD)), mdb.RENDER, arg[1:])
|
m.Cmdy(m.Space(m.Option(cli.POD)), mdb.RENDER, arg[1:])
|
||||||
}},
|
}},
|
||||||
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(ctx.COMMAND, arg)
|
m.Cmdy(ctx.COMMAND, arg)
|
||||||
@ -41,7 +41,7 @@ func init() {
|
|||||||
if kit.Contains(arg[1], ";") {
|
if kit.Contains(arg[1], ";") {
|
||||||
arg = kit.Split(arg[1], ";", ";", ";")
|
arg = kit.Split(arg[1], ";", ";", ";")
|
||||||
}
|
}
|
||||||
if m.Cmdy(m.Space(m.Option(POD)), mdb.SEARCH, arg); arg[1] == "" {
|
if m.Cmdy(m.Space(m.Option(cli.POD)), mdb.SEARCH, arg); arg[1] == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
m.Cmd(mdb.INSERT, m.Prefix(P_SEARCH), "", mdb.HASH,
|
m.Cmd(mdb.INSERT, m.Prefix(P_SEARCH), "", mdb.HASH,
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
"github.com/shylinux/icebergs/base/cli"
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
"github.com/shylinux/icebergs/base/ctx"
|
"github.com/shylinux/icebergs/base/ctx"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
"github.com/shylinux/icebergs/base/web"
|
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -51,15 +50,11 @@ func _asset_insert(m *ice.Message, account string, arg ...string) {
|
|||||||
m.Cmdy(mdb.MODIFY, m.Prefix(ASSET), "", mdb.HASH, ACCOUNT, account, AMOUNT, amount)
|
m.Cmdy(mdb.MODIFY, m.Prefix(ASSET), "", mdb.HASH, ACCOUNT, account, AMOUNT, amount)
|
||||||
}
|
}
|
||||||
func _asset_inputs(m *ice.Message, field, value string) {
|
func _asset_inputs(m *ice.Message, field, value string) {
|
||||||
switch strings.TrimPrefix(field, "extra.") {
|
if cli.Inputs(m, field, value) {
|
||||||
case "pod":
|
return
|
||||||
m.Cmdy(web.ROUTE)
|
}
|
||||||
case "ctx":
|
|
||||||
m.Cmdy(ctx.CONTEXT)
|
|
||||||
case "cmd":
|
|
||||||
m.Cmdy(ctx.CONTEXT, kit.Select(m.Option("ctx"), m.Option("extra.ctx")), ctx.COMMAND)
|
|
||||||
case "arg":
|
|
||||||
|
|
||||||
|
switch strings.TrimPrefix(field, "extra.") {
|
||||||
case ACCOUNT, FROM, TO:
|
case ACCOUNT, FROM, TO:
|
||||||
m.Cmdy(mdb.INPUTS, m.Prefix(ASSET), "", mdb.HASH, ACCOUNT, value)
|
m.Cmdy(mdb.INPUTS, m.Prefix(ASSET), "", mdb.HASH, ACCOUNT, value)
|
||||||
default:
|
default:
|
||||||
|
@ -5,9 +5,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
"github.com/shylinux/icebergs/base/ctx"
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
"github.com/shylinux/icebergs/base/mdb"
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
"github.com/shylinux/icebergs/base/web"
|
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -74,24 +73,11 @@ func _task_modify(m *ice.Message, field, value string, arg ...string) {
|
|||||||
m.Cmdy(mdb.MODIFY, m.Prefix(TASK), "", mdb.ZONE, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), field, value, arg)
|
m.Cmdy(mdb.MODIFY, m.Prefix(TASK), "", mdb.ZONE, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), field, value, arg)
|
||||||
}
|
}
|
||||||
func _task_inputs(m *ice.Message, field, value string) {
|
func _task_inputs(m *ice.Message, field, value string) {
|
||||||
switch strings.TrimPrefix(field, "extra.") {
|
if cli.Inputs(m, field, value) {
|
||||||
case "pod":
|
return
|
||||||
m.Cmd(web.SPACE).Table(func(index int, value map[string]string, head []string) {
|
}
|
||||||
m.Push(field, value[kit.MDB_NAME])
|
|
||||||
m.Push("", value, []string{kit.MDB_TYPE})
|
|
||||||
})
|
|
||||||
case "ctx":
|
|
||||||
m.Cmd(m.Space(m.Option("extra.pod")), ctx.CONTEXT).Table(func(index int, value map[string]string, head []string) {
|
|
||||||
m.Push(field, value[kit.MDB_NAME])
|
|
||||||
m.Push("", value, []string{kit.MDB_HELP})
|
|
||||||
})
|
|
||||||
case "cmd":
|
|
||||||
m.Cmd(m.Space(m.Option("extra.pod")), ctx.CONTEXT, m.Option("extra.ctx"), ctx.COMMAND).Table(func(index int, value map[string]string, head []string) {
|
|
||||||
m.Push(field, value[kit.MDB_KEY])
|
|
||||||
m.Push("", value, []string{kit.MDB_HELP})
|
|
||||||
})
|
|
||||||
case "arg":
|
|
||||||
|
|
||||||
|
switch strings.TrimPrefix(field, "extra.") {
|
||||||
case kit.MDB_ZONE:
|
case kit.MDB_ZONE:
|
||||||
m.Cmdy(mdb.INPUTS, m.Prefix(TASK), "", mdb.HASH, field, value)
|
m.Cmdy(mdb.INPUTS, m.Prefix(TASK), "", mdb.HASH, field, value)
|
||||||
default:
|
default:
|
||||||
|
22
misc.go
22
misc.go
@ -577,3 +577,25 @@ func (m *Message) OptionTemplate() string {
|
|||||||
})
|
})
|
||||||
return strings.Join(res, " ")
|
return strings.Join(res, " ")
|
||||||
}
|
}
|
||||||
|
func (m *Message) PodCmd(arg ...interface{}) bool {
|
||||||
|
if pod := m.Option(kit.SSH_POD); pod != "" {
|
||||||
|
m.Option(kit.SSH_POD, "")
|
||||||
|
m.Cmd(append([]interface{}{"space", pod}, arg...))
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func MergeAction(list ...map[string]*Action) map[string]*Action {
|
||||||
|
if len(list) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
for _, item := range list[1:] {
|
||||||
|
for k, v := range item {
|
||||||
|
if _, ok := list[0][k]; !ok {
|
||||||
|
list[0][k] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list[0]
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user