1
0
forked from x/icebergs
This commit is contained in:
shaoying 2020-08-07 16:48:33 +08:00
parent 36b23b5c9b
commit ed5904fe68
10 changed files with 106 additions and 136 deletions

View File

@ -94,7 +94,7 @@ func _hash_import(m *ice.Message, prefix, key, file string) {
m.Echo(kit.Keys(file, JSON))
}
func _hash_select(m *ice.Message, prefix, key, field, value string) {
fields := strings.Split(kit.Select("time,name", m.Option("fields")), ",")
fields := strings.Split(kit.Select("time,hash,type,name,text", m.Option("fields")), ",")
m.Richs(prefix, key, value, func(key string, val map[string]interface{}) {
if value == kit.MDB_FOREACH {
m.Push(key, val, fields)
@ -195,7 +195,7 @@ func _list_import(m *ice.Message, prefix, key, file string) {
m.Echo(kit.Keys(file, CSV))
}
func _list_select(m *ice.Message, prefix, key, field, value string) {
fields := strings.Split(kit.Select("time,name", m.Option("fields")), ",")
fields := strings.Split(kit.Select("time,type,name,text", m.Option("fields")), ",")
m.Grows(prefix, key, field, value, func(index int, value map[string]interface{}) {
if field == kit.MDB_ID {
m.Push("detail", value)
@ -328,7 +328,7 @@ var Index = &ice.Context{Name: "mdb", Help: "数据模块",
SELECT: {Name: "select conf key type field value", Help: "数据查询", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
switch arg[2] {
case HASH:
_hash_select(m, arg[0], arg[1], arg[3], arg[4])
_hash_select(m, arg[0], arg[1], kit.Select("", arg, 3), kit.Select(kit.MDB_FOREACH, arg, 4))
case LIST:
_list_select(m, arg[0], arg[1], kit.Select("", arg, 3), kit.Select("", arg, 4))
}

View File

@ -4,13 +4,9 @@ import (
ice "github.com/shylinux/icebergs"
"github.com/shylinux/icebergs/base/mdb"
kit "github.com/shylinux/toolkits"
"strings"
)
const (
PASTE = "paste"
)
const PASTE = "paste"
func init() {
Index.Register(&ice.Context{Name: PASTE, Help: "粘贴板",
@ -18,76 +14,35 @@ func init() {
PASTE: {Name: "paste", Help: "粘贴板", Value: kit.Data(kit.MDB_SHORT, kit.MDB_TEXT)},
},
Commands: map[string]*ice.Command{
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Load(PASTE)
m.Cmd(mdb.SEARCH, mdb.CREATE, PASTE, m.Prefix(PASTE))
m.Cmd(mdb.RENDER, mdb.CREATE, PASTE, m.Prefix(PASTE))
}},
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Save(PASTE)
}},
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(PASTE) }},
PASTE: {Name: "paste text auto 添加:button", Help: "粘贴板", Meta: kit.Dict(
"display", "/plugin/story/paste",
"display", "/plugin/story/paste.js",
), Action: map[string]*ice.Action{
mdb.INSERT: {Name: "insert type name text", Hand: func(m *ice.Message, arg ...string) {
m.Conf(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_META, kit.MDB_SHORT), kit.MDB_TEXT)
h := m.Rich(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Dict(
kit.MDB_TYPE, arg[0], kit.MDB_NAME, arg[1], kit.MDB_TEXT, strings.TrimSpace(arg[2]),
))
m.Log_INSERT(PASTE, arg[2])
m.Echo(h)
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.INSERT, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH, arg)
}},
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
if arg[0] == kit.MDB_TEXT {
return
}
m.Log_MODIFY(PASTE, m.Option(kit.MDB_TEXT))
value[arg[0]] = arg[1]
})
mdb.MODIFY: {Name: "modify key value", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.MODIFY, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH, kit.MDB_TEXT, m.Option("text"), arg[0], arg[1])
}},
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
m.Log_REMOVE(PASTE, m.Option(kit.MDB_TEXT))
m.Conf(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_HASH, key), "")
})
mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.DELETE, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH, kit.MDB_TEXT, m.Option("text"))
}},
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
if strings.Contains(kit.Format(value[kit.MDB_NAME]), arg[1]) ||
strings.Contains(kit.Format(value[kit.MDB_TEXT]), arg[1]) {
m.Push("pod", m.Option("pod"))
m.Push("ctx", m.Cap(ice.CTX_FOLLOW))
m.Push("cmd", PASTE)
m.Push(kit.MDB_TIME, value["time"])
m.Push(kit.MDB_SIZE, value["size"])
m.Push(kit.MDB_TYPE, PASTE)
m.Push(kit.MDB_NAME, value["name"])
m.Push(kit.MDB_TEXT, value["text"])
}
})
mdb.EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.EXPORT, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH)
}},
mdb.RENDER: {Name: "render type name text", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
m.Echo(arg[2])
mdb.IMPORT: {Name: "import file", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.IMPORT, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH)
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) {
if len(arg) == 0 {
m.Push(key, value, []string{kit.MDB_TIME, kit.MDB_TYPE, kit.MDB_NAME, kit.MDB_TEXT})
if strings.Contains(m.Option(ice.MSG_USERUA), "MicroMessenger") {
return
if len(arg) > 0 {
m.Cmdy(mdb.INSERT, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH, kit.MDB_TEXT, arg[0])
}
return
}
m.Push("detail", value)
})
if len(arg) == 0 {
m.Cmdy(mdb.SELECT, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH)
m.PushAction("复制", "删除")
m.Sort("time", "time_r")
}
}},
},
}, nil)

