From 7b20a96f51e17a71217657d8818f666536926988 Mon Sep 17 00:00:00 2001 From: shylinux Date: Fri, 22 Oct 2021 15:52:26 +0800 Subject: [PATCH] opt base --- base/aaa/role.go | 4 ++-- base/gdb/gdb.go | 6 +++--- base/mdb/mdb.go | 4 ++++ base/mdb/render.go | 1 + base/mdb/search.go | 1 + base/ssh/scripts.go | 5 +++++ base/tcp/host.go | 2 ++ base/web/serve.go | 2 ++ core/chat/chat.go | 13 +------------ core/chat/header.go | 3 +++ go.mod | 2 +- go.sum | 4 ---- init.go | 12 +++++------- misc/git/server.go | 4 ++-- misc/lark/app.go | 2 +- misc/lark/lark.go | 11 +---------- 16 files changed, 34 insertions(+), 42 deletions(-) diff --git a/base/aaa/role.go b/base/aaa/role.go index 9d2b41c3..64978f9f 100644 --- a/base/aaa/role.go +++ b/base/aaa/role.go @@ -34,14 +34,14 @@ func _role_chain(arg ...string) string { } func _role_black(m *ice.Message, userrole, chain string, status bool) { m.Richs(ROLE, nil, userrole, func(key string, value map[string]interface{}) { - m.Log_MODIFY(ROLE, userrole, BLACK, chain) + m.Log_CREATE(ROLE, userrole, BLACK, chain) list := value[BLACK].(map[string]interface{}) list[chain] = status }) } func _role_white(m *ice.Message, userrole, chain string, status bool) { m.Richs(ROLE, nil, userrole, func(key string, value map[string]interface{}) { - m.Log_MODIFY(ROLE, userrole, WHITE, chain) + m.Log_CREATE(ROLE, userrole, WHITE, chain) list := value[WHITE].(map[string]interface{}) list[chain] = status }) diff --git a/base/gdb/gdb.go b/base/gdb/gdb.go index 36a9ed08..f288a4c5 100644 --- a/base/gdb/gdb.go +++ b/base/gdb/gdb.go @@ -33,7 +33,7 @@ func (f *Frame) Start(m *ice.Message, arg ...string) bool { // m.Cmd(TIMER, ACTION) case s := <-f.s: - m.Cmd(SIGNAL, ACTION, SIGNAL, s) + m.Cmd(SIGNAL, ACTION, ACTION, SIGNAL, s) } } return true @@ -46,13 +46,13 @@ const GDB = "gdb" var Index = &ice.Context{Name: GDB, Help: "事件模块", Commands: map[string]*ice.Command{ ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { - m.Load() + m.Load(TIMER) }}, ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if f, ok := m.Target().Server().(*Frame); ok { f.e <- true } - m.Save() + m.Save(TIMER) }}, }} diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index 094c30d2..f1eb3edd 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -101,6 +101,10 @@ func SetPage(m *ice.Message, arg ...string) { const MDB = "mdb" var Index = &ice.Context{Name: MDB, Help: "数据模块", Commands: map[string]*ice.Command{ + ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { + }}, + ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { + }}, INSERT: {Name: "insert key sub type arg...", Help: "添加", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { switch arg[2] { case ZONE: diff --git a/base/mdb/render.go b/base/mdb/render.go index cfb3434f..c282fc92 100644 --- a/base/mdb/render.go +++ b/base/mdb/render.go @@ -13,6 +13,7 @@ func init() { }, Commands: map[string]*ice.Command{ RENDER: {Name: "render type name text auto", Help: "渲染", Action: map[string]*ice.Action{ CREATE: {Name: "create type cmd ctx", Help: "创建", Hand: func(m *ice.Message, arg ...string) { + m.Log_CREATE(RENDER, arg[0], kit.MDB_NAME, kit.Select(arg[0], arg, 1)) m.Rich(RENDER, nil, kit.Dict(kit.MDB_TYPE, arg[0], kit.MDB_NAME, kit.Select(arg[0], arg, 1), kit.MDB_TEXT, kit.Select("", arg, 2))) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { diff --git a/base/mdb/search.go b/base/mdb/search.go index 0d57f43c..1dc649ad 100644 --- a/base/mdb/search.go +++ b/base/mdb/search.go @@ -15,6 +15,7 @@ func init() { }, Commands: map[string]*ice.Command{ SEARCH: {Name: "search type word text auto", Help: "搜索", Action: map[string]*ice.Action{ CREATE: {Name: "create type cmd ctx", Help: "创建", Hand: func(m *ice.Message, arg ...string) { + m.Log_CREATE(SEARCH, arg[0], kit.MDB_NAME, kit.Select(arg[0], arg, 1)) m.Rich(SEARCH, nil, kit.Dict(kit.MDB_TYPE, arg[0], kit.MDB_NAME, kit.Select(arg[0], arg, 1), kit.MDB_TEXT, kit.Select("", arg, 2))) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { diff --git a/base/ssh/scripts.go b/base/ssh/scripts.go index 33662134..7e56e5f9 100644 --- a/base/ssh/scripts.go +++ b/base/ssh/scripts.go @@ -259,6 +259,11 @@ func init() { PS2, []interface{}{kit.MDB_COUNT, " ", TARGET, "> "}, )}, }, Commands: map[string]*ice.Command{ + ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { + if f, ok := m.Target().Server().(*Frame); ok { + f.close() + } + }}, SOURCE: {Name: "source file", Help: "脚本解析", Action: ice.MergeAction(map[string]*ice.Action{ mdb.REPEAT: {Name: "repeat", Help: "执行", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(SCREEN, m.Option(kit.MDB_TEXT)) diff --git a/base/tcp/host.go b/base/tcp/host.go index e8a4038f..5d562c04 100644 --- a/base/tcp/host.go +++ b/base/tcp/host.go @@ -85,9 +85,11 @@ func init() { }}, HOST: {Name: "host name auto", Help: "主机", Action: map[string]*ice.Action{ aaa.BLACK: {Name: "black", Help: "黑名单", Hand: func(m *ice.Message, arg ...string) { + m.Log_CREATE(aaa.BLACK, arg[0]) m.Rich(HOST, kit.Keym(aaa.BLACK), kit.Dict(kit.MDB_TEXT, arg[0])) }}, aaa.WHITE: {Name: "white", Help: "白名单", Hand: func(m *ice.Message, arg ...string) { + m.Log_CREATE(aaa.WHITE, arg[0]) m.Rich(HOST, kit.Keym(aaa.WHITE), kit.Dict(kit.MDB_TEXT, arg[0])) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { diff --git a/base/web/serve.go b/base/web/serve.go index 6e7170de..5234d145 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -263,11 +263,13 @@ func init() { SERVE: {Name: "serve name auto start", Help: "服务器", Action: ice.MergeAction(map[string]*ice.Action{ aaa.BLACK: {Name: "black", Help: "黑名单", Hand: func(m *ice.Message, arg ...string) { for _, k := range arg { + m.Log_CREATE(aaa.BLACK, k) m.Config(kit.Keys(aaa.BLACK, k), ice.TRUE) } }}, aaa.WHITE: {Name: "white", Help: "白名单", Hand: func(m *ice.Message, arg ...string) { for _, k := range arg { + m.Log_CREATE(aaa.WHITE, k) m.Config(kit.Keys(aaa.WHITE, k), ice.TRUE) } }}, diff --git a/core/chat/chat.go b/core/chat/chat.go index ed07a123..ca276879 100644 --- a/core/chat/chat.go +++ b/core/chat/chat.go @@ -2,23 +2,12 @@ package chat import ( ice "shylinux.com/x/icebergs" - "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/web" ) const CHAT = "chat" -var Index = &ice.Context{Name: CHAT, Help: "聊天中心", - Commands: map[string]*ice.Command{ - ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { - m.Cmd(web.SERVE, aaa.WHITE, HEADER, RIVER, ACTION, FOOTER) - m.Load() - }}, - ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { - m.Save() - }}, - }, -} +var Index = &ice.Context{Name: CHAT, Help: "聊天中心"} func init() { web.Index.Register(Index, &web.Frame{}, diff --git a/core/chat/header.go b/core/chat/header.go index 98be60b5..b4920218 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -81,6 +81,9 @@ func init() { LOGIN, kit.List("登录", "扫码"), )}, }, Commands: map[string]*ice.Command{ + ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { + m.Cmd(web.SERVE, aaa.WHITE, HEADER, RIVER, ACTION, FOOTER) + }}, "/header": {Name: "/header", Help: "标题栏", Action: map[string]*ice.Action{ AGENT: {Name: "agent", Help: "应用宿主", Hand: func(m *ice.Message, arg ...string) { m.Cmdy("web.chat.wx.access", "config") diff --git a/go.mod b/go.mod index 0d078516..115081c5 100644 --- a/go.mod +++ b/go.mod @@ -5,5 +5,5 @@ go 1.11 require ( github.com/gorilla/websocket v1.4.2 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e - shylinux.com/x/toolkits v0.3.6 + shylinux.com/x/toolkits v0.3.7 ) diff --git a/go.sum b/go.sum index 955a5ddd..e69de29b 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +0,0 @@ -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= -shylinux.com/x/toolkits v0.3.6 h1:vScxphySLIULkRps0i22yMW7b+sd5MbCBaZRfUmzTu0= -shylinux.com/x/toolkits v0.3.6/go.mod h1:8LbYHe7oxBIqb6s4MSOD+4d28QvPdvkyCVtwB/JW7AA= diff --git a/init.go b/init.go index 0823a2bd..02e7e832 100644 --- a/init.go +++ b/init.go @@ -39,6 +39,11 @@ func (f *Frame) Start(m *Message, arg ...string) bool { m.Cap(CTX_STREAM, strings.Split(m.Time(), " ")[1]) m.Cmdy(INIT, arg) + m.target.root.wg = &sync.WaitGroup{} + for _, k := range kit.Split(kit.Select("ssh,gdb,log")) { + m.Start(k) + } + m.Cmdy(arg) return true } func (f *Frame) Close(m *Message, arg ...string) bool { @@ -69,16 +74,10 @@ var Index = &Context{Name: "ice", Help: "冰山模块", Caches: map[string]*Cach c.cmd(m.Spawn(c), cmd, CTX_INIT, arg...) } }) - - m.target.root.wg = &sync.WaitGroup{} - for _, k := range kit.Split(kit.Select("gdb,log,ssh,mdb")) { - m.Start(k) - } }}, INIT: {Name: "init", Help: "启动", Hand: func(m *Message, c *Context, cmd string, arg ...string) { m.root.Cmd(CTX_INIT) m.Cmd("ssh.source", ETC_INIT_SHY) - m.Cmdy(arg) }}, HELP: {Name: "help", Help: "帮助", Hand: func(m *Message, c *Context, cmd string, arg ...string) { m.Echo(m.Config("index")) @@ -97,7 +96,6 @@ var Index = &Context{Name: "ice", Help: "冰山模块", Caches: map[string]*Cach }) } }) - c.server.(*Frame).wait <- kit.Int(m.root.Option(EXIT)) }}, }} diff --git a/misc/git/server.go b/misc/git/server.go index e7956dbb..bf579ed9 100644 --- a/misc/git/server.go +++ b/misc/git/server.go @@ -114,8 +114,8 @@ func init() { }}, "/repos/": {Name: "/repos/", Help: "代码库", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if m.Option("go-get") == "1" { // 下载地址 - p := m.Conf(web.SHARE, kit.Keym(kit.MDB_DOMAIN)) + "/x/" + path.Join(arg...) - web.RenderMeta(m, "go-import", kit.Format(`%s git %s`, strings.TrimPrefix(p, "https://"), p)) + p := kit.Split(kit.MergeURL2(m.Option(ice.MSG_USERWEB), "/x/"+path.Join(arg...)), "?")[0] + m.RenderResult(kit.Format(``, "go-import", kit.Format(`%s git %s`, strings.TrimPrefix(p, "https://"), p))) return } diff --git a/misc/lark/app.go b/misc/lark/app.go index 0157694b..fc8fe481 100644 --- a/misc/lark/app.go +++ b/misc/lark/app.go @@ -26,7 +26,7 @@ func init() { )}, }, Commands: map[string]*ice.Command{ ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { - m.Cmd(web.SPIDE, mdb.CREATE, LARK, m.Config(LARK)) + m.Cmd(web.SPIDE, mdb.CREATE, LARK, m.Conf(APP, kit.Keym(LARK))) }}, APP: {Name: "app appid auto token login", Help: "应用", Action: ice.MergeAction(map[string]*ice.Action{ LOGIN: {Name: "login appid appmm duty", Help: "登录", Hand: func(m *ice.Message, arg ...string) { diff --git a/misc/lark/lark.go b/misc/lark/lark.go index 41f3f4cb..5b08bd7c 100644 --- a/misc/lark/lark.go +++ b/misc/lark/lark.go @@ -8,15 +8,6 @@ import ( const LARK = "lark" -var Index = &ice.Context{Name: LARK, Help: "机器人", - 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() - }}, - }, -} +var Index = &ice.Context{Name: LARK, Help: "机器人"} func init() { chat.Index.Register(Index, &web.Frame{}) }