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) {
|
}, 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()
|
||||||
|
@ -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 {
|
||||||
|
@ -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:
|
||||||
|
@ -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"))) {
|
|
||||||
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(mdb.RENDER, kit.Ext(m.Option(nfs.FILE)), m.Option(nfs.FILE), p).Tables(func(value ice.Maps) {
|
m.Cmd(FAVOR, "_recent_file").Tables(func(value ice.Maps) { push("", value[nfs.PATH]+value[nfs.FILE]) })
|
||||||
m.Push(nfs.PATH, kit.Format("line:%s:%s:%s", value[nfs.LINE], value["kind"], value[mdb.NAME]))
|
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(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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user