View File

@ -120,18 +120,6 @@ func init() {
"endif", "keyword",
),
),
"shy", kit.Dict(
"prefix", kit.Dict("#", "comment"),
"keyword", kit.Dict(
"title", "keyword",
"chapter", "keyword",
"section", "keyword",
"refer", "keyword",
"field", "keyword",
"label", "keyword",
"chain", "keyword",
),
),
"py", kit.Dict(
"prefix", kit.Dict("#", "comment"),
"keyword", kit.Dict("print", "keyword"),

61
core/code/shy.go Normal file
View File

@ -0,0 +1,61 @@
package code
import (
ice "github.com/shylinux/icebergs"
"github.com/shylinux/icebergs/base/cli"
"github.com/shylinux/icebergs/base/mdb"
"github.com/shylinux/icebergs/base/nfs"
kit "github.com/shylinux/toolkits"
"path"
)
const SHY = "shy"
func init() {
Index.Register(&ice.Context{Name: SHY, Help: "shy",
Commands: map[string]*ice.Command{
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cmd(mdb.SEARCH, mdb.CREATE, SHY, SHY, c.Cap(ice.CTX_FOLLOW))
m.Cmd(mdb.PLUGIN, mdb.CREATE, SHY, SHY, c.Cap(ice.CTX_FOLLOW))
m.Cmd(mdb.RENDER, mdb.CREATE, SHY, SHY, c.Cap(ice.CTX_FOLLOW))
m.Cmd(mdb.ENGINE, mdb.CREATE, SHY, SHY, c.Cap(ice.CTX_FOLLOW))
}},
SHY: {Name: SHY, Help: "shy", Action: map[string]*ice.Action{
mdb.SEARCH: {Name: "search type name text", Hand: func(m *ice.Message, arg ...string) {
if arg[0] == kit.MDB_FOREACH {
return
}
m.Option(cli.CMD_DIR, m.Option("_path"))
_c_find(m, kit.Select("main", arg, 1))
_c_grep(m, kit.Select("main", arg, 1))
}},
mdb.PLUGIN: {Hand: func(m *ice.Message, arg ...string) {
m.Echo(m.Conf(SHY, "meta.plug"))
}},
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(nfs.CAT, path.Join(arg[2], arg[1]))
}},
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
m.Cmdy("web.wiki.word", path.Join(arg[2], arg[1]))
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {}},
},
Configs: map[string]*ice.Config{
SHY: {Name: SHY, Help: "shy", Value: kit.Data(
"plug", kit.Dict(
"prefix", kit.Dict("#", "comment"),
"keyword", kit.Dict(
"title", "keyword",
"chapter", "keyword",
"section", "keyword",
"refer", "keyword",
"field", "keyword",
"label", "keyword",
"chain", "keyword",
),
),
)},
},
}, nil)
}

View File

