1
0
forked from x/icebergs
This commit is contained in:
harveyshao 2022-04-08 18:24:52 +08:00
parent 20ebcc4754
commit 762bb6056f
8 changed files with 66 additions and 18 deletions

View File

@ -20,7 +20,7 @@ func _dream_list(m *ice.Message) *ice.Message {
m.Push(mdb.TYPE, val[mdb.TYPE])
m.Push(cli.STATUS, cli.START)
m.PushButton("edit", "open", cli.STOP)
m.PushAnchor(strings.Split(m.MergePOD(value[mdb.NAME]), "?")[0])
m.PushAnchor(strings.Split(m.MergePod(value[mdb.NAME]), "?")[0])
}) == nil {
m.Push(mdb.TYPE, WORKER)
m.Push(cli.STATUS, cli.STOP)
@ -33,8 +33,8 @@ func _dream_show(m *ice.Message, name string) {
if !strings.Contains(name, "-") || !strings.HasPrefix(name, "20") {
name = m.Time("20060102-") + kit.ReplaceAll(name, "-", "_")
}
defer m.ProcessOpen(m.MergePOD(m.Option(mdb.NAME, name)))
defer m.Echo(m.MergePOD(m.Option(mdb.NAME, name)))
defer m.ProcessOpen(m.MergePod(m.Option(mdb.NAME, name)))
defer m.Echo(m.MergePod(m.Option(mdb.NAME, name)))
// 任务目录
p := path.Join(m.Config(nfs.PATH), name)
@ -115,10 +115,10 @@ func init() {
_dream_show(m, m.Option(mdb.NAME, kit.Select(path.Base(m.Option(nfs.REPOS)), m.Option(mdb.NAME))))
}},
"open": {Name: "open", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
m.ProcessOpen(m.MergePOD(m.Option(mdb.NAME), "", ""))
m.ProcessOpen(m.MergePod(m.Option(mdb.NAME), "", ""))
}},
"edit": {Name: "edit", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
m.ProcessOpen(m.MergePOD(m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
m.ProcessOpen(m.MergePod(m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
}},
cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(SPACE, mdb.MODIFY, m.OptionSimple(mdb.NAME), mdb.STATUS, cli.STOP)

View File

@ -179,8 +179,8 @@ func _website_render(m *ice.Message, w http.ResponseWriter, r *http.Request, kin
return true
}
func _website_search(m *ice.Message, kind, name, text string, arg ...string) {
m.Cmd(m.PrefixKey()).Table(func(index int, value map[string]string, head []string) {
m.PushSearch(value, mdb.TEXT, m.MergeURL2(path.Join("/chat/website", value[nfs.PATH])))
m.Cmd(m.PrefixKey(), ice.OptionFields("")).Table(func(index int, value map[string]string, head []string) {
m.PushSearch(value, mdb.TEXT, m.MergeWebsite(value[nfs.PATH]))
})
}
@ -216,13 +216,21 @@ func init() {
})
}},
"show": {Hand: func(m *ice.Message, arg ...string) {
if text := m.Cmd(m.PrefixKey(), ice.PS+arg[0]).Append(mdb.TEXT); text != "" {
if res, ok := _website_parse(m, text, arg[1:]...); ok {
m.Echo(_website_template2, kit.Format(res))
return
}
}
if res, ok := _website_parse(m, m.Cmdx(nfs.CAT, path.Join(SRC_WEBSITE, arg[0])), arg[1:]...); ok {
m.Echo(_website_template2, kit.Format(res))
}
}},
"inner": {Hand: func(m *ice.Message, arg ...string) {}},
mdb.SEARCH: {Hand: func(m *ice.Message, arg ...string) {
if arg[0] == mdb.FOREACH && arg[1] == "" {
_website_search(m, arg[0], arg[1], kit.Select("", arg, 2))
}
}},
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
m.EchoIFrame(_website_url(m, strings.TrimPrefix(path.Join(arg[2], arg[1]), SRC_WEBSITE)))
@ -256,7 +264,7 @@ func init() {
}},
}, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
mdb.HashSelect(m, arg...).Table(func(index int, value map[string]string, head []string) {
m.PushAnchor(m.MergeLink(value[nfs.PATH]))
m.PushAnchor(m.MergeWebsite(value[nfs.PATH]))
})
if len(arg) == 0 {
m.Cmd(nfs.DIR, SRC_WEBSITE, func(f os.FileInfo, p string) {

View File

@ -37,7 +37,9 @@ func init() {
m.Cmdy(TEMPLATE, nfs.DEFS)
}},
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
m.PushSearch(mdb.TYPE, "go", mdb.NAME, "src/main.go", mdb.TEXT, m.MergeURL2("/chat/cmd/web.code.vimer"))
if arg[0] == mdb.FOREACH && arg[1] == "" {
m.PushSearch(mdb.TYPE, "go", mdb.NAME, "src/main.go", mdb.TEXT, m.MergeCmd(""))
}
}},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch m.Option(ctx.ACTION) {

View File

@ -76,6 +76,11 @@ func init() {
mdb.PLUGIN: {Name: "plugin extra.ctx extra.cmd extra.arg", Help: "插件", Hand: func(m *ice.Message, arg ...string) {
_task_modify(m, arg[0], arg[1], arg[2:]...)
}},
mdb.SEARCH: {Name: "search", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
if arg[0] == mdb.FOREACH && arg[1] == "" {
m.PushSearch(mdb.TYPE, "plan", mdb.NAME, "", mdb.TEXT, m.MergeCmd(""))
}
}},
ice.RUN: {Name: "run", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
m.Option(ice.POD, m.Option("task.pod"))
m.Option("task.pod", "")

View File

@ -39,7 +39,9 @@ func init() {
}, Commands: map[string]*ice.Command{
WORD: {Name: "word path=src/main.shy@key auto play", Help: "语言文字", Meta: kit.Dict(ice.DisplayLocal("")), Action: ice.MergeAction(map[string]*ice.Action{
mdb.SEARCH: {Name: "search", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
m.PushSearch(mdb.TYPE, "shy", mdb.NAME, "src/main.shy", mdb.TEXT, m.MergeURL2("/chat/cmd/web.wiki.word"))
if arg[0] == mdb.FOREACH && arg[1] == "" {
m.PushSearch(mdb.TYPE, "shy", mdb.NAME, "src/main.shy", mdb.TEXT, m.MergeCmd(""))
}
m.Cmd(mdb.SELECT, m.PrefixKey(), "", mdb.HASH).Table(func(index int, value map[string]string, head []string) {
if arg[1] == "" {
if value[mdb.TYPE] == SPARK {

View File

@ -71,6 +71,7 @@ func FileKey(dir string) string {
if Info.Make.Path != "" && strings.HasPrefix(dir, Info.Make.Path+PS) {
dir = strings.TrimPrefix(dir, Info.Make.Path+PS)
}
// println("what ", dir, kit.Path(""), Info.Make.Path)
if strings.HasPrefix(dir, kit.Path("")+PS) {
dir = strings.TrimPrefix(dir, kit.Path("")+PS)
}

18
misc.go
View File

@ -4,6 +4,7 @@ import (
"bytes"
"encoding/csv"
"net/url"
"path"
"reflect"
"strings"
@ -171,9 +172,24 @@ func (m *Message) MergeLink(url string, arg ...interface{}) string {
func (m *Message) MergeURL2(url string, arg ...interface{}) string {
return kit.MergeURL2(m.Option(MSG_USERWEB), url, arg...)
}
func (m *Message) MergePOD(name string, arg ...interface{}) string {
func (m *Message) MergePod(name string, arg ...interface{}) string {
return kit.MergePOD(kit.Select(Info.Domain, m.Option(MSG_USERWEB)), name, arg...)
}
func (m *Message) MergeCmd(name string, arg ...interface{}) string {
if name == "" {
name = m.PrefixKey()
}
if m.Option(MSG_USERPOD) == "" {
return kit.MergeURL2(kit.Select(Info.Domain, m.Option(MSG_USERWEB)), path.Join("/chat/cmd", name))
}
return kit.MergeURL2(kit.Select(Info.Domain, m.Option(MSG_USERWEB)), path.Join("cmd", name), arg...)
}
func (m *Message) MergeWebsite(name string, arg ...interface{}) string {
if m.Option(MSG_USERPOD) == "" {
return kit.MergeURL2(kit.Select(Info.Domain, m.Option(MSG_USERWEB)), path.Join("/chat/website", name))
}
return kit.MergeURL2(kit.Select(Info.Domain, m.Option(MSG_USERWEB)), path.Join("website", name), arg...)
}
func (m *Message) cmd(arg ...interface{}) *Message {
opts := map[string]interface{}{}

View File

@ -9,13 +9,27 @@ const GRANT = "grant"
func init() {
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
"grant": {Name: "grant sid auto", Help: "授权", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) > 0 {
if m.Confirm("grant "+arg[0]+"?") == ice.TRUE {
m.Cmdy(SESS, mdb.MODIFY, GRANT, m.Option(ice.MSG_USERNAME), ice.Option{mdb.HASH, arg[0]})
"grant": {Name: "grant hash auto", Help: "授权", Action: ice.MergeAction(map[string]*ice.Action{
"confirm": {Name: "confirm", Help: "同意", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(SESS, mdb.MODIFY, GRANT, m.Option(ice.MSG_USERNAME), ice.Option{mdb.HASH, m.Option("hash")})
}},
"revert": {Name: "confirm", Help: "撤销", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(SESS, mdb.MODIFY, GRANT, "", ice.Option{mdb.HASH, m.Option("hash")})
}},
"remove": {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(SESS, mdb.REMOVE, mdb.HASH, m.Option(mdb.HASH))
}},
}, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if m.Cmdy(SESS, arg); len(arg) > 0 && m.Append("grant") == "" {
m.Process("_confirm", "授权设备")
}
m.Table(func(index int, value map[string]string, head []string) {
if value["grant"] == "" {
m.PushButton("confirm", mdb.REMOVE)
} else {
m.PushButton("revert", mdb.REMOVE)
}
m.Cmdy(SESS, arg)
})
}},
}})
}