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) { }, Hand: func(m *ice.Message, arg ...string) {
root, dir := kit.Select(PWD, m.Option(DIR_ROOT)), kit.Select(PWD, arg, 0) root, dir := kit.Select(PWD, m.Option(DIR_ROOT)), kit.Select(PWD, arg, 0)
if strings.HasPrefix(dir, ice.PS) { 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 { if root == ice.PS && dir == ice.PS {
root, dir = PWD, PWD 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)))) fields := kit.Split(kit.Select(kit.Select(DIR_DEF_FIELDS, m.OptionFields()), kit.Join(kit.Slice(arg, 1))))
if root != "" { 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) _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() m.StatusTimeCount()

View File

@ -28,6 +28,7 @@ const (
CODE_INNER = "web.code.inner" CODE_INNER = "web.code.inner"
CODE_XTERM = "web.code.xterm" CODE_XTERM = "web.code.xterm"
WIKI_WORD = "web.wiki.word" WIKI_WORD = "web.wiki.word"
CHAT_FAVOR = "web.chat.favor"
) )
func Render(m *ice.Message, cmd string, args ...ice.Any) bool { 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) { "xterm": {Help: "命令", Hand: func(m *ice.Message, arg ...string) {
ctx.ProcessField(m, web.CODE_XTERM, []string{m.Option(mdb.TEXT)}, arg...) 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) { ice.RUN: {Hand: func(m *ice.Message, arg ...string) {
m.Option(mdb.TYPE, mdb.HashSelects(m.Spawn(), m.Option(mdb.HASH)).Append(mdb.TYPE)) m.Option(mdb.TYPE, mdb.HashSelects(m.Spawn(), m.Option(mdb.HASH)).Append(mdb.TYPE))
ctx.Run(m, arg...) ctx.Run(m, arg...)
@ -125,6 +131,8 @@ func init() {
return return
} }
switch value[mdb.TYPE] { switch value[mdb.TYPE] {
case "_open":
m.PushButton("_open", "_new", mdb.REMOVE)
case ssh.SHELL: case ssh.SHELL:
m.PushButton("xterm", mdb.REMOVE) m.PushButton("xterm", mdb.REMOVE)
case ctx.INDEX: case ctx.INDEX:

View File

@ -11,6 +11,7 @@ import (
"shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/mdb"
"shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/ssh"
"shylinux.com/x/icebergs/base/web" "shylinux.com/x/icebergs/base/web"
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
) )
@ -80,21 +81,37 @@ func init() {
case nfs.PATH: case nfs.PATH:
m.Cmdy(INNER, mdb.INPUTS, arg).Cut("path,size,time") m.Cmdy(INNER, mdb.INPUTS, arg).Cut("path,size,time")
case nfs.FILE: case nfs.FILE:
list, p := ice.Map{}, m.Option(nfs.PATH) list := ice.Map{}
m.Cmd(FAVOR, "_recent_file").Tables(func(value ice.Maps) { push := func(k, p string) {
kit.IfNoKey(list, value[nfs.PATH]+value[nfs.FILE], func(p string) { m.Push(nfs.PATH, p) }) kit.IfNoKey(list, kit.Select(k, k+ice.DF, k != "")+p, func(p string) { m.Push(nfs.PATH, p) })
}) }
for _, p := range kit.Split(kit.Select(m.Option(nfs.PATH), m.Option("paths"))) { m.Cmd(FAVOR, "_recent_file").Tables(func(value ice.Maps) { push("", value[nfs.PATH]+value[nfs.FILE]) })
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) 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.Cmd(web.DREAM, ice.Maps{nfs.DIR_DEEP: ice.FALSE}, func(value ice.Maps) { push(web.DREAM, value[mdb.NAME]) })
m.Push(nfs.PATH, "index:"+value[ctx.INDEX]) 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.Cmd(nfs.DIR, "/System/Applications", mdb.NAME, ice.Maps{nfs.DIR_DEEP: ice.FALSE, nfs.DIR_TYPE: ""}, func(value ice.Maps) {
m.Push(nfs.PATH, "_open:"+strings.ToLower(kit.Select(value[mdb.TEXT], value[mdb.NAME]))) 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) { "_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) { XTERM: {Name: "xterm type=sh name text", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(XTERM, mdb.CREATE, arg) m.Cmdy(XTERM, mdb.CREATE, arg)