mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt chrome
This commit is contained in:
parent
9022f20d5d
commit
272255aecc
@ -169,7 +169,11 @@ func ListAction(fields ...string) map[string]*ice.Action {
|
||||
}, fields...)
|
||||
}
|
||||
func ListSelect(m *ice.Message, arg ...string) *ice.Message {
|
||||
m.Fields(len(arg), m.Config(kit.MDB_FIELD))
|
||||
m.OptionPage(kit.Slice(arg, 1)...)
|
||||
m.Fields(len(kit.Slice(arg, 0, 1)), m.Config(kit.MDB_FIELD))
|
||||
m.Cmdy(SELECT, m.PrefixKey(), "", LIST, kit.MDB_ID, arg)
|
||||
if !m.FieldsIsDetail() {
|
||||
m.StatusTimeCountTotal(m.Config(kit.MDB_COUNT))
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
@ -186,8 +186,8 @@ func ZoneAction(fields ...string) map[string]*ice.Action {
|
||||
}
|
||||
func ZoneSelect(m *ice.Message, arg ...string) *ice.Message {
|
||||
m.Fields(len(arg), kit.Fields(kit.MDB_TIME, m.Config(kit.MDB_SHORT), kit.MDB_COUNT), m.Config(kit.MDB_FIELD))
|
||||
m.Debug(m.Config(kit.MDB_FIELD))
|
||||
m.Cmdy(SELECT, m.PrefixKey(), "", ZONE, arg)
|
||||
m.Sort(m.Config(kit.MDB_SHORT))
|
||||
if m.Cmdy(SELECT, m.PrefixKey(), "", ZONE, arg); kit.Select("", arg, 0) == "" {
|
||||
m.Sort(m.Config(kit.MDB_SHORT))
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
4
misc.go
4
misc.go
@ -175,9 +175,9 @@ func (m *Message) cmd(arg ...interface{}) *Message {
|
||||
}
|
||||
|
||||
// 查找命令
|
||||
if cmd, ok := m.target.Commands[list[0]]; ok {
|
||||
if cmd, ok := m.target.Commands[strings.TrimPrefix(list[0], m.target.Cap(CTX_FOLLOW)+PT)]; ok {
|
||||
run(m.Spawn(), m.target, cmd, list[0], list[1:]...)
|
||||
} else if cmd, ok := m.source.Commands[list[0]]; ok {
|
||||
} else if cmd, ok := m.source.Commands[strings.TrimPrefix(list[0], m.source.Cap(CTX_FOLLOW)+PT)]; ok {
|
||||
run(m.Spawn(m.source), m.source, cmd, list[0], list[1:]...)
|
||||
} else {
|
||||
m.Search(list[0], func(p *Context, s *Context, key string, cmd *Command) {
|
||||
|
@ -3,6 +3,7 @@ package chrome
|
||||
import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
"shylinux.com/x/icebergs/core/code"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
@ -10,25 +11,23 @@ import (
|
||||
|
||||
const CHROME = "chrome"
|
||||
|
||||
var Index = &ice.Context{Name: CHROME, Help: "浏览器",
|
||||
Configs: map[string]*ice.Config{
|
||||
CHROME: {Name: CHROME, Help: "浏览器", Value: kit.Data()},
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Load() }},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save() }},
|
||||
|
||||
CHROME: {Name: "chrome wid tid url auto start build download", Help: "浏览器", Action: map[string]*ice.Action{
|
||||
web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||
}},
|
||||
cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) {
|
||||
}},
|
||||
cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Cmdy(web.SPACE, CHROME, CHROME, arg)
|
||||
var Index = &ice.Context{Name: CHROME, Help: "浏览器", Configs: map[string]*ice.Config{
|
||||
CHROME: {Name: CHROME, Help: "浏览器", Value: kit.Data()},
|
||||
}, Commands: map[string]*ice.Command{
|
||||
CHROME: {Name: "chrome wid tid url auto start build download", Help: "浏览器", Action: ice.MergeAction(map[string]*ice.Action{
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(CHROME).Table(func(index int, value map[string]string, head []string) {
|
||||
m.Cmd(CHROME, value["wid"]).Table(func(index int, value map[string]string, head []string) {
|
||||
m.Push(kit.MDB_ZONE, kit.ParseURL(value["url"]).Host)
|
||||
})
|
||||
})
|
||||
}},
|
||||
},
|
||||
}
|
||||
cli.ORDER: {Name: "order", Help: "加载", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.INSTALL, cli.ORDER, m.Config(cli.SOURCE), "_install/bin")
|
||||
}},
|
||||
}, code.InstallAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Cmdy(web.SPACE, CHROME, CHROME, arg)
|
||||
}},
|
||||
}}
|
||||
|
||||
func init() { code.Index.Register(Index, &web.Frame{}) }
|
||||
|
@ -1,17 +1,19 @@
|
||||
title "HTML5"
|
||||
refer "官网" `
|
||||
refer `
|
||||
官网 https://www.w3.org/
|
||||
文档 https://developer.mozilla.org/
|
||||
官网 https://www.google.com/chrome/
|
||||
源码 https://github.com/chromium/chromium/
|
||||
扩展 https://chrome.google.com/webstore/category/extensions
|
||||
`
|
||||
chapter "安装"
|
||||
field chrome web.code.chrome.chrome
|
||||
field "浏览器" web.code.chrome.chrome
|
||||
|
||||
chapter "应用"
|
||||
field "同步流" web.code.chrome.sync
|
||||
field "收藏夹" web.code.chrome.favor
|
||||
field "工具箱" web.code.chrome.field
|
||||
field "样式表" web.code.chrome.style
|
||||
field "工具箱" web.code.chrome.field
|
||||
field "蜘蛛侠" web.code.chrome.spide
|
||||
field "缓存池" web.code.chrome.cache
|
||||
field "相册簿" web.wiki.feel
|
||||
|
@ -10,52 +10,20 @@ import (
|
||||
const FAVOR = "favor"
|
||||
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{
|
||||
Configs: map[string]*ice.Config{
|
||||
FAVOR: {Name: FAVOR, Help: "收藏夹", Value: kit.Data(
|
||||
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,type,name,text",
|
||||
)},
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
FAVOR: {Name: "favor zone id auto export import", Help: "收藏夹", Action: map[string]*ice.Action{
|
||||
mdb.CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), "", mdb.HASH, arg)
|
||||
}},
|
||||
mdb.INSERT: {Name: "insert zone=数据结构 type name=hi text=hello", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), "", mdb.HASH, m.OptionSimple(kit.MDB_ZONE))
|
||||
m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), kit.KeyHash(m.Option(kit.MDB_ZONE)), mdb.LIST, arg)
|
||||
}},
|
||||
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.MODIFY, m.Prefix(FAVOR), "", mdb.ZONE, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), arg)
|
||||
}},
|
||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.DELETE, m.Prefix(FAVOR), "", mdb.ZONE, m.OptionSimple(kit.MDB_ZONE))
|
||||
}},
|
||||
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.OptionFields(kit.MDB_ZONE, m.Conf(FAVOR, kit.META_FIELD))
|
||||
m.Cmdy(mdb.EXPORT, m.Prefix(FAVOR), "", mdb.ZONE)
|
||||
m.Conf(FAVOR, kit.MDB_HASH, "")
|
||||
}},
|
||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.IMPORT, m.Prefix(FAVOR), "", mdb.ZONE)
|
||||
}},
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch arg[0] {
|
||||
case kit.MDB_ZONE:
|
||||
m.Cmdy(mdb.INPUTS, m.Prefix(FAVOR), "", mdb.HASH, arg)
|
||||
default:
|
||||
m.Cmdy(mdb.INPUTS, m.Prefix(FAVOR), kit.KeyHash(m.Option(kit.MDB_ZONE)), mdb.LIST, arg)
|
||||
}
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Fields(len(arg), "time,zone,count", m.Conf(FAVOR, kit.META_FIELD))
|
||||
if m.Cmdy(mdb.SELECT, m.Prefix(FAVOR), "", mdb.ZONE, arg); len(arg) == 0 {
|
||||
m.Action(mdb.CREATE)
|
||||
m.PushAction(mdb.REMOVE)
|
||||
} else {
|
||||
m.PushAction(code.INNER)
|
||||
}
|
||||
}},
|
||||
},
|
||||
})
|
||||
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||
FAVOR: {Name: FAVOR, Help: "收藏夹", Value: kit.Data(
|
||||
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,type,name,text",
|
||||
)},
|
||||
}, Commands: map[string]*ice.Command{
|
||||
FAVOR: {Name: "favor zone id auto", Help: "收藏夹", Action: ice.MergeAction(map[string]*ice.Action{
|
||||
mdb.INSERT: {Name: "insert zone=官网文档 type name=hi text=hello", Help: "添加"},
|
||||
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if mdb.ZoneSelect(m, arg...); len(arg) == 0 {
|
||||
m.Action(mdb.CREATE, mdb.EXPORT, mdb.IMPORT)
|
||||
m.PushAction(mdb.REMOVE)
|
||||
} else {
|
||||
m.PushAction(code.INNER)
|
||||
}
|
||||
}},
|
||||
}})
|
||||
}
|
||||
|
@ -2,7 +2,9 @@ package chrome
|
||||
|
||||
import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/tcp"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
@ -12,18 +14,35 @@ const FIELD = "field"
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||
FIELD: {Name: "field", Help: "工具", Value: kit.Data(
|
||||
kit.MDB_SHORT, "zone", kit.MDB_FIELD, "time,id,index,args,style,left,top,selection",
|
||||
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,index,args,style,left,top,right,bottom,selection",
|
||||
)},
|
||||
}, Commands: map[string]*ice.Command{
|
||||
FIELD: {Name: "field zone id auto insert", Help: "工具", Action: ice.MergeAction(map[string]*ice.Action{
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch arg[0] {
|
||||
case kit.MDB_ZONE:
|
||||
m.Cmdy(CHROME, mdb.INPUTS)
|
||||
case kit.MDB_INDEX:
|
||||
m.Cmdy(ctx.COMMAND)
|
||||
}
|
||||
}},
|
||||
mdb.INSERT: {Name: "insert zone=golang.google.cn index=cli.system args=pwd", Help: "添加"},
|
||||
SYNC: {Name: "sync hostname", Help: "同步", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(FIELD, m.Option("hostname")).Table(func(index int, value map[string]string, head []string) {
|
||||
m.Option(ice.MSG_OPTS, head)
|
||||
for k, v := range value {
|
||||
m.Option(k, v)
|
||||
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(FIELD, m.Option(tcp.HOST), arg).Table(func(index int, value map[string]string, head []string) {
|
||||
if len(arg) == 0 { // 命令列表
|
||||
m.Option(ice.MSG_OPTS, head)
|
||||
for k, v := range value {
|
||||
m.Option(k, v)
|
||||
}
|
||||
m.Cmdy(web.SPACE, CHROME, CHROME, "1", m.Option("tid"), FIELD, value[kit.MDB_ID], value[kit.MDB_ARGS])
|
||||
} else { // 命令详情
|
||||
m.Cmdy(ctx.COMMAND, value[kit.MDB_INDEX])
|
||||
}
|
||||
m.Cmd(web.SPACE, CHROME, CHROME, "1", m.Option("tid"), FIELD, value["index"], value["args"], value["top"])
|
||||
})
|
||||
}},
|
||||
ice.RUN: {Name: "run", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(FIELD, m.Option(tcp.HOST), arg[0]).Table(func(index int, value map[string]string, head []string) {
|
||||
m.Cmdy(value[kit.MDB_INDEX], arg[1:])
|
||||
})
|
||||
}},
|
||||
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
|
@ -14,21 +14,12 @@ func init() {
|
||||
}, Commands: map[string]*ice.Command{
|
||||
"/page": {Name: "/page", Help: "网页", Action: map[string]*ice.Action{
|
||||
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
if len(arg) == 0 {
|
||||
m.Cmdy(STYLE, SYNC, m.OptionSimple("hostname"), ice.OptionFields(""))
|
||||
m.Cmdy(FIELD, SYNC, m.OptionSimple("hostname"), ice.OptionFields(""))
|
||||
return
|
||||
}
|
||||
m.Cmdy(ctx.COMMAND, arg)
|
||||
}},
|
||||
FIELD: {Name: "field", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(FIELD, arg)
|
||||
m.Cmdy(STYLE, ctx.ACTION, ctx.COMMAND, arg)
|
||||
m.Cmdy(FIELD, ctx.ACTION, ctx.COMMAND, arg)
|
||||
}},
|
||||
ice.RUN: {Name: "run", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(arg)
|
||||
m.Cmdy(FIELD, ice.RUN, arg)
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
|
||||
}},
|
||||
}})
|
||||
}
|
||||
|
@ -10,39 +10,37 @@ import (
|
||||
const SPIDE = "spide"
|
||||
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{
|
||||
Commands: map[string]*ice.Command{
|
||||
SPIDE: {Name: "spide wid tid cmd auto", Help: "网页爬虫", Action: map[string]*ice.Action{
|
||||
web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(CACHE, mdb.CREATE, arg)
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
switch msg := m.Cmd(web.SPACE, CHROME, CHROME, arg); kit.Select(SPIDE, arg, 2) {
|
||||
case SPIDE:
|
||||
if len(arg) > 1 {
|
||||
msg.Table(func(index int, value map[string]string, head []string) {
|
||||
m.Push(kit.MDB_TIME, value[kit.MDB_TIME])
|
||||
m.Push(kit.MDB_TYPE, value[kit.MDB_TYPE])
|
||||
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
|
||||
|
||||
switch m.PushButton(web.DOWNLOAD); value[kit.MDB_TYPE] {
|
||||
case "img":
|
||||
m.PushImages(kit.MDB_TEXT, value[kit.MDB_LINK])
|
||||
case "video":
|
||||
m.PushVideos(kit.MDB_TEXT, value[kit.MDB_LINK])
|
||||
default:
|
||||
m.Push(kit.MDB_TEXT, "")
|
||||
}
|
||||
m.Push(kit.MDB_LINK, value[kit.MDB_LINK])
|
||||
})
|
||||
m.StatusTimeCount()
|
||||
break
|
||||
}
|
||||
fallthrough
|
||||
default:
|
||||
m.Copy(msg)
|
||||
}
|
||||
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
|
||||
SPIDE: {Name: "spide wid tid cmd auto", Help: "网页爬虫", Action: map[string]*ice.Action{
|
||||
web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(CACHE, mdb.CREATE, arg)
|
||||
}},
|
||||
},
|
||||
})
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
switch msg := m.Cmd(web.SPACE, CHROME, CHROME, arg); kit.Select(SPIDE, arg, 2) {
|
||||
case SPIDE:
|
||||
if len(arg) > 1 {
|
||||
msg.Table(func(index int, value map[string]string, head []string) {
|
||||
m.Push(kit.MDB_TIME, value[kit.MDB_TIME])
|
||||
m.Push(kit.MDB_TYPE, value[kit.MDB_TYPE])
|
||||
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
|
||||
|
||||
switch m.PushButton(web.DOWNLOAD); value[kit.MDB_TYPE] {
|
||||
case "img":
|
||||
m.PushImages(kit.MDB_TEXT, value[kit.MDB_LINK])
|
||||
case "video":
|
||||
m.PushVideos(kit.MDB_TEXT, value[kit.MDB_LINK])
|
||||
default:
|
||||
m.Push(kit.MDB_TEXT, "")
|
||||
}
|
||||
m.Push(kit.MDB_LINK, value[kit.MDB_LINK])
|
||||
})
|
||||
m.StatusTimeCount()
|
||||
break
|
||||
}
|
||||
fallthrough
|
||||
default:
|
||||
m.Copy(msg)
|
||||
}
|
||||
}},
|
||||
}})
|
||||
}
|
||||
|
@ -2,7 +2,9 @@ package chrome
|
||||
|
||||
import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/tcp"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
@ -12,15 +14,20 @@ const STYLE = "style"
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||
STYLE: {Name: "style", Help: "样式", Value: kit.Data(
|
||||
kit.MDB_SHORT, "zone", kit.MDB_FIELD, "time,id,target,style",
|
||||
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,target,style",
|
||||
)},
|
||||
}, Commands: map[string]*ice.Command{
|
||||
STYLE: {Name: "style zone id auto insert", Help: "样式", Action: ice.MergeAction(map[string]*ice.Action{
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch arg[0] {
|
||||
case kit.MDB_ZONE:
|
||||
m.Cmdy(CHROME, mdb.INPUTS)
|
||||
}
|
||||
}},
|
||||
mdb.INSERT: {Name: "insert zone=golang.google.cn target=. style:textarea", Help: "添加"},
|
||||
SYNC: {Name: "sync hostname", Help: "同步", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Fields(0, m.Conf(STYLE, kit.META_FIELD))
|
||||
m.Cmd(mdb.SELECT, m.PrefixKey(), "", mdb.ZONE, m.Option("hostname")).Table(func(index int, value map[string]string, head []string) {
|
||||
m.Cmd(web.SPACE, CHROME, CHROME, "1", m.Option("tid"), STYLE, value["target"], value["style"])
|
||||
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(STYLE, m.Option(tcp.HOST)).Table(func(index int, value map[string]string, head []string) {
|
||||
m.Cmdy(web.SPACE, CHROME, CHROME, "1", m.Option("tid"), STYLE, value["target"], value["style"])
|
||||
})
|
||||
}},
|
||||
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
|
@ -6,10 +6,6 @@ import (
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
const _sync_index = 1
|
||||
|
||||
func _sync_count(m *ice.Message) string { return m.Conf(SYNC, kit.Keym(kit.MDB_COUNT)) }
|
||||
|
||||
const SYNC = "sync"
|
||||
|
||||
func init() {
|
||||
@ -20,20 +16,11 @@ func init() {
|
||||
m.Cmdy(SYNC, mdb.INSERT, arg)
|
||||
}},
|
||||
SYNC: {Name: "sync id auto page export import", Help: "同步流", Action: ice.MergeAction(map[string]*ice.Action{
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch arg[0] {
|
||||
case kit.MDB_ZONE:
|
||||
m.Cmdy(FAVOR, ice.OptionFields("zone,count,time"))
|
||||
}
|
||||
}},
|
||||
FAVOR: {Name: "favor zone=some name", Help: "收藏", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(FAVOR, mdb.INSERT, m.OptionSimple("zone,type,name,text"))
|
||||
FAVOR: {Name: "favor zone=hi name", Help: "收藏", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(FAVOR, mdb.INSERT)
|
||||
}},
|
||||
}, mdb.ListAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.OptionPage(kit.Slice(arg, _sync_index)...)
|
||||
m.Fields(len(kit.Slice(arg, 0, 1)), m.Conf(SYNC, kit.META_FIELD))
|
||||
m.Cmdy(mdb.SELECT, m.PrefixKey(), "", mdb.LIST, kit.MDB_ID, arg)
|
||||
m.StatusTimeCountTotal(_sync_count(m))
|
||||
mdb.ListSelect(m, arg...)
|
||||
m.PushAction(FAVOR)
|
||||
}},
|
||||
}})
|
||||
|
13
type.go
13
type.go
@ -470,7 +470,7 @@ func (m *Message) Confi(key string, sub string) int {
|
||||
return kit.Int(m.Conf(key, sub))
|
||||
}
|
||||
func (m *Message) Confv(arg ...interface{}) (val interface{}) {
|
||||
m.Search(kit.Format(arg[0]), func(p *Context, s *Context, key string, conf *Config) {
|
||||
run := func(conf *Config) {
|
||||
if len(arg) == 1 {
|
||||
val = conf.Value
|
||||
return // 读配置
|
||||
@ -484,7 +484,16 @@ func (m *Message) Confv(arg ...interface{}) (val interface{}) {
|
||||
}
|
||||
}
|
||||
val = kit.Value(conf.Value, arg[1]) // 读配置项
|
||||
})
|
||||
}
|
||||
|
||||
key := kit.Format(arg[0])
|
||||
if conf, ok := m.target.Configs[strings.TrimPrefix(key, m.target.Cap(CTX_FOLLOW)+PT)]; ok {
|
||||
run(conf)
|
||||
} else if conf, ok := m.source.Configs[strings.TrimPrefix(key, m.source.Cap(CTX_FOLLOW)+PT)]; ok {
|
||||
run(conf)
|
||||
} else {
|
||||
m.Search(key, func(p *Context, s *Context, key string, conf *Config) { run(conf) })
|
||||
}
|
||||
return
|
||||
}
|
||||
func (m *Message) Confm(key string, chain interface{}, cbs ...interface{}) map[string]interface{} {
|
||||
|
Loading…
x
Reference in New Issue
Block a user