mirror of
https://shylinux.com/x/icebergs
synced 2025-06-26 18:37:29 +08:00
opt web.chat.favor
This commit is contained in:
parent
e460316ede
commit
9b8b7831fe
@ -177,7 +177,7 @@ func init() {
|
||||
}, Hand: func(m *ice.Message, arg ...string) {
|
||||
root, dir := kit.Select(PWD, m.Option(DIR_ROOT)), kit.Select(PWD, arg, 0)
|
||||
if strings.HasPrefix(dir, ice.PS) {
|
||||
root = ice.PS
|
||||
root, dir = ice.PS, strings.TrimPrefix(dir, ice.PS)
|
||||
}
|
||||
if root == ice.PS && dir == ice.PS {
|
||||
root, dir = PWD, PWD
|
||||
@ -187,7 +187,7 @@ func init() {
|
||||
}
|
||||
fields := kit.Split(kit.Select(kit.Select(DIR_DEF_FIELDS, m.OptionFields()), kit.Join(kit.Slice(arg, 1))))
|
||||
if root != "" {
|
||||
m.Logs(mdb.SELECT, DIR_ROOT, root)
|
||||
m.Logs(mdb.SELECT, DIR_ROOT, root, dir)
|
||||
}
|
||||
_dir_list(m, root, dir, 0, m.Option(DIR_DEEP) == ice.TRUE, kit.Select(TYPE_BOTH, m.Option(DIR_TYPE)), kit.Regexp(m.Option(DIR_REG)), fields)
|
||||
m.StatusTimeCount()
|
||||
|
@ -28,6 +28,7 @@ const (
|
||||
CODE_INNER = "web.code.inner"
|
||||
CODE_XTERM = "web.code.xterm"
|
||||
WIKI_WORD = "web.wiki.word"
|
||||
CHAT_FAVOR = "web.chat.favor"
|
||||
)
|
||||
|
||||
func Render(m *ice.Message, cmd string, args ...ice.Any) bool {
|
||||
|
@ -95,6 +95,12 @@ func init() {
|
||||
"xterm": {Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
ctx.ProcessField(m, web.CODE_XTERM, []string{m.Option(mdb.TEXT)}, arg...)
|
||||
}},
|
||||
"_open": {Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(cli.DAEMON, cli.OPEN, "-a", m.Option(mdb.TEXT)).ProcessHold(m)
|
||||
}},
|
||||
"_new": {Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(cli.DAEMON, cli.OPEN, "-n", "-a", m.Option(mdb.TEXT)).ProcessHold(m)
|
||||
}},
|
||||
ice.RUN: {Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(mdb.TYPE, mdb.HashSelects(m.Spawn(), m.Option(mdb.HASH)).Append(mdb.TYPE))
|
||||
ctx.Run(m, arg...)
|
||||
@ -125,6 +131,8 @@ func init() {
|
||||
return
|
||||
}
|
||||
switch value[mdb.TYPE] {
|
||||
case "_open":
|
||||
m.PushButton("_open", "_new", mdb.REMOVE)
|
||||
case ssh.SHELL:
|
||||
m.PushButton("xterm", mdb.REMOVE)
|
||||
case ctx.INDEX:
|
||||
|
@ -11,6 +11,7 @@ import (
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/base/ssh"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
@ -80,21 +81,37 @@ func init() {
|
||||
case nfs.PATH:
|
||||
m.Cmdy(INNER, mdb.INPUTS, arg).Cut("path,size,time")
|
||||
case nfs.FILE:
|
||||
list, p := ice.Map{}, m.Option(nfs.PATH)
|
||||
m.Cmd(FAVOR, "_recent_file").Tables(func(value ice.Maps) {
|
||||
kit.IfNoKey(list, value[nfs.PATH]+value[nfs.FILE], func(p string) { m.Push(nfs.PATH, p) })
|
||||
})
|
||||
for _, p := range kit.Split(kit.Select(m.Option(nfs.PATH), m.Option("paths"))) {
|
||||
nfs.DirDeepAll(m, nfs.PWD, p, func(value ice.Maps) { kit.IfNoKey(list, value[nfs.PATH], func(p string) { m.Push(nfs.PATH, p) }) }, nfs.PATH)
|
||||
list := ice.Map{}
|
||||
push := func(k, p string) {
|
||||
kit.IfNoKey(list, kit.Select(k, k+ice.DF, k != "")+p, func(p string) { m.Push(nfs.PATH, p) })
|
||||
}
|
||||
m.Cmd(FAVOR, "_recent_file").Tables(func(value ice.Maps) { push("", value[nfs.PATH]+value[nfs.FILE]) })
|
||||
m.Cmd(web.CHAT_FAVOR, func(value ice.Maps) {
|
||||
switch value[mdb.TYPE] {
|
||||
case web.LINK:
|
||||
push(web.DREAM, value[mdb.TEXT])
|
||||
case nfs.FILE:
|
||||
push("", value[mdb.TEXT])
|
||||
case ctx.INDEX:
|
||||
push(ctx.INDEX, value[mdb.TEXT])
|
||||
case ssh.SHELL:
|
||||
push(ctx.INDEX+ice.DF+web.CODE_XTERM, value[mdb.TEXT])
|
||||
}
|
||||
m.Cmd(mdb.RENDER, kit.Ext(m.Option(nfs.FILE)), m.Option(nfs.FILE), p).Tables(func(value ice.Maps) {
|
||||
m.Push(nfs.PATH, kit.Format("line:%s:%s:%s", value[nfs.LINE], value["kind"], value[mdb.NAME]))
|
||||
})
|
||||
m.Cmd(ctx.COMMAND, mdb.SEARCH, ctx.COMMAND, ice.OptionFields(ctx.INDEX)).Tables(func(value ice.Maps) {
|
||||
m.Push(nfs.PATH, "index:"+value[ctx.INDEX])
|
||||
m.Cmd(web.DREAM, ice.Maps{nfs.DIR_DEEP: ice.FALSE}, func(value ice.Maps) { push(web.DREAM, value[mdb.NAME]) })
|
||||
for _, p := range kit.Split(kit.Select(m.Option(nfs.PATH), m.Option("paths"))) {
|
||||
nfs.DirDeepAll(m, nfs.PWD, p, func(value ice.Maps) { push("", value[nfs.PATH]) }, nfs.PATH)
|
||||
}
|
||||
m.Cmd(ctx.COMMAND, mdb.SEARCH, ctx.COMMAND, ice.OptionFields(ctx.INDEX)).Tables(func(value ice.Maps) { push(ctx.INDEX, value[ctx.INDEX]) })
|
||||
m.Cmd(FAVOR, "_system_app").Tables(func(value ice.Maps) { push("_open", strings.ToLower(kit.Select(value[mdb.TEXT], value[mdb.NAME]))) })
|
||||
m.Cmd(nfs.DIR, "/Applications", mdb.NAME, ice.Maps{nfs.DIR_DEEP: ice.FALSE, nfs.DIR_TYPE: ""}, func(value ice.Maps) {
|
||||
push("_open", value[nfs.NAME])
|
||||
})
|
||||
m.Cmd(FAVOR, "_system_app").Tables(func(value ice.Maps) {
|
||||
m.Push(nfs.PATH, "_open:"+strings.ToLower(kit.Select(value[mdb.TEXT], value[mdb.NAME])))
|
||||
m.Cmd(nfs.DIR, "/System/Applications", mdb.NAME, ice.Maps{nfs.DIR_DEEP: ice.FALSE, nfs.DIR_TYPE: ""}, func(value ice.Maps) {
|
||||
push("_open", value[nfs.NAME])
|
||||
})
|
||||
m.Cmd(nfs.DIR, "/System/Applications/Utilities", mdb.NAME, ice.Maps{nfs.DIR_DEEP: ice.FALSE, nfs.DIR_TYPE: ""}, func(value ice.Maps) {
|
||||
push("_open", value[nfs.NAME])
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -147,7 +164,7 @@ func init() {
|
||||
})
|
||||
}},
|
||||
"_open": {Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(cli.DAEMON, cli.OPEN, "-a", kit.Split(arg[0], ice.PT, ice.PT)[0])
|
||||
m.Cmdy(cli.DAEMON, cli.OPEN, "-a", kit.Split(arg[0], ice.PT, ice.PT)[0]).ProcessHold(m)
|
||||
}},
|
||||
XTERM: {Name: "xterm type=sh name text", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(XTERM, mdb.CREATE, arg)
|
||||
|
Loading…
x
Reference in New Issue
Block a user