From ed5904fe682cb7891f25ab01ca429a549e8f1b66 Mon Sep 17 00:00:00 2001 From: shaoying Date: Fri, 7 Aug 2020 16:48:33 +0800 Subject: [PATCH] opt feel --- base/mdb/mdb.go | 6 ++-- core/chat/paste.go | 85 +++++++++++----------------------------------- core/code/inner.go | 12 ------- core/code/shy.go | 61 +++++++++++++++++++++++++++++++++ core/team/team.go | 5 ++- core/team/work.go | 33 ------------------ core/wiki/draw.go | 2 +- core/wiki/feel.go | 18 +++------- core/wiki/word.go | 4 +-- misc/wx/wx.shy | 16 ++++++--- 10 files changed, 106 insertions(+), 136 deletions(-) create mode 100644 core/code/shy.go delete mode 100644 core/team/work.go diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index 87539dc0..f0c7395c 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -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)) } diff --git a/core/chat/paste.go b/core/chat/paste.go index 6cb872b5..234e9a17 100644 --- a/core/chat/paste.go +++ b/core/chat/paste.go @@ -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 - } - return - } - m.Push("detail", value) - }) - if len(arg) == 0 { - m.PushAction("复制", "删除") - m.Sort("time", "time_r") + if len(arg) > 0 { + m.Cmdy(mdb.INSERT, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH, kit.MDB_TEXT, arg[0]) } + + m.Cmdy(mdb.SELECT, m.Prefix(PASTE), m.Option(ice.MSG_DOMAIN), mdb.HASH) + m.PushAction("复制", "删除") + m.Sort("time", "time_r") }}, }, }, nil) diff --git a/core/code/inner.go b/core/code/inner.go index 23763379..957df572 100644 --- a/core/code/inner.go +++ b/core/code/inner.go @@ -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"), diff --git a/core/code/shy.go b/core/code/shy.go new file mode 100644 index 00000000..0cb4801a --- /dev/null +++ b/core/code/shy.go @@ -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) +} diff --git a/core/team/team.go b/core/team/team.go index 9e1cc14c..43c33f6c 100644 --- a/core/team/team.go +++ b/core/team/team.go @@ -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]) diff --git a/core/team/work.go b/core/team/work.go deleted file mode 100644 index 5fdad3d0..00000000 --- a/core/team/work.go +++ /dev/null @@ -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{}) -} diff --git a/core/wiki/draw.go b/core/wiki/draw.go index 8f4afc16..2801c90f 100644 --- a/core/wiki/draw.go +++ b/core/wiki/draw.go @@ -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) { diff --git a/core/wiki/feel.go b/core/wiki/feel.go index 0f54da59..e2c881f5 100644 --- a/core/wiki/feel.go +++ b/core/wiki/feel.go @@ -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"]))) diff --git a/core/wiki/word.go b/core/wiki/word.go index e978ae38..dc4211b7 100644 --- a/core/wiki/word.go +++ b/core/wiki/word.go @@ -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) { diff --git a/misc/wx/wx.shy b/misc/wx/wx.shy index b476ae78..47ee1547 100644 --- a/misc/wx/wx.shy +++ b/misc/wx/wx.shy @@ -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"