@ -359,10 +359,9 @@ var Index = &ice.Context{Name: "team", Help: "团队中心",
})
}
}},
PLAN: {Name: "plan scale:select=day|week|month|year|long begin_time=@date auto 添加:button 导出:button 导入:button", Help: "计划", Meta: kit.Dict(
PLAN: {Name: "plan scale:select=day|week|month|year|long begin_time=@date auto 添加:button 导出:button 导入:button 筛选:button", Help: "计划", Meta: kit.Dict(
"display", "/plugin/local/team/plan.js", "style", "plan",
"添加", _task_inputs,
"display", "/plugin/local/team/plan.js", "detail", []string{StatusPrepare, StatusProcess, StatusCancel, StatusFinish},
"style", "plan",
), Action: map[string]*ice.Action{
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
_task_create(m, arg[1])

View File

@ -1,33 +0,0 @@
package team
import (
ice "github.com/shylinux/icebergs"
"github.com/shylinux/icebergs/base/web"
)
func _work_input(m *ice.Message, key, value string) {
switch key {
case "name":
m.Push(key, "volcanos")
m.Push(key, "icebergs")
m.Push(key, "intshell")
m.Push(key, "contexts")
m.Push(key, "toolkits")
m.Push(key, "learning")
case "text":
m.Push(key, "volcanos")
m.Push(key, "icebergs")
}
}
func init() {
Index.Register(&ice.Context{Name: "工作", Help: "工作",
Commands: map[string]*ice.Command{
"项目开发": {Name: "项目开发", Help: "项目开发", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
m.Echo("hello world")
}},
"项目测试": {Name: "项目测试", Help: "项目测试", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
m.Echo("hello world")
}},
},
}, &web.Frame{})
}

View File

@ -18,7 +18,7 @@ func init() {
)},
},
Commands: map[string]*ice.Command{
DRAW: {Name: "draw path=src/ file=demo.svg 刷新:button=auto 编辑:button 保存:button 项目:button 变参:button", Help: "思维导图", Meta: kit.Dict(
DRAW: {Name: "draw path=src/ file=main.svg 刷新:button=auto 编辑:button 保存:button 项目:button 变参:button", Help: "思维导图", Meta: kit.Dict(
"display", "/plugin/local/wiki/draw.js", "style", "drawer",
), Action: map[string]*ice.Action{
nfs.SAVE: {Name: "save path file text", Help: "保存", Hand: func(m *ice.Message, arg ...string) {

View File

@ -10,24 +10,18 @@ import (
"path"
)
func _feel_show(m *ice.Message, name string, arg ...string) {
m.Echo(path.Join(m.Conf(FEEL, "meta.path"), name))
}
const FEEL = "feel"
const FeelPlugin = "/plugin/local/wiki/feel.js"
func init() {
Index.Merge(&ice.Context{Name: "feel", Help: "影音媒体",
Configs: map[string]*ice.Config{
FEEL: {Name: "feel", Help: "影音媒体", Value: kit.Data(
kit.MDB_SHORT, "name", "path", "", "regs", ".*.(qrc|png|PNG|jpg|jpeg|JPG|MOV|m4v|mp4)",
"height", "200", "page.limit", "3",
"path", "", "regs", ".*.(qrc|png|PNG|jpg|jpeg|JPG|MOV|m4v|mp4)",
)},
},
Commands: map[string]*ice.Command{
FEEL: {Name: "feel path=auto auto", Help: "影音媒体", Meta: kit.Dict(
web.PLUGIN, FeelPlugin, "detail", []string{"标签", "删除"},
FEEL: {Name: "feel path=auto 刷新:button=auto 上传:button 上一页:button 下一页:button 参数:button", Help: "影音媒体", Meta: kit.Dict(
"display", "/plugin/local/wiki/feel.js", "detail", []string{"标签", "删除"},
), Action: map[string]*ice.Action{
mdb.CREATE: {Name: "create", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
m.Conf(FEEL, kit.Keys(path.Base(arg[2]), "-2"), arg[3])
@ -50,11 +44,9 @@ func init() {
}
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Option("prefix", m.Conf(FEEL, "meta.path"))
m.Option("height", m.Conf(FEEL, "meta.height"))
m.Option("limit", m.Conf(FEEL, "meta.page.limit"))
if !_wiki_list(m, FEEL, kit.Select("./", arg, 0)) {
_feel_show(m, arg[0])
m.Echo(path.Join(m.Conf(FEEL, "meta.path"), arg[0]))
return
}
m.Table(func(index int, value map[string]string, head []string) {
m.Push("show", m.Cmdx(mdb.RENDER, web.RENDER.IMG, path.Join("/share/local", value["path"])))

View File

@ -321,7 +321,7 @@ func init() {
VIDEO: {Name: VIDEO, Help: "视频", Value: kit.Data("template", video)},
WORD: {Name: WORD, Help: "语言文字", Value: kit.Data(
"path", "usr", "regs", ".*\\.shy", "alias", map[string]interface{}{
"path", "", "regs", ".*\\.shy", "alias", map[string]interface{}{
PREMENU: []interface{}{TITLE, PREMENU},
CHAPTER: []interface{}{TITLE, CHAPTER},
SECTION: []interface{}{TITLE, SECTION},
@ -447,7 +447,7 @@ func init() {
_other_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
}},
WORD: {Name: "word path=demo/hi.shy auto", Help: "语言文字", Meta: kit.Dict(
WORD: {Name: "word path=src/main.shy auto", Help: "语言文字", Meta: kit.Dict(
"display", "/plugin/local/wiki/word.js",
), Action: map[string]*ice.Action{
web.STORY: {Name: "story", Help: "运行", Hand: func(m *ice.Message, arg ...string) {

View File

@ -8,10 +8,18 @@ refer "" `
image qrcode `https://weixin.qq.com`
chapter "应用"
field "runtime" cli.runtime
field "asset" web.mall.asset args `[ ]`
field "task" web.team.task args `[ ]`
field "miss" web.chat.meet.miss args `[ ]`
field "阅读器" web.code.inner args `[ src/ main.shy ]`
field "编辑器" web.code.vimer args `[ src/ main.go ]`
field "资料库" web.chat.meet.miss args `[ ]`
field "粘贴板" web.chat.paste.paste args `[ ]`
field "相册集" web.wiki.feel args `[ usr/export/web.chat.meet.miss/feel/ ]`
field "思维导图" web.wiki.draw.draw args `[ src/ main.svg ]`
field "任务" web.team.task args `[ ]`
field "任务" web.team.plan args `[ ]`
field "资产" web.mall.asset args `[ ]`
chapter "项目"
section "icebergs"