1
0
mirror of https://shylinux.com/x/icebergs synced 2025-06-26 18:37:29 +08:00

opt vimer

This commit is contained in:
harveyshao 2022-01-24 17:29:25 +08:00
parent b4e95f8dab
commit ab7ab6eb19
6 changed files with 91 additions and 19 deletions

View File

@ -26,7 +26,7 @@ func _dream_list(m *ice.Message) *ice.Message {
m.Push(cli.STATUS, cli.STOP) m.Push(cli.STATUS, cli.STOP)
m.PushButton(cli.START) m.PushButton(cli.START)
} }
m.Push(mdb.LINK, kit.MergePOD(m.Option(ice.MSG_USERWEB), value[mdb.NAME])) m.Push(mdb.LINK, strings.Split(kit.MergePOD(m.Option(ice.MSG_USERWEB), value[mdb.NAME]), "?")[0])
}) })
} }
func _dream_show(m *ice.Message, name string) { func _dream_show(m *ice.Message, name string) {
@ -102,14 +102,16 @@ func init() {
_dream_show(m, m.Option(mdb.NAME, kit.Select(path.Base(m.Option(nfs.REPOS)), m.Option(mdb.NAME)))) _dream_show(m, m.Option(mdb.NAME, kit.Select(path.Base(m.Option(nfs.REPOS)), m.Option(mdb.NAME))))
}}, }},
DREAM_STOP: {Name: "dream.stop type name", Help: "停止", Hand: func(m *ice.Message, arg ...string) { DREAM_STOP: {Name: "dream.stop type name", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
if m.Cmd(DREAM, m.Option(mdb.NAME)).Length() > 0 { if m.Cmd(SPACE, m.Option(mdb.NAME)).Append(mdb.STATUS) == cli.STOP {
m.Cmdy(SPACE, mdb.REMOVE, m.OptionSimple(mdb.NAME)) m.Cmdy(SPACE, mdb.REMOVE, m.OptionSimple(mdb.NAME))
m.Cmd(DREAM, cli.START, m.OptionSimple(mdb.NAME)) return
} }
m.Cmdy(SPACE, mdb.REMOVE, m.OptionSimple(mdb.NAME))
m.Sleep("1s", DREAM, cli.START, m.OptionSimple(mdb.NAME))
}}, }},
cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) { 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)
m.Cmdy(SPACE, m.Option(mdb.NAME), "exit", "0") m.Cmdy(SPACE, m.Option(mdb.NAME), "exit", "0")
m.Cmdy(SPACE, mdb.REMOVE, m.OptionSimple(mdb.NAME))
}}, }},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
_dream_list(m).Cut("name,status,time") _dream_list(m).Cut("name,status,time")

View File

@ -104,8 +104,8 @@ const (
SHARE_PROXY = "/share/proxy/" SHARE_PROXY = "/share/proxy/"
SHARE_LOCAL = "/share/local/" SHARE_LOCAL = "/share/local/"
SHARE_LOCAL_AVATAR = "/share/local/avatar" SHARE_LOCAL_AVATAR = "/share/local/avatar/"
SHARE_LOCAL_BACKGROUND = "/share/local/background" SHARE_LOCAL_BACKGROUND = "/share/local/background/"
) )
const SHARE = "share" const SHARE = "share"
@ -182,6 +182,8 @@ func init() {
_share_local(m, arg...) _share_local(m, arg...)
}}, }},
SHARE_LOCAL_AVATAR: {Name: "avatar", Help: "头像", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { SHARE_LOCAL_AVATAR: {Name: "avatar", Help: "头像", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
// RenderType(m.W, "", "image/svg+xml")
// m.RenderResult(`<svg font-size="32" text-anchor="middle" dominant-baseline="middle" width="80" height="60" xmlns="http://www.w3.org/2000/svg"><text x="40" y="30" stroke="red">hello</text></svg>`)
m.RenderDownload(strings.TrimPrefix(m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME)).Append(aaa.AVATAR), SHARE_LOCAL)) m.RenderDownload(strings.TrimPrefix(m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME)).Append(aaa.AVATAR), SHARE_LOCAL))
}}, }},
SHARE_LOCAL_BACKGROUND: {Name: "background", Help: "壁纸", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { SHARE_LOCAL_BACKGROUND: {Name: "background", Help: "壁纸", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {

View File

@ -2,6 +2,7 @@ package chat
import ( import (
"net/http" "net/http"
"os"
"path" "path"
"strings" "strings"
@ -130,8 +131,21 @@ func init() {
}) })
}}, }},
}, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { }, 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) { if mdb.HashSelect(m, arg...); len(arg) == 0 {
m.PushAnchor(m.MergeURL2(value[nfs.PATH])) dir := "src/website/"
m.Cmd(nfs.DIR, dir, func(f os.FileInfo, p string) {
m.Push("", kit.Dict(
mdb.TIME, f.ModTime().Format(ice.MOD_TIME),
nfs.PATH, ice.PS+strings.TrimPrefix(p, dir),
mdb.TYPE, kit.Ext(p),
mdb.NAME, path.Base(p),
mdb.TEXT, m.Cmdx(nfs.CAT, p),
), kit.Split(m.Config(mdb.FIELD)))
m.PushButton("")
})
}
m.Table(func(index int, value map[string]string, head []string) {
m.PushAnchor(strings.Split(m.MergeURL2(value[nfs.PATH]), "?")[0])
}) })
if m.Length() == 0 && len(arg) > 0 { if m.Length() == 0 && len(arg) > 0 {
m.Push(mdb.TEXT, m.Cmdx(nfs.CAT, path.Join("src/website", path.Join(arg...)))) m.Push(mdb.TEXT, m.Cmdx(nfs.CAT, path.Join("src/website", path.Join(arg...))))

View File

@ -163,8 +163,10 @@ func init() {
return return
} }
arg[1] = strings.Split(arg[1], ice.FS)[0] arg[1] = strings.Split(arg[1], ice.FS)[0]
m.Option("exts", "inner/search.js?a=1,inner/favor.js,inner/template.js") if m.Option(ice.POD) == "" {
m.Option("plug", "web.chat.website,web.dream") m.Option("plug", "web.chat.website,web.dream")
}
m.Option("exts", "inner/search.js?a=1,inner/favor.js,inner/template.js")
if _inner_list(m, kit.Ext(arg[1]), arg[1], arg[0]); m.IsErrNotFound() { if _inner_list(m, kit.Ext(arg[1]), arg[1], arg[0]); m.IsErrNotFound() {
m.SetResult("") m.SetResult("")
} }

View File

@ -6,21 +6,72 @@ import (
ice "shylinux.com/x/icebergs" ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/mdb"
"shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
) )
func init() { func init() {
const TEMPLATE = "template" const TEMPLATE = "template"
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{ Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
TEMPLATE: {Name: "template name auto create", Help: "模板", Action: ice.MergeAction( TEMPLATE: {Name: "template name auto create", Help: "模板", Action: ice.MergeAction(map[string]*ice.Action{
map[string]*ice.Action{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
mdb.CREATE: {Name: "create type name text args", Help: "创建"}, m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV("", "txt", "网站索引", `
nfs.DEFS: {Name: "defs file", Help: "生成", Hand: func(m *ice.Message, arg ...string) { hi
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Option(mdb.TEXT)) hi
cli.qrcode
cli.system
cli.runtime
`))
m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV("", "js", "前端模块", `Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
can.onmotion.clear(can)
can.onappend.table(can, msg)
can.onappend.board(can, msg)
}})`))
m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV("", "go", "后端模块", `package {{.Option "zone"}}
import (
"shylinux.com/x/ice"
)
type {{.Option "name"}} struct {
ice.{{.Option "type"}}
list string {{.Option "tags"}}
}
func (h {{.Option "name"}}) List(m *ice.Message, arg ...string) {
h.{{.Option "type"}}.List(m, arg...)
}
func init() { ice.Cmd("{{.Option "key"}}", {{.Option "name"}}{}) }
`), "args", `[
{"name": "zone", "value": "hi"},
{"name": "name", "value": "hi"},
{"name": "key", "value": "web.code.hi.hi"},
{"name": "type", "values": "Hash,Zone,List"},
{"name": "tags", "value": "name:\"list hash id auto insert\" help:\"数据\""},
{"name": "main", "value": "main.go"}
]`)
}}, }},
}, mdb.HashAction(mdb.SHORT, "name", mdb.FIELD, "time,type,name,text,args"), mdb.CREATE: {Name: "create type name text args", Help: "创建"},
), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { nfs.DEFS: {Name: "defs file=hi/hi.go", Help: "生成", Hand: func(m *ice.Message, arg ...string) {
m.Option("tags", "`"+m.Option("tags")+"`")
if buf, err := kit.Render(m.Option(mdb.TEXT), m); !m.Warn(err) {
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), string(buf))
m.Debug("what %v", m.FormatMeta())
switch kit.Ext(m.Option(nfs.FILE)) {
case GO:
if m.Option(MAIN) != "" && m.Option(mdb.ZONE) != "" {
_autogen_import(m, path.Join(m.Option(nfs.PATH), m.Option(MAIN)), m.Option(mdb.ZONE), _autogen_mod(m, ice.GO_MOD))
}
}
}
}},
}, mdb.HashAction(mdb.SHORT, "name", mdb.FIELD, "time,type,name,text,args")), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
mdb.HashSelect(m, arg...) mdb.HashSelect(m, arg...)
m.PushAction(nfs.DEFS, mdb.REMOVE) m.PushAction(nfs.DEFS, mdb.REMOVE)
m.Sort("name")
m.Cut("time,action,type,name,text,args")
}}}, }}},
}) })
} }

View File

@ -293,6 +293,7 @@ func (c *Context) _cmd(m *Message, cmd *Command, key string, sub string, h *Acti
func (c *Context) split(name string) (list []interface{}) { func (c *Context) split(name string) (list []interface{}) {
const ( const (
TEXT = "text" TEXT = "text"
ARGS = "args"
TEXTAREA = "textarea" TEXTAREA = "textarea"
SELECT = "select" SELECT = "select"
BUTTON = "button" BUTTON = "button"
@ -305,8 +306,8 @@ func (c *Context) split(name string) (list []interface{}) {
case "run": case "run":
item = kit.Dict(TYPE, BUTTON, NAME, "run") item = kit.Dict(TYPE, BUTTON, NAME, "run")
list = append(list, item) list = append(list, item)
case "text": case "text", "args":
item = kit.Dict(TYPE, TEXTAREA, NAME, "text") item = kit.Dict(TYPE, TEXTAREA, NAME, ls[i])
list = append(list, item) list = append(list, item)
case "auto": case "auto":
list = append(list, kit.List(TYPE, BUTTON, NAME, "list", ACTION, AUTO)...) list = append(list, kit.List(TYPE, BUTTON, NAME, "list", ACTION, AUTO)...)