mirror of
https://shylinux.com/x/icebergs
synced 2025-06-26 10:27:31 +08:00
opt vimer
This commit is contained in:
parent
b4e95f8dab
commit
ab7ab6eb19
@ -26,7 +26,7 @@ func _dream_list(m *ice.Message) *ice.Message {
|
||||
m.Push(cli.STATUS, cli.STOP)
|
||||
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) {
|
||||
@ -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_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.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) {
|
||||
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, mdb.REMOVE, m.OptionSimple(mdb.NAME))
|
||||
}},
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
_dream_list(m).Cut("name,status,time")
|
||||
|
@ -104,8 +104,8 @@ const (
|
||||
SHARE_PROXY = "/share/proxy/"
|
||||
SHARE_LOCAL = "/share/local/"
|
||||
|
||||
SHARE_LOCAL_AVATAR = "/share/local/avatar"
|
||||
SHARE_LOCAL_BACKGROUND = "/share/local/background"
|
||||
SHARE_LOCAL_AVATAR = "/share/local/avatar/"
|
||||
SHARE_LOCAL_BACKGROUND = "/share/local/background/"
|
||||
)
|
||||
const SHARE = "share"
|
||||
|
||||
@ -182,6 +182,8 @@ func init() {
|
||||
_share_local(m, arg...)
|
||||
}},
|
||||
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))
|
||||
}},
|
||||
SHARE_LOCAL_BACKGROUND: {Name: "background", Help: "壁纸", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
|
@ -2,6 +2,7 @@ package chat
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
@ -130,8 +131,21 @@ 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.MergeURL2(value[nfs.PATH]))
|
||||
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
||||
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 {
|
||||
m.Push(mdb.TEXT, m.Cmdx(nfs.CAT, path.Join("src/website", path.Join(arg...))))
|
||||
|
@ -163,8 +163,10 @@ func init() {
|
||||
return
|
||||
}
|
||||
arg[1] = strings.Split(arg[1], ice.FS)[0]
|
||||
if m.Option(ice.POD) == "" {
|
||||
m.Option("plug", "web.chat.website,web.dream")
|
||||
}
|
||||
m.Option("exts", "inner/search.js?a=1,inner/favor.js,inner/template.js")
|
||||
m.Option("plug", "web.chat.website,web.dream")
|
||||
if _inner_list(m, kit.Ext(arg[1]), arg[1], arg[0]); m.IsErrNotFound() {
|
||||
m.SetResult("")
|
||||
}
|
||||
|
@ -6,21 +6,72 @@ import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
func init() {
|
||||
const TEMPLATE = "template"
|
||||
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
|
||||
TEMPLATE: {Name: "template name auto create", Help: "模板", Action: ice.MergeAction(
|
||||
map[string]*ice.Action{
|
||||
mdb.CREATE: {Name: "create type name text args", Help: "创建"},
|
||||
nfs.DEFS: {Name: "defs file", Help: "生成", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Option(mdb.TEXT))
|
||||
}},
|
||||
}, mdb.HashAction(mdb.SHORT, "name", mdb.FIELD, "time,type,name,text,args"),
|
||||
), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
TEMPLATE: {Name: "template name auto create", Help: "模板", Action: ice.MergeAction(map[string]*ice.Action{
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV("", "txt", "网站索引", `
|
||||
hi
|
||||
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.CREATE: {Name: "create type name text args", Help: "创建"},
|
||||
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...)
|
||||
m.PushAction(nfs.DEFS, mdb.REMOVE)
|
||||
m.Sort("name")
|
||||
m.Cut("time,action,type,name,text,args")
|
||||
}}},
|
||||
})
|
||||
}
|
||||
|
5
misc.go
5
misc.go
@ -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{}) {
|
||||
const (
|
||||
TEXT = "text"
|
||||
ARGS = "args"
|
||||
TEXTAREA = "textarea"
|
||||
SELECT = "select"
|
||||
BUTTON = "button"
|
||||
@ -305,8 +306,8 @@ func (c *Context) split(name string) (list []interface{}) {
|
||||
case "run":
|
||||
item = kit.Dict(TYPE, BUTTON, NAME, "run")
|
||||
list = append(list, item)
|
||||
case "text":
|
||||
item = kit.Dict(TYPE, TEXTAREA, NAME, "text")
|
||||
case "text", "args":
|
||||
item = kit.Dict(TYPE, TEXTAREA, NAME, ls[i])
|
||||
list = append(list, item)
|
||||
case "auto":
|
||||
list = append(list, kit.List(TYPE, BUTTON, NAME, "list", ACTION, AUTO)...)
|
||||
|
Loading…
x
Reference in New Issue
Block a user