mirror of
https://shylinux.com/x/icebergs
synced 2025-06-26 10:27:31 +08:00
opt base
This commit is contained in:
parent
a243dea1e5
commit
7b20a96f51
@ -34,14 +34,14 @@ func _role_chain(arg ...string) string {
|
|||||||
}
|
}
|
||||||
func _role_black(m *ice.Message, userrole, chain string, status bool) {
|
func _role_black(m *ice.Message, userrole, chain string, status bool) {
|
||||||
m.Richs(ROLE, nil, userrole, func(key string, value map[string]interface{}) {
|
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 := value[BLACK].(map[string]interface{})
|
||||||
list[chain] = status
|
list[chain] = status
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
func _role_white(m *ice.Message, userrole, chain string, status bool) {
|
func _role_white(m *ice.Message, userrole, chain string, status bool) {
|
||||||
m.Richs(ROLE, nil, userrole, func(key string, value map[string]interface{}) {
|
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 := value[WHITE].(map[string]interface{})
|
||||||
list[chain] = status
|
list[chain] = status
|
||||||
})
|
})
|
||||||
|
@ -33,7 +33,7 @@ func (f *Frame) Start(m *ice.Message, arg ...string) bool {
|
|||||||
// m.Cmd(TIMER, ACTION)
|
// m.Cmd(TIMER, ACTION)
|
||||||
|
|
||||||
case s := <-f.s:
|
case s := <-f.s:
|
||||||
m.Cmd(SIGNAL, ACTION, SIGNAL, s)
|
m.Cmd(SIGNAL, ACTION, ACTION, SIGNAL, s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@ -46,13 +46,13 @@ const GDB = "gdb"
|
|||||||
|
|
||||||
var Index = &ice.Context{Name: GDB, Help: "事件模块", Commands: map[string]*ice.Command{
|
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) {
|
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) {
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
if f, ok := m.Target().Server().(*Frame); ok {
|
if f, ok := m.Target().Server().(*Frame); ok {
|
||||||
f.e <- true
|
f.e <- true
|
||||||
}
|
}
|
||||||
m.Save()
|
m.Save(TIMER)
|
||||||
}},
|
}},
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
@ -101,6 +101,10 @@ func SetPage(m *ice.Message, arg ...string) {
|
|||||||
const MDB = "mdb"
|
const MDB = "mdb"
|
||||||
|
|
||||||
var Index = &ice.Context{Name: MDB, Help: "数据模块", Commands: map[string]*ice.Command{
|
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) {
|
INSERT: {Name: "insert key sub type arg...", Help: "添加", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
switch arg[2] {
|
switch arg[2] {
|
||||||
case ZONE:
|
case ZONE:
|
||||||
|
@ -13,6 +13,7 @@ func init() {
|
|||||||
}, Commands: map[string]*ice.Command{
|
}, Commands: map[string]*ice.Command{
|
||||||
RENDER: {Name: "render type name text auto", Help: "渲染", Action: map[string]*ice.Action{
|
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) {
|
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)))
|
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) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
@ -15,6 +15,7 @@ func init() {
|
|||||||
}, Commands: map[string]*ice.Command{
|
}, Commands: map[string]*ice.Command{
|
||||||
SEARCH: {Name: "search type word text auto", Help: "搜索", Action: map[string]*ice.Action{
|
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) {
|
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)))
|
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) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
@ -259,6 +259,11 @@ func init() {
|
|||||||
PS2, []interface{}{kit.MDB_COUNT, " ", TARGET, "> "},
|
PS2, []interface{}{kit.MDB_COUNT, " ", TARGET, "> "},
|
||||||
)},
|
)},
|
||||||
}, Commands: map[string]*ice.Command{
|
}, 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{
|
SOURCE: {Name: "source file", Help: "脚本解析", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
mdb.REPEAT: {Name: "repeat", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
|
mdb.REPEAT: {Name: "repeat", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(SCREEN, m.Option(kit.MDB_TEXT))
|
m.Cmdy(SCREEN, m.Option(kit.MDB_TEXT))
|
||||||
|
@ -85,9 +85,11 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
HOST: {Name: "host name auto", Help: "主机", Action: map[string]*ice.Action{
|
HOST: {Name: "host name auto", Help: "主机", Action: map[string]*ice.Action{
|
||||||
aaa.BLACK: {Name: "black", Help: "黑名单", Hand: func(m *ice.Message, arg ...string) {
|
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]))
|
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) {
|
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]))
|
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) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
@ -263,11 +263,13 @@ func init() {
|
|||||||
SERVE: {Name: "serve name auto start", Help: "服务器", Action: ice.MergeAction(map[string]*ice.Action{
|
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) {
|
aaa.BLACK: {Name: "black", Help: "黑名单", Hand: func(m *ice.Message, arg ...string) {
|
||||||
for _, k := range arg {
|
for _, k := range arg {
|
||||||
|
m.Log_CREATE(aaa.BLACK, k)
|
||||||
m.Config(kit.Keys(aaa.BLACK, k), ice.TRUE)
|
m.Config(kit.Keys(aaa.BLACK, k), ice.TRUE)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
aaa.WHITE: {Name: "white", Help: "白名单", Hand: func(m *ice.Message, arg ...string) {
|
aaa.WHITE: {Name: "white", Help: "白名单", Hand: func(m *ice.Message, arg ...string) {
|
||||||
for _, k := range arg {
|
for _, k := range arg {
|
||||||
|
m.Log_CREATE(aaa.WHITE, k)
|
||||||
m.Config(kit.Keys(aaa.WHITE, k), ice.TRUE)
|
m.Config(kit.Keys(aaa.WHITE, k), ice.TRUE)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
@ -2,23 +2,12 @@ package chat
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/aaa"
|
|
||||||
"shylinux.com/x/icebergs/base/web"
|
"shylinux.com/x/icebergs/base/web"
|
||||||
)
|
)
|
||||||
|
|
||||||
const CHAT = "chat"
|
const CHAT = "chat"
|
||||||
|
|
||||||
var Index = &ice.Context{Name: CHAT, Help: "聊天中心",
|
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()
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
web.Index.Register(Index, &web.Frame{},
|
web.Index.Register(Index, &web.Frame{},
|
||||||
|
@ -81,6 +81,9 @@ func init() {
|
|||||||
LOGIN, kit.List("登录", "扫码"),
|
LOGIN, kit.List("登录", "扫码"),
|
||||||
)},
|
)},
|
||||||
}, Commands: map[string]*ice.Command{
|
}, 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{
|
"/header": {Name: "/header", Help: "标题栏", Action: map[string]*ice.Action{
|
||||||
AGENT: {Name: "agent", Help: "应用宿主", Hand: func(m *ice.Message, arg ...string) {
|
AGENT: {Name: "agent", Help: "应用宿主", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy("web.chat.wx.access", "config")
|
m.Cmdy("web.chat.wx.access", "config")
|
||||||
|
2
go.mod
2
go.mod
@ -5,5 +5,5 @@ go 1.11
|
|||||||
require (
|
require (
|
||||||
github.com/gorilla/websocket v1.4.2
|
github.com/gorilla/websocket v1.4.2
|
||||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
||||||
shylinux.com/x/toolkits v0.3.6
|
shylinux.com/x/toolkits v0.3.7
|
||||||
)
|
)
|
||||||
|
4
go.sum
4
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=
|
|
12
init.go
12
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.Cap(CTX_STREAM, strings.Split(m.Time(), " ")[1])
|
||||||
|
|
||||||
m.Cmdy(INIT, arg)
|
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
|
return true
|
||||||
}
|
}
|
||||||
func (f *Frame) Close(m *Message, arg ...string) bool {
|
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...)
|
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) {
|
INIT: {Name: "init", Help: "启动", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||||
m.root.Cmd(CTX_INIT)
|
m.root.Cmd(CTX_INIT)
|
||||||
m.Cmd("ssh.source", ETC_INIT_SHY)
|
m.Cmd("ssh.source", ETC_INIT_SHY)
|
||||||
m.Cmdy(arg)
|
|
||||||
}},
|
}},
|
||||||
HELP: {Name: "help", Help: "帮助", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
HELP: {Name: "help", Help: "帮助", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||||
m.Echo(m.Config("index"))
|
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))
|
c.server.(*Frame).wait <- kit.Int(m.root.Option(EXIT))
|
||||||
}},
|
}},
|
||||||
}}
|
}}
|
||||||
|
@ -114,8 +114,8 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
"/repos/": {Name: "/repos/", Help: "代码库", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
"/repos/": {Name: "/repos/", Help: "代码库", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
if m.Option("go-get") == "1" { // 下载地址
|
if m.Option("go-get") == "1" { // 下载地址
|
||||||
p := m.Conf(web.SHARE, kit.Keym(kit.MDB_DOMAIN)) + "/x/" + path.Join(arg...)
|
p := kit.Split(kit.MergeURL2(m.Option(ice.MSG_USERWEB), "/x/"+path.Join(arg...)), "?")[0]
|
||||||
web.RenderMeta(m, "go-import", kit.Format(`%s git %s`, strings.TrimPrefix(p, "https://"), p))
|
m.RenderResult(kit.Format(`<meta name="%s" content="%s">`, "go-import", kit.Format(`%s git %s`, strings.TrimPrefix(p, "https://"), p)))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ func init() {
|
|||||||
)},
|
)},
|
||||||
}, Commands: map[string]*ice.Command{
|
}, Commands: map[string]*ice.Command{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
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{
|
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) {
|
LOGIN: {Name: "login appid appmm duty", Help: "登录", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -8,15 +8,6 @@ import (
|
|||||||
|
|
||||||
const LARK = "lark"
|
const LARK = "lark"
|
||||||
|
|
||||||
var Index = &ice.Context{Name: LARK, Help: "机器人",
|
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()
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() { chat.Index.Register(Index, &web.Frame{}) }
|
func init() { chat.Index.Register(Index, &web.Frame{}) }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user