1
0
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:
IT 老营长 @云轩领航-创始人 2023-03-04 21:00:52 +08:00
parent e460316ede
commit 9b8b7831fe
4 changed files with 41 additions and 15 deletions

View File

@ -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()

View File

@ -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 {

View File

@ -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:

View File

@ -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)