mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 09:34:05 +08:00
opt river.type
This commit is contained in:
parent
dded350e0d
commit
f40802f5c3
@ -10,6 +10,7 @@ const (
|
|||||||
)
|
)
|
||||||
const (
|
const (
|
||||||
USERNICK = "usernick"
|
USERNICK = "usernick"
|
||||||
|
USERZONE = "userzone"
|
||||||
USERNAME = "username"
|
USERNAME = "username"
|
||||||
PASSWORD = "password"
|
PASSWORD = "password"
|
||||||
USERROLE = "userrole"
|
USERROLE = "userrole"
|
||||||
|
@ -12,7 +12,7 @@ import (
|
|||||||
|
|
||||||
func _user_list(m *ice.Message) {
|
func _user_list(m *ice.Message) {
|
||||||
m.Richs(USER, nil, kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
|
m.Richs(USER, nil, kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
|
||||||
m.Push(key, value, []string{kit.MDB_TIME, USERNICK, USERNAME})
|
m.Push(key, value, []string{kit.MDB_TIME, USERZONE, USERNICK, USERNAME})
|
||||||
})
|
})
|
||||||
m.Sort(USERNAME)
|
m.Sort(USERNAME)
|
||||||
}
|
}
|
||||||
@ -47,6 +47,8 @@ func _user_create(m *ice.Message, name, word string) {
|
|||||||
m.Rich(USER, nil, kit.Dict(
|
m.Rich(USER, nil, kit.Dict(
|
||||||
USERNAME, name, PASSWORD, word,
|
USERNAME, name, PASSWORD, word,
|
||||||
USERNICK, name, USERNODE, cli.NodeName,
|
USERNICK, name, USERNODE, cli.NodeName,
|
||||||
|
USERZONE, m.Option(ice.MSG_USERZONE),
|
||||||
|
USERNODE, cli.NodeName,
|
||||||
))
|
))
|
||||||
m.Log_CREATE(USERNAME, name)
|
m.Log_CREATE(USERNAME, name)
|
||||||
m.Event(gdb.USER_CREATE, name)
|
m.Event(gdb.USER_CREATE, name)
|
||||||
@ -78,6 +80,12 @@ func UserNick(m *ice.Message, username interface{}) (nick string) {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
func UserZone(m *ice.Message, username interface{}) (zone string) {
|
||||||
|
m.Richs(USER, nil, kit.Format(username), func(key string, value map[string]interface{}) {
|
||||||
|
zone = kit.Format(value[USERZONE])
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
func UserRole(m *ice.Message, username interface{}) (role string) {
|
func UserRole(m *ice.Message, username interface{}) (role string) {
|
||||||
if role = VOID; username == cli.UserName {
|
if role = VOID; username == cli.UserName {
|
||||||
return ROOT
|
return ROOT
|
||||||
|
@ -15,7 +15,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func _file_name(m *ice.Message, arg ...string) string {
|
func _file_name(m *ice.Message, arg ...string) string {
|
||||||
return kit.Select(path.Join("usr/export", kit.Select(arg[0], arg[0]+":"+arg[1], arg[1] != ""), arg[2]), arg, 3)
|
return kit.Select(path.Join("usr/export", kit.Select(arg[0], arg[0]+"/"+arg[1], arg[1] != ""), arg[2]), arg, 3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _hash_insert(m *ice.Message, prefix, key string, arg ...string) string {
|
func _hash_insert(m *ice.Message, prefix, key string, arg ...string) string {
|
||||||
@ -60,6 +60,10 @@ func _hash_import(m *ice.Message, prefix, key, file string) {
|
|||||||
de := json.NewDecoder(f)
|
de := json.NewDecoder(f)
|
||||||
de.Decode(&list)
|
de.Decode(&list)
|
||||||
|
|
||||||
|
if m.Conf(prefix, kit.Keys(key, kit.MDB_META, kit.MDB_SHORT)) == "" {
|
||||||
|
m.Conf(prefix, kit.Keys(key, kit.MDB_META, kit.MDB_SHORT), m.Conf(prefix, kit.Keys(kit.MDB_META, kit.MDB_SHORT)))
|
||||||
|
}
|
||||||
|
|
||||||
count := 0
|
count := 0
|
||||||
for _, data := range list {
|
for _, data := range list {
|
||||||
// 导入数据
|
// 导入数据
|
||||||
@ -71,7 +75,9 @@ func _hash_import(m *ice.Message, prefix, key, file string) {
|
|||||||
}
|
}
|
||||||
func _hash_select(m *ice.Message, prefix, key, field, value string) {
|
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,name", m.Option("fields")), ",")
|
||||||
|
m.Debug("what %v %v", prefix, key, value)
|
||||||
m.Richs(prefix, key, value, func(key string, val map[string]interface{}) {
|
m.Richs(prefix, key, value, func(key string, val map[string]interface{}) {
|
||||||
|
m.Debug("what %v %v", prefix, key)
|
||||||
if value == kit.MDB_FOREACH {
|
if value == kit.MDB_FOREACH {
|
||||||
m.Push(key, val, fields)
|
m.Push(key, val, fields)
|
||||||
return
|
return
|
||||||
@ -299,14 +305,20 @@ var Index = &ice.Context{Name: "mdb", Help: "数据模块",
|
|||||||
_list_delete(m, arg[0], arg[1], arg[3], arg[4])
|
_list_delete(m, arg[0], arg[1], arg[3], arg[4])
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
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])
|
||||||
|
case LIST:
|
||||||
|
_list_select(m, arg[0], arg[1], kit.Select("", arg, 3), kit.Select("", arg, 4))
|
||||||
|
}
|
||||||
|
}},
|
||||||
EXPORT: {Name: "export conf key type [name]", Help: "导出数据", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
EXPORT: {Name: "export conf key type [name]", Help: "导出数据", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
switch file := _file_name(m, arg...); arg[2] {
|
switch file := _file_name(m, arg...); arg[2] {
|
||||||
case HASH:
|
case HASH:
|
||||||
_hash_export(m, arg[0], arg[1], file)
|
_hash_export(m, arg[0], arg[1], file)
|
||||||
case LIST:
|
case LIST:
|
||||||
_list_export(m, arg[0], arg[1], file)
|
_list_export(m, arg[0], arg[1], file)
|
||||||
case DICT:
|
|
||||||
_dict_export(m, arg[0], arg[1], file)
|
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
IMPORT: {Name: "import conf key type file", Help: "导入数据", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
IMPORT: {Name: "import conf key type file", Help: "导入数据", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
@ -315,17 +327,6 @@ var Index = &ice.Context{Name: "mdb", Help: "数据模块",
|
|||||||
_hash_import(m, arg[0], arg[1], file)
|
_hash_import(m, arg[0], arg[1], file)
|
||||||
case LIST:
|
case LIST:
|
||||||
_list_import(m, arg[0], arg[1], file)
|
_list_import(m, arg[0], arg[1], file)
|
||||||
case DICT:
|
|
||||||
_dict_import(m, arg[0], arg[1], file)
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
|
|
||||||
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 LIST:
|
|
||||||
_list_select(m, arg[0], arg[1], kit.Select("", arg, 3), kit.Select("", arg, 4))
|
|
||||||
case HASH:
|
|
||||||
_hash_select(m, arg[0], arg[1], arg[3], arg[4])
|
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
|
@ -277,6 +277,7 @@ func (f *Frame) Start(m *ice.Message, arg ...string) bool {
|
|||||||
m.Option("_option", ice.MSG_USERNAME)
|
m.Option("_option", ice.MSG_USERNAME)
|
||||||
m.Option(ice.MSG_USERNAME, cli.UserName)
|
m.Option(ice.MSG_USERNAME, cli.UserName)
|
||||||
m.Option(ice.MSG_USERROLE, aaa.ROOT)
|
m.Option(ice.MSG_USERROLE, aaa.ROOT)
|
||||||
|
m.Option(ice.MSG_USERZONE, "boot")
|
||||||
aaa.UserRoot(m)
|
aaa.UserRoot(m)
|
||||||
default:
|
default:
|
||||||
if s, e := os.Open(arg[0]); !m.Warn(e != nil, "%s", e) {
|
if s, e := os.Open(arg[0]); !m.Warn(e != nil, "%s", e) {
|
||||||
|
1
conf.go
1
conf.go
@ -34,6 +34,7 @@ const ( // MSG
|
|||||||
MSG_USERPOD = "user.pod"
|
MSG_USERPOD = "user.pod"
|
||||||
MSG_USERNICK = "user.nick"
|
MSG_USERNICK = "user.nick"
|
||||||
MSG_USERNAME = "user.name"
|
MSG_USERNAME = "user.name"
|
||||||
|
MSG_USERZONE = "user.zone"
|
||||||
MSG_USERROLE = "user.role"
|
MSG_USERROLE = "user.role"
|
||||||
MSG_USERDATA = "user.data"
|
MSG_USERDATA = "user.data"
|
||||||
MSG_USERADDR = "user.addr"
|
MSG_USERADDR = "user.addr"
|
||||||
|
@ -98,35 +98,13 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
|
|||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// 群组检查
|
|
||||||
m.Richs(RIVER, nil, arg[0], func(key string, value map[string]interface{}) {
|
|
||||||
m.Debug("%v", kit.Value(value, "meta.type"))
|
|
||||||
if kit.Value(value, "meta.type") != "public" {
|
|
||||||
m.Option(ice.MSG_DOMAIN, "R"+arg[0])
|
|
||||||
}
|
|
||||||
|
|
||||||
m.Richs(RIVER, kit.Keys(kit.MDB_HASH, arg[0], USER), m.Option(ice.MSG_USERNAME), func(key string, value map[string]interface{}) {
|
|
||||||
if m.Option(ice.MSG_RIVER, arg[0]); len(arg) > 1 {
|
|
||||||
// 应用检查
|
|
||||||
m.Richs(RIVER, kit.Keys(kit.MDB_HASH, arg[0], TOOL), arg[1], func(key string, value map[string]interface{}) {
|
|
||||||
m.Debug("%v", kit.Value(value, "meta.type"))
|
|
||||||
if kit.Value(value, "meta.type") != "public" {
|
|
||||||
m.Option(ice.MSG_DOMAIN, kit.Keys(m.Option(ice.MSG_DOMAIN), "S"+arg[1]))
|
|
||||||
}
|
|
||||||
|
|
||||||
m.Option(ice.MSG_STORM, arg[1])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
m.Log_AUTH(RIVER, m.Option(ice.MSG_RIVER), STORM, m.Option(ice.MSG_STORM), "domain", m.Option(ice.MSG_DOMAIN))
|
|
||||||
})
|
|
||||||
})
|
|
||||||
switch m.Option(ice.MSG_USERURL) {
|
switch m.Option(ice.MSG_USERURL) {
|
||||||
case "/action":
|
case "/river":
|
||||||
if len(arg) > 0 {
|
if len(arg) > 0 {
|
||||||
m.Option(ice.MSG_RIVER, arg[0])
|
m.Option(ice.MSG_RIVER, arg[0])
|
||||||
arg = arg[1:]
|
arg = arg[1:]
|
||||||
}
|
}
|
||||||
if len(arg) > 0 {
|
if len(arg) > 1 && arg[1] == "storm" {
|
||||||
m.Option(ice.MSG_STORM, arg[0])
|
m.Option(ice.MSG_STORM, arg[0])
|
||||||
arg = arg[1:]
|
arg = arg[1:]
|
||||||
}
|
}
|
||||||
@ -139,15 +117,37 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
|
|||||||
m.Option(ice.MSG_STORM, arg[0])
|
m.Option(ice.MSG_STORM, arg[0])
|
||||||
arg = arg[1:]
|
arg = arg[1:]
|
||||||
}
|
}
|
||||||
case "/river":
|
case "/action":
|
||||||
if len(arg) > 0 {
|
if len(arg) > 0 {
|
||||||
m.Option(ice.MSG_RIVER, arg[0])
|
m.Option(ice.MSG_RIVER, arg[0])
|
||||||
arg = arg[1:]
|
arg = arg[1:]
|
||||||
}
|
}
|
||||||
if len(arg) > 1 && arg[1] == "storm" {
|
if len(arg) > 0 {
|
||||||
|
m.Option(ice.MSG_STORM, arg[0])
|
||||||
arg = arg[1:]
|
arg = arg[1:]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 群组检查
|
||||||
|
m.Richs(RIVER, nil, m.Option(ice.MSG_RIVER), func(key string, value map[string]interface{}) {
|
||||||
|
if kit.Value(value, "meta.type") == "private" {
|
||||||
|
m.Option(ice.MSG_DOMAIN, "U"+m.Option(ice.MSG_USERNAME))
|
||||||
|
} else if kit.Value(value, "meta.type") != "public" {
|
||||||
|
m.Option(ice.MSG_DOMAIN, "R"+m.Option(ice.MSG_RIVER))
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Richs(RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), USER), m.Option(ice.MSG_USERNAME), func(key string, value map[string]interface{}) {
|
||||||
|
// 应用检查
|
||||||
|
m.Richs(RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL), m.Option(ice.MSG_STORM), func(key string, value map[string]interface{}) {
|
||||||
|
|
||||||
|
})
|
||||||
|
}) == nil {
|
||||||
|
m.Render(web.STATUS, 403, "not join")
|
||||||
|
m.Option(ice.MSG_USERURL, "")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
m.Log_AUTH(RIVER, m.Option(ice.MSG_RIVER), STORM, m.Option(ice.MSG_STORM), "domain", m.Option(ice.MSG_DOMAIN))
|
||||||
m.Optionv(ice.MSG_CMDS, arg)
|
m.Optionv(ice.MSG_CMDS, arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,6 +178,15 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
|
|||||||
"node": {Name: "node", Help: "设备", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
"node": {Name: "node", Help: "设备", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
}},
|
}},
|
||||||
"user": {Name: "user", Help: "用户", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
"user": {Name: "user", Help: "用户", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Richs(RIVER, nil, m.Option(ice.MSG_RIVER), func(key string, value map[string]interface{}) {
|
||||||
|
m.Richs(RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), USER), kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
|
||||||
|
value = value[kit.MDB_META].(map[string]interface{})
|
||||||
|
m.Push(key, value, []string{kit.MDB_TIME})
|
||||||
|
m.Push(aaa.USERZONE, aaa.UserZone(m, value[aaa.USERNAME]))
|
||||||
|
m.Push(aaa.USERNICK, aaa.UserNick(m, value[aaa.USERNAME]))
|
||||||
|
m.Push(key, value, []string{aaa.USERNAME})
|
||||||
|
})
|
||||||
|
})
|
||||||
}},
|
}},
|
||||||
|
|
||||||
"/ocean": {Name: "/ocean", Help: "大海洋", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
"/ocean": {Name: "/ocean", Help: "大海洋", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
@ -63,26 +63,26 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
MISS: {Name: "miss name=auto auto 添加:button 导出:button 导入:button", Help: "信息", Meta: kit.Dict(
|
MISS: {Name: "miss name=auto auto 添加:button 导出:button 导入:button", Help: "信息", Meta: kit.Dict(
|
||||||
"display", "", "insert", _miss_insert,
|
"display", "", "添加", _miss_insert,
|
||||||
), Action: map[string]*ice.Action{
|
), Action: map[string]*ice.Action{
|
||||||
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(MISS), "", mdb.HASH, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(MISS), m.Option(ice.MSG_DOMAIN), mdb.HASH, arg)
|
||||||
}},
|
}},
|
||||||
mdb.MODIFY: {Name: "modify key value", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
mdb.MODIFY: {Name: "modify key value", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(MISS), "", mdb.HASH, kit.MDB_NAME, m.Option("name"), arg[0], arg[1])
|
m.Cmdy(mdb.MODIFY, m.Prefix(MISS), m.Option(ice.MSG_DOMAIN), mdb.HASH, kit.MDB_NAME, m.Option("name"), arg[0], arg[1])
|
||||||
}},
|
}},
|
||||||
mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(MISS), "", mdb.HASH, kit.MDB_NAME, m.Option("name"))
|
m.Cmdy(mdb.DELETE, m.Prefix(MISS), m.Option(ice.MSG_DOMAIN), mdb.HASH, kit.MDB_NAME, m.Option("name"))
|
||||||
}},
|
}},
|
||||||
mdb.EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
mdb.EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(MISS), "", mdb.HASH)
|
m.Cmdy(mdb.EXPORT, m.Prefix(MISS), m.Option(ice.MSG_DOMAIN), mdb.HASH)
|
||||||
}},
|
}},
|
||||||
mdb.IMPORT: {Name: "import file", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
mdb.IMPORT: {Name: "import file", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(MISS), "", mdb.HASH)
|
m.Cmdy(mdb.IMPORT, m.Prefix(MISS), m.Option(ice.MSG_DOMAIN), mdb.HASH)
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Option("fields", _miss_select)
|
m.Option("fields", _miss_select)
|
||||||
if msg := m.Cmd(mdb.SELECT, m.Prefix(MISS), "", mdb.HASH, kit.MDB_NAME, kit.Select(kit.MDB_FOREACH, arg, 0)); len(arg) == 0 {
|
if msg := m.Cmd(mdb.SELECT, m.Prefix(MISS), m.Option(ice.MSG_DOMAIN), mdb.HASH, kit.MDB_NAME, kit.Select(kit.MDB_FOREACH, arg, 0)); len(arg) == 0 {
|
||||||
msg.Table(func(index int, value map[string]string, head []string) {
|
msg.Table(func(index int, value map[string]string, head []string) {
|
||||||
for _, k := range head {
|
for _, k := range head {
|
||||||
if k == "照片" {
|
if k == "照片" {
|
||||||
@ -111,30 +111,30 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
DATE: {Name: "date id=auto auto 添加:button 导出:button 导入:button", Help: "约会", Meta: kit.Dict(
|
DATE: {Name: "date id=auto auto 添加:button 导出:button 导入:button", Help: "约会", Meta: kit.Dict(
|
||||||
"display", "", "insert", _date_insert,
|
"display", "", "添加", _date_insert,
|
||||||
), Action: map[string]*ice.Action{
|
), Action: map[string]*ice.Action{
|
||||||
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(DATE), "", mdb.LIST, arg)
|
m.Cmdy(mdb.INSERT, m.Prefix(DATE), m.Option(ice.MSG_DOMAIN), mdb.LIST, arg)
|
||||||
}},
|
}},
|
||||||
mdb.MODIFY: {Name: "modify key value", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
mdb.MODIFY: {Name: "modify key value", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(DATE), "", mdb.LIST, kit.MDB_ID, m.Option("id"), arg[0], arg[1])
|
m.Cmdy(mdb.MODIFY, m.Prefix(DATE), m.Option(ice.MSG_DOMAIN), mdb.LIST, kit.MDB_ID, m.Option("id"), arg[0], arg[1])
|
||||||
}},
|
}},
|
||||||
mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
// m.Cmdy(mdb.DELETE, m.Prefix(DATE), "", mdb.LIST, kit.MDB_NAME, m.Option("name"))
|
// m.Cmdy(mdb.DELETE, m.Prefix(DATE), m.Option(ice.MSG_DOMAIN), mdb.LIST, kit.MDB_NAME, m.Option("name"))
|
||||||
}},
|
}},
|
||||||
mdb.EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
mdb.EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(DATE), "", mdb.LIST)
|
m.Cmdy(mdb.EXPORT, m.Prefix(DATE), m.Option(ice.MSG_DOMAIN), mdb.LIST)
|
||||||
}},
|
}},
|
||||||
mdb.IMPORT: {Name: "import file", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
mdb.IMPORT: {Name: "import file", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(DATE), "", mdb.LIST)
|
m.Cmdy(mdb.IMPORT, m.Prefix(DATE), m.Option(ice.MSG_DOMAIN), mdb.LIST)
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
m.Option("fields", _date_select)
|
m.Option("fields", _date_select)
|
||||||
m.Cmdy(mdb.SELECT, m.Prefix(DATE), "", mdb.LIST)
|
m.Cmdy(mdb.SELECT, m.Prefix(DATE), m.Option(ice.MSG_DOMAIN), mdb.LIST)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
m.Cmdy(mdb.SELECT, m.Prefix(DATE), "", mdb.LIST, kit.MDB_ID, arg[0])
|
m.Cmdy(mdb.SELECT, m.Prefix(DATE), m.Option(ice.MSG_DOMAIN), mdb.LIST, kit.MDB_ID, arg[0])
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
}, nil)
|
}, nil)
|
||||||
|
@ -95,10 +95,8 @@ func init() {
|
|||||||
RIVER: {Name: "river", Help: "群组", Value: kit.Data(
|
RIVER: {Name: "river", Help: "群组", Value: kit.Data(
|
||||||
"template", kit.Dict(
|
"template", kit.Dict(
|
||||||
"base", kit.Dict(
|
"base", kit.Dict(
|
||||||
"main", []interface{}{
|
"admin", []interface{}{
|
||||||
"web.code.inner",
|
"web.chat.user",
|
||||||
"web.code.dream",
|
|
||||||
"web.code.space",
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -97,6 +97,14 @@ func init() {
|
|||||||
web.SHARE: {Name: "share name", Help: "共享", Hand: func(m *ice.Message, arg ...string) {
|
web.SHARE: {Name: "share name", Help: "共享", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_storm_share(m, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), arg[0])
|
_storm_share(m, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), arg[0])
|
||||||
}},
|
}},
|
||||||
|
"save": {Name: "save", Help: "保存", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
prefix := kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, m.Option(ice.MSG_STORM))
|
||||||
|
for i, v := range arg {
|
||||||
|
args := kit.Parse(nil, "", kit.Split(v)...)
|
||||||
|
m.Conf(RIVER, kit.Keys(prefix, kit.MDB_LIST, i, kit.MDB_META, "args"), args)
|
||||||
|
m.Debug("fuck %v %v", kit.Keys(prefix, kit.MDB_LIST, i), args)
|
||||||
|
}
|
||||||
|
}},
|
||||||
TOOL: {Name: "tool [pod ctx cmd help]...", Help: "添加工具", Hand: func(m *ice.Message, arg ...string) {
|
TOOL: {Name: "tool [pod ctx cmd help]...", Help: "添加工具", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_storm_tool(m, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), arg...)
|
_storm_tool(m, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), arg...)
|
||||||
}},
|
}},
|
||||||
|
@ -248,7 +248,7 @@ var Index = &ice.Context{Name: "mall", Help: "贸易中心",
|
|||||||
}},
|
}},
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save(ASSET) }},
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save(ASSET) }},
|
||||||
|
|
||||||
ASSET: {Name: "asset account=auto id=auto auto 支出:button 转账:button 收入:button", Help: "资产", Meta: kit.Dict(
|
ASSET: {Name: "asset account=auto id=auto auto 支出:button 转账:button 收入:button 导出:button 导入:button", Help: "资产", Meta: kit.Dict(
|
||||||
"支出", _input_spend, "转账", _input_trans, "收入", _input_bonus,
|
"支出", _input_spend, "转账", _input_trans, "收入", _input_bonus,
|
||||||
), Action: map[string]*ice.Action{
|
), Action: map[string]*ice.Action{
|
||||||
"spend": {Name: "insert [key value]...", Help: "支出", Hand: func(m *ice.Message, arg ...string) {
|
"spend": {Name: "insert [key value]...", Help: "支出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -308,7 +308,7 @@ var Index = &ice.Context{Name: "team", Help: "团队中心",
|
|||||||
}},
|
}},
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save(TASK) }},
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save(TASK) }},
|
||||||
|
|
||||||
TASK: {Name: "task zone=auto id=auto auto 添加:button", Help: "任务", Meta: kit.Dict(
|
TASK: {Name: "task zone=auto id=auto auto 添加:button 导出:button 导入:button", Help: "任务", Meta: kit.Dict(
|
||||||
"添加", _task_inputs,
|
"添加", _task_inputs,
|
||||||
), Action: map[string]*ice.Action{
|
), Action: map[string]*ice.Action{
|
||||||
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -362,6 +362,7 @@ var Index = &ice.Context{Name: "team", Help: "团队中心",
|
|||||||
PLAN: {Name: "plan scale:select=day|week|month|year|long begin_time=@date auto 添加:button", Help: "计划", Meta: kit.Dict(
|
PLAN: {Name: "plan scale:select=day|week|month|year|long begin_time=@date auto 添加:button", Help: "计划", Meta: kit.Dict(
|
||||||
"添加", _task_inputs,
|
"添加", _task_inputs,
|
||||||
"display", "/plugin/local/team/plan.js", "detail", []string{StatusPrepare, StatusProcess, StatusCancel, StatusFinish},
|
"display", "/plugin/local/team/plan.js", "detail", []string{StatusPrepare, StatusProcess, StatusCancel, StatusFinish},
|
||||||
|
"style", "plan",
|
||||||
), Action: map[string]*ice.Action{
|
), Action: map[string]*ice.Action{
|
||||||
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert [key value]...", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_task_create(m, arg[1])
|
_task_create(m, arg[1])
|
||||||
|
@ -8,7 +8,6 @@ import (
|
|||||||
"github.com/shylinux/icebergs/base/nfs"
|
"github.com/shylinux/icebergs/base/nfs"
|
||||||
"github.com/shylinux/icebergs/base/web"
|
"github.com/shylinux/icebergs/base/web"
|
||||||
"github.com/shylinux/icebergs/core/code"
|
"github.com/shylinux/icebergs/core/code"
|
||||||
"github.com/shylinux/icebergs/core/wiki"
|
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
@ -120,9 +119,7 @@ var Index = &ice.Context{Name: "git", Help: "代码库",
|
|||||||
})
|
})
|
||||||
m.Sort("name")
|
m.Sort("name")
|
||||||
}},
|
}},
|
||||||
"total": {Name: "total name=auto auto", Help: "提交统计", Meta: kit.Dict(
|
"total": {Name: "total name=auto auto", Help: "提交统计", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
mdb.PLUGIN, wiki.DataPlugin,
|
|
||||||
), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
if len(arg) > 0 {
|
if len(arg) > 0 {
|
||||||
// 提交详情
|
// 提交详情
|
||||||
m.Richs("repos", nil, arg[0], func(key string, value map[string]interface{}) {
|
m.Richs("repos", nil, arg[0], func(key string, value map[string]interface{}) {
|
||||||
|
@ -5,3 +5,6 @@ refer "官网" `
|
|||||||
文档 https://git-scm.com/docs
|
文档 https://git-scm.com/docs
|
||||||
源码 https://github.com/git/git
|
源码 https://github.com/git/git
|
||||||
`
|
`
|
||||||
|
|
||||||
|
field status web.code.git.status
|
||||||
|
field total web.code.git.total
|
||||||
|
@ -289,6 +289,7 @@ var Index = &ice.Context{Name: "lark", Help: "机器人",
|
|||||||
}},
|
}},
|
||||||
TALK: {Name: "talk text", Help: "聊天", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
|
TALK: {Name: "talk text", Help: "聊天", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
|
||||||
// 用户权限
|
// 用户权限
|
||||||
|
m.Option(ice.MSG_USERZONE, LARK)
|
||||||
m.Option(ice.MSG_USERNAME, m.Option(OPEN_ID))
|
m.Option(ice.MSG_USERNAME, m.Option(OPEN_ID))
|
||||||
m.Option(ice.MSG_USERNICK, aaa.UserNick(m, m.Option(ice.MSG_USERNAME)))
|
m.Option(ice.MSG_USERNICK, aaa.UserNick(m, m.Option(ice.MSG_USERNAME)))
|
||||||
m.Option(ice.MSG_USERROLE, aaa.UserRole(m, m.Option(ice.MSG_USERNAME)))
|
m.Option(ice.MSG_USERROLE, aaa.UserRole(m, m.Option(ice.MSG_USERNAME)))
|
||||||
|
@ -12,6 +12,8 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const MP = "mp"
|
||||||
|
|
||||||
var Index = &ice.Context{Name: "mp", Help: "小程序",
|
var Index = &ice.Context{Name: "mp", Help: "小程序",
|
||||||
Caches: map[string]*ice.Cache{},
|
Caches: map[string]*ice.Cache{},
|
||||||
Configs: map[string]*ice.Config{
|
Configs: map[string]*ice.Config{
|
||||||
@ -40,6 +42,7 @@ var Index = &ice.Context{Name: "mp", Help: "小程序",
|
|||||||
"appid", m.Conf("login", "meta.appid"), "secret", m.Conf("login", "meta.appmm"))
|
"appid", m.Conf("login", "meta.appid"), "secret", m.Conf("login", "meta.appmm"))
|
||||||
|
|
||||||
// 用户登录
|
// 用户登录
|
||||||
|
m.Option(ice.MSG_USERZONE, MP)
|
||||||
m.Echo(aaa.SessCreate(msg, msg.Append("openid"), aaa.UserRole(msg, msg.Append("openid"))))
|
m.Echo(aaa.SessCreate(msg, msg.Append("openid"), aaa.UserRole(msg, msg.Append("openid"))))
|
||||||
|
|
||||||
case "info":
|
case "info":
|
||||||
|
@ -73,6 +73,8 @@ func action(m *ice.Message) {
|
|||||||
m.Info("what %v", m.Result())
|
m.Info("what %v", m.Result())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const WX = "wx"
|
||||||
|
|
||||||
var Index = &ice.Context{Name: "wx", Help: "公众号",
|
var Index = &ice.Context{Name: "wx", Help: "公众号",
|
||||||
Caches: map[string]*ice.Cache{},
|
Caches: map[string]*ice.Cache{},
|
||||||
Configs: map[string]*ice.Config{
|
Configs: map[string]*ice.Config{
|
||||||
@ -120,6 +122,7 @@ var Index = &ice.Context{Name: "wx", Help: "公众号",
|
|||||||
parse(m)
|
parse(m)
|
||||||
|
|
||||||
// 用户登录
|
// 用户登录
|
||||||
|
m.Option(ice.MSG_USERZONE, WX)
|
||||||
m.Option(ice.MSG_SESSID, aaa.SessCreate(m, m.Append("FromUserName"), aaa.UserRole(m, m.Append("FromUserName"))))
|
m.Option(ice.MSG_SESSID, aaa.SessCreate(m, m.Append("FromUserName"), aaa.UserRole(m, m.Append("FromUserName"))))
|
||||||
|
|
||||||
switch m.Option("MsgType") {
|
switch m.Option("MsgType") {
|
||||||
|
@ -11,6 +11,7 @@ chapter "应用"
|
|||||||
field "runtime" cli.runtime
|
field "runtime" cli.runtime
|
||||||
field "asset" web.mall.asset args `[ ]`
|
field "asset" web.mall.asset args `[ ]`
|
||||||
field "task" web.team.task args `[ ]`
|
field "task" web.team.task args `[ ]`
|
||||||
|
field "miss" web.chat.meet.miss args `[ ]`
|
||||||
|
|
||||||
chapter "项目"
|
chapter "项目"
|
||||||
section "icebergs"
|
section "icebergs"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user