diff --git a/base/aaa/sess.go b/base/aaa/sess.go index b9f1543a..1de7a572 100644 --- a/base/aaa/sess.go +++ b/base/aaa/sess.go @@ -10,9 +10,9 @@ import ( func _sess_create(m *ice.Message, username string, arg ...string) (h string) { if msg := m.Cmd(USER, username); msg.Length() > 0 { - h = mdb.HashCreate(m, msg.AppendSimple(USERNAME, USERNICK, USERROLE), arg) + h = mdb.HashCreate(m, msg.AppendSimple(USERNICK, USERNAME, USERROLE), arg) } else { - h = mdb.HashCreate(m, m.OptionSimple(USERNAME, USERNICK, USERROLE), arg) + h = mdb.HashCreate(m, m.OptionSimple(USERNICK, USERNAME, USERROLE), arg) } gdb.Event(m, SESS_CREATE, SESS, h, USERNAME, username) return @@ -48,7 +48,7 @@ func init() { CHECK: {Name: "check sessid*", Hand: func(m *ice.Message, arg ...string) { _sess_check(m, m.Option(SESSID)) }}, - }, mdb.HashAction(mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,usernick,userrole,ua,ip", mdb.EXPIRE, "720h", mdb.ImportantDataAction()))}, + }, mdb.HashAction(mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,usernick,userrole,ua,ip", mdb.EXPIRE, mdb.MONTH, mdb.ImportantDataAction()))}, }) } @@ -56,7 +56,7 @@ func SessCreate(m *ice.Message, username string) string { return m.Option(ice.MSG_SESSID, m.Cmdx(SESS, mdb.CREATE, username)) } func SessCheck(m *ice.Message, sessid string) bool { - m.Options(ice.MSG_USERNAME, "", ice.MSG_USERNICK, "", ice.MSG_USERROLE, VOID, "aaa.checker", logs.FileLine(-1)) + m.Options(ice.MSG_USERNICK, "", ice.MSG_USERNAME, "", ice.MSG_USERROLE, VOID, "aaa.checker", logs.FileLine(-1)) return sessid != "" && m.Cmdy(SESS, CHECK, sessid, logs.FileLineMeta(-1)).Option(ice.MSG_USERNAME) != "" } func SessAuth(m *ice.Message, value ice.Any, arg ...string) *ice.Message { diff --git a/base/aaa/user.go b/base/aaa/user.go index 3b62aeff..4849f563 100644 --- a/base/aaa/user.go +++ b/base/aaa/user.go @@ -7,28 +7,16 @@ import ( kit "shylinux.com/x/toolkits" ) -func _user_create(m *ice.Message, name, word string, arg ...string) { - mdb.HashCreate(m, USERNAME, name, PASSWORD, kit.GetValid( - func() string { return word }, - func() string { return m.CmdAppend(USER, name, PASSWORD) }, - func() string { return kit.Hashs() }, - ), arg) +func _user_create(m *ice.Message, name string, arg ...string) { + mdb.HashCreate(m, USERNAME, name, arg) gdb.Event(m, USER_CREATE, USER, name) } -func _user_login(m *ice.Message, name, word string) { - if val := mdb.HashSelectDetails(m.Spawn(), name, func(value ice.Map) bool { - return !m.Warn(word != "" && word != kit.Format(value[PASSWORD]), ice.ErrNotValid) - }); len(val) > 0 { - SessAuth(m, val) - } -} const ( BACKGROUND = "background" - - AVATAR = "avatar" - GENDER = "gender" - MOBILE = "mobile" + AVATAR = "avatar" + GENDER = "gender" + MOBILE = "mobile" CITY = "city" COUNTRY = "country" @@ -36,11 +24,11 @@ const ( LANGUAGE = "language" ) const ( + USERNICK = "usernick" USERNAME = "username" PASSWORD = "password" - USERNICK = "usernick" - USERZONE = "userzone" USERROLE = "userrole" + USERZONE = "userzone" USER_CREATE = "user.create" ) @@ -51,19 +39,16 @@ func init() { USER: {Name: "user username auto create", Help: "用户", Actions: ice.MergeActions(ice.Actions{ mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { switch mdb.HashInputs(m, arg); arg[0] { - case USERNAME: - m.Push(arg[0], m.Option(ice.MSG_USERNAME)) case USERNICK: m.Push(arg[0], m.Option(ice.MSG_USERNICK)) + case USERNAME: + m.Push(arg[0], m.Option(ice.MSG_USERNAME)) } }}, - mdb.CREATE: {Name: "create username* password usernick userzone userrole=void,tech", Hand: func(m *ice.Message, arg ...string) { - _user_create(m, m.Option(USERNAME), m.Option(PASSWORD), m.OptionSimple(USERNICK, USERZONE, USERROLE)...) + mdb.CREATE: {Name: "create usernick username* userrole=void,tech userzone", Hand: func(m *ice.Message, arg ...string) { + _user_create(m, m.Option(USERNAME), m.OptionSimple(USERNICK, USERROLE, USERZONE)...) }}, - LOGIN: {Name: "login username* password", Hand: func(m *ice.Message, arg ...string) { - _user_login(m, m.Option(USERNAME), m.Option(PASSWORD)) - }}, - }, mdb.HashAction(mdb.SHORT, USERNAME, mdb.FIELD, "time,username,usernick,userzone,userrole"), mdb.ImportantDataAction())}, + }, mdb.HashAction(mdb.SHORT, USERNAME, mdb.FIELD, "time,usernick,username,userrole,userzone"), mdb.ImportantDataAction())}, }) } @@ -76,9 +61,6 @@ func UserInfo(m *ice.Message, name ice.Any, key, meta string) (value string) { func UserNick(m *ice.Message, username ice.Any) (nick string) { return UserInfo(m, username, USERNICK, ice.MSG_USERNICK) } -func UserZone(m *ice.Message, username ice.Any) (zone string) { - return UserInfo(m, username, USERZONE, ice.MSG_USERZONE) -} func UserRole(m *ice.Message, username ice.Any) (role string) { if username == "" { return VOID @@ -88,18 +70,17 @@ func UserRole(m *ice.Message, username ice.Any) (role string) { } return UserInfo(m, username, USERROLE, ice.MSG_USERROLE) } -func UserLogin(m *ice.Message, username, password string) bool { - m.Options(ice.MSG_USERNAME, "", ice.MSG_USERNICK, "", ice.MSG_USERROLE, VOID) - return m.Cmdy(USER, LOGIN, username, password).Option(ice.MSG_USERNAME) != "" +func UserZone(m *ice.Message, username ice.Any) (zone string) { + return UserInfo(m, username, USERZONE, ice.MSG_USERZONE) } func UserRoot(m *ice.Message, arg ...string) *ice.Message { - username := kit.Select(ice.Info.Username, arg, 0) - usernick := kit.Select(UserNick(m, username), arg, 1) - userrole := kit.Select(ROOT, arg, 2) userzone := kit.Select("", arg, 3) + userrole := kit.Select(ROOT, arg, 2) + username := kit.Select(ice.Info.Username, arg, 1) + usernick := kit.Select(UserNick(m, username), arg, 0) if len(arg) > 0 { - m.Cmd(USER, mdb.CREATE, username, "", usernick, userzone, userrole) + m.Cmd(USER, mdb.CREATE, usernick, username, userrole, userzone) ice.Info.Username = username } - return SessAuth(m, kit.Dict(USERNAME, username, USERNICK, usernick, USERROLE, userrole)) + return SessAuth(m, kit.Dict(USERNICK, usernick, USERNAME, username, USERROLE, userrole)) } diff --git a/base/cli/runtime.go b/base/cli/runtime.go index 003b4010..f875ec94 100644 --- a/base/cli/runtime.go +++ b/base/cli/runtime.go @@ -17,10 +17,10 @@ import ( func _runtime_init(m *ice.Message) { count := kit.Int(m.Conf(RUNTIME, kit.Keys(BOOT, mdb.COUNT))) - kit.Fetch(kit.UnMarshal(kit.Format(ice.Info.Make)), func(key string, value ice.Any) { + kit.For(kit.UnMarshal(kit.Format(ice.Info.Make)), func(key string, value ice.Any) { m.Conf(RUNTIME, kit.Keys(MAKE, strings.ToLower(key)), value) }) - aaa.UserRoot(ice.Pulse, ice.Info.Make.Username, "", aaa.TECH, ice.DEV) + aaa.UserRoot(ice.Pulse, "", ice.Info.Make.Username, aaa.TECH, ice.DEV) m.Conf(RUNTIME, kit.Keys(HOST, GOARCH), runtime.GOARCH) m.Conf(RUNTIME, kit.Keys(HOST, GOOS), runtime.GOOS) m.Conf(RUNTIME, kit.Keys(HOST, OSID), release(m)) @@ -47,7 +47,7 @@ func _runtime_init(m *ice.Message) { ice.Info.Hostname = m.Conf(RUNTIME, kit.Keys(BOOT, HOSTNAME)) ice.Info.Pathname = m.Conf(RUNTIME, kit.Keys(BOOT, PATHNAME)) ice.Info.Username = m.Conf(RUNTIME, kit.Keys(BOOT, USERNAME)) - aaa.UserRoot(ice.Pulse, ice.Info.Username, "", "", ice.OPS) + aaa.UserRoot(ice.Pulse, "", ice.Info.Username, aaa.ROOT, ice.OPS) msg := m.Cmd(nfs.DIR, _system_find(m, os.Args[0]), "time,path,size,hash") m.Conf(RUNTIME, kit.Keys(BOOT, ice.BIN), msg.Append(nfs.PATH)) m.Conf(RUNTIME, kit.Keys(BOOT, nfs.SIZE), msg.Append(nfs.SIZE)) diff --git a/base/log/tail.go b/base/log/tail.go index a0de0314..ba5b146e 100644 --- a/base/log/tail.go +++ b/base/log/tail.go @@ -13,7 +13,7 @@ import ( func _tail_create(m *ice.Message, arg ...string) { h := mdb.HashCreate(m, arg) - kit.Fetch(kit.Split(m.Option(FILE)), func(file string) { + kit.For(kit.Split(m.Option(FILE)), func(file string) { m.Options(cli.CMD_OUTPUT, Pipe(m, func(text string) { mdb.ZoneInsert(m, h, FILE, file, nfs.SIZE, len(text), mdb.TEXT, text) }), mdb.CACHE_CLEAR_ON_EXIT, ice.TRUE) m.Cmd(cli.DAEMON, TAIL, "-n", "0", "-f", file) }) diff --git a/base/nfs/cat.go b/base/nfs/cat.go index 436f341f..ee156ff1 100644 --- a/base/nfs/cat.go +++ b/base/nfs/cat.go @@ -158,7 +158,7 @@ func OptionLoad(m *ice.Message, file string) *ice.Message { defer f.Close() var data ice.Any m.Assert(json.NewDecoder(f).Decode(&data)) - kit.Fetch(data, func(key string, value ice.Any) { m.Option(key, kit.Simple(value)) }) + kit.For(data, func(key string, value ice.Any) { m.Option(key, kit.Simple(value)) }) } return m } diff --git a/base/web/serve.go b/base/web/serve.go index 27a06bca..569da2ae 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -27,7 +27,7 @@ func _serve_address(m *ice.Message) string { } func _serve_start(m *ice.Message) { defer kit.For(kit.Split(m.Option(ice.DEV)), func(v string) { m.Cmd(SPACE, tcp.DIAL, ice.DEV, v, mdb.NAME, ice.Info.NodeName) }) - kit.If(m.Option(aaa.USERNAME), func() { aaa.UserRoot(m, m.Option(aaa.USERNAME), m.Option(aaa.USERNICK)) }) + kit.If(m.Option(aaa.USERNAME), func() { aaa.UserRoot(m, m.Option(aaa.USERNICK), m.Option(aaa.USERNAME)) }) kit.If(m.Option(tcp.PORT) == tcp.RANDOM, func() { m.Option(tcp.PORT, m.Cmdx(tcp.PORT, aaa.RIGHT)) }) kit.If(runtime.GOOS == cli.WINDOWS, func() { m.Cmd(SPIDE, ice.OPS, _serve_address(m)+"/exit").Sleep("300ms") }) cli.NodeInfo(m, kit.Select(ice.Info.Hostname, m.Option(tcp.NODENAME)), SERVER) diff --git a/base/web/share.go b/base/web/share.go index 5ec01f30..9d1814f6 100644 --- a/base/web/share.go +++ b/base/web/share.go @@ -132,7 +132,7 @@ func init() { RenderMain(m) } }}, - }, mdb.HashAction(mdb.FIELD, "time,hash,username,usernick,userrole,river,storm,type,name,text", mdb.EXPIRE, "72h"), ServeAction(), aaa.WhiteAction()), Hand: func(m *ice.Message, arg ...string) { + }, mdb.HashAction(mdb.FIELD, "time,hash,username,usernick,userrole,river,storm,type,name,text", mdb.EXPIRE, mdb.DAYS), ServeAction(), aaa.WhiteAction()), Hand: func(m *ice.Message, arg ...string) { if ctx.PodCmd(m, SHARE, arg) { return } diff --git a/base/web/spide.go b/base/web/spide.go index 8792de9b..fb073a53 100644 --- a/base/web/spide.go +++ b/base/web/spide.go @@ -111,7 +111,7 @@ func _spide_body(m *ice.Message, method string, arg ...string) (io.Reader, ice.M fallthrough default: data := ice.Map{} - kit.Fetch(arg, func(k, v string) { kit.Value(data, k, v) }) + kit.For(arg, func(k, v string) { kit.Value(data, k, v) }) head[ContentType], body = ContentJSON, bytes.NewBufferString(kit.Format(data)) } arg = arg[:0] @@ -155,23 +155,23 @@ func _spide_part(m *ice.Message, arg ...string) (string, io.Reader) { } func _spide_head(m *ice.Message, req *http.Request, head ice.Maps, value ice.Map) { m.Logs(req.Method, req.URL.String()) - kit.Fetch(value[SPIDE_HEADER], func(k string, v string) { + kit.For(value[SPIDE_HEADER], func(k string, v string) { req.Header.Set(k, v) m.Logs("Header", k, v) }) - kit.Fetch(value[SPIDE_COOKIE], func(k string, v string) { + kit.For(value[SPIDE_COOKIE], func(k string, v string) { req.AddCookie(&http.Cookie{Name: k, Value: v}) m.Logs("Cookie", k, v) }) - kit.Fetch(kit.Simple(m.Optionv(SPIDE_COOKIE)), func(k, v string) { + kit.For(kit.Simple(m.Optionv(SPIDE_COOKIE)), func(k, v string) { req.AddCookie(&http.Cookie{Name: k, Value: v}) m.Logs("Cookie", k, v) }) - kit.Fetch(kit.Simple(m.Optionv(SPIDE_HEADER)), func(k, v string) { + kit.For(kit.Simple(m.Optionv(SPIDE_HEADER)), func(k, v string) { req.Header.Set(k, v) m.Logs("Header", k, v) }) - kit.Fetch(head, func(k, v string) { + kit.For(head, func(k, v string) { req.Header.Set(k, v) m.Logs("Header", k, v) }) @@ -194,7 +194,7 @@ func _spide_save(m *ice.Message, format, file, uri string, res *http.Response) { case SPIDE_MSG: var data map[string][]string m.Assert(json.NewDecoder(res.Body).Decode(&data)) - kit.Fetch(data[ice.MSG_APPEND], func(k string) { kit.Fetch(data[k], func(v string) { m.Push(k, v) }) }) + kit.For(data[ice.MSG_APPEND], func(k string) { kit.For(data[k], func(v string) { m.Push(k, v) }) }) m.Resultv(data[ice.MSG_RESULT]) case SPIDE_SAVE: _cache_download(m, res, file, m.OptionCB(SPIDE)) diff --git a/core/chat/header.go b/core/chat/header.go index 358b3f8c..b4ecec71 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -26,7 +26,7 @@ func _header_share(m *ice.Message, arg ...string) { if m.Warn(m.Option(ice.MSG_USERNAME) == "", ice.ErrNotLogin, "没有登录") { return } - if kit.Fetch(arg, func(k, v string) { m.Option(k, v) }); m.Option(mdb.LINK) == "" { + if kit.For(arg, func(k, v string) { m.Option(k, v) }); m.Option(mdb.LINK) == "" { m.Cmdy(web.SHARE, mdb.CREATE, mdb.TYPE, web.LOGIN, arg) } else { m.Option(mdb.LINK, tcp.PublishLocalhost(m, m.Option(mdb.LINK))) @@ -65,12 +65,7 @@ const HEADER = "header" func init() { Index.MergeCommands(ice.Commands{ web.P(HEADER): {Name: "/header", Help: "标题栏", Actions: ice.MergeActions(ice.Actions{ - mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {}}, - aaa.LOGIN: {Hand: func(m *ice.Message, arg ...string) { - if len(arg) > 1 && aaa.UserLogin(m, arg[0], arg[1]) { - web.RenderCookie(m, aaa.SessCreate(m, arg[0])) - } - }}, + mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {}}, aaa.LOGOUT: {Hand: aaa.SessLogout}, aaa.PASSWORD: {Hand: _header_users}, aaa.USERNICK: {Hand: _header_users}, diff --git a/core/chat/oauth/oauth.go b/core/chat/oauth/oauth.go index b9966055..11db3175 100644 --- a/core/chat/oauth/oauth.go +++ b/core/chat/oauth/oauth.go @@ -79,9 +79,9 @@ var Index = &ice.Context{Name: OAUTH, Help: "认证授权", Commands: ice.Comman }}, })}, - APPLY: {Name: "apply hash auto create prunes", Help: "申请", Actions: mdb.HashAction(mdb.EXPIRE, "72h", mdb.FIELD, "time,hash,username,scope,redirect_uri")}, - REPLY: {Name: "reply hash auto create prunes", Help: "授权", Actions: mdb.HashAction(mdb.EXPIRE, "720h", mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,scope,offer")}, - OFFER: {Name: "offer hash auto create prunes", Help: "访问", Actions: mdb.HashAction(mdb.EXPIRE, "720h", mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,scope,redirect_uri")}, + APPLY: {Name: "apply hash auto create prunes", Help: "申请", Actions: mdb.HashAction(mdb.EXPIRE, mdb.DAYS, mdb.FIELD, "time,hash,username,scope,redirect_uri")}, + REPLY: {Name: "reply hash auto create prunes", Help: "授权", Actions: mdb.HashAction(mdb.EXPIRE, mdb.MONTH, mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,scope,offer")}, + OFFER: {Name: "offer hash auto create prunes", Help: "访问", Actions: mdb.HashAction(mdb.EXPIRE, mdb.MONTH, mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,scope,redirect_uri")}, web.P(APPLY): {Name: "/apply scope redirect_uri", Help: "申请", Actions: ctx.CmdAction(), Hand: func(m *ice.Message, arg ...string) { if m.Option(REDIRECT_URI) == "" { @@ -112,8 +112,8 @@ var Index = &ice.Context{Name: OAUTH, Help: "认证授权", Commands: ice.Comman }}, AUTHORIZE: {Name: "authorize hash auto create prunes", Help: "认证", Actions: mdb.HashAction(mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,redirect_uri")}, - TOKEN: {Name: "token hash auto create prunes", Help: "授权", Actions: mdb.HashAction(mdb.EXPIRE, "72h", mdb.FIELD, "time,hash,used,state,scope,redirect_uri")}, - ACCESS: {Name: "access hash auto create prunes", Help: "访问", Actions: mdb.HashAction(mdb.EXPIRE, "720h", mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,scope,redirect_uri")}, + TOKEN: {Name: "token hash auto create prunes", Help: "授权", Actions: mdb.HashAction(mdb.EXPIRE, mdb.DAYS, mdb.FIELD, "time,hash,used,state,scope,redirect_uri")}, + ACCESS: {Name: "access hash auto create prunes", Help: "访问", Actions: mdb.HashAction(mdb.EXPIRE, mdb.MONTH, mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,username,scope,redirect_uri")}, web.P(AUTHORIZE): {Name: "/authorize state scope client_id redirect_uri", Help: "认证", Hand: func(m *ice.Message, arg ...string) { if m.Option(CLIENT_ID) == "" || m.Option(REDIRECT_URI) == "" { diff --git a/core/chat/template.go b/core/chat/template.go index a19a67a9..65b4b949 100644 --- a/core/chat/template.go +++ b/core/chat/template.go @@ -15,11 +15,11 @@ func init() { TEMPLATE: {Name: "template river storm index auto 删除配置 查看配置", Help: "模板", Actions: ice.MergeActions(ice.Actions{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { if gdb.Watch(m, RIVER_CREATE); m.Cmd("").Length() == 0 { - kit.Fetch(_river_template, func(river string, value ice.Any) { + kit.For(_river_template, func(river string, value ice.Any) { m.Cmd("", mdb.CREATE, RIVER, river) - kit.Fetch(value, func(storm string, value ice.Any) { + kit.For(value, func(storm string, value ice.Any) { m.Cmd("", mdb.INSERT, RIVER, river, STORM, storm) - kit.Fetch(value, func(index int, value ice.Any) { + kit.For(value, func(index int, value ice.Any) { m.Cmd("", "add", RIVER, river, STORM, storm, ctx.INDEX, value) }) }) diff --git a/core/chat/theme.go b/core/chat/theme.go index e30134dd..9a0c013a 100644 --- a/core/chat/theme.go +++ b/core/chat/theme.go @@ -62,7 +62,7 @@ func init() { m.Push("name", kit.Select(kit.Format(kit.Value(tags, "name")), value["name"])) m.Push("value", kit.Select(kit.Format(kit.Value(tags, "value")), value["value"])) }) - kit.Fetch(form, func(k string, v ice.Map) { + kit.For(form, func(k string, v ice.Map) { m.Push("tags", k) m.Push("", v, kit.Split("type,name,value")) }) diff --git a/core/wiki/chart/block.go b/core/wiki/chart/block.go index 293fd4aa..17833556 100644 --- a/core/wiki/chart/block.go +++ b/core/wiki/chart/block.go @@ -41,7 +41,7 @@ func (b *Block) Init(m *ice.Message, arg ...string) wiki.Chart { } func (b *Block) Data(m *ice.Message, meta ice.Any) wiki.Chart { b.Text = kit.Select(b.Text, kit.Value(meta, mdb.TEXT)) - kit.Fetch(meta, func(key string, value string) { + kit.For(meta, func(key string, value string) { switch key { case wiki.FG: b.TextData += kit.Format("%s='%s' %s='%s'", wiki.FILL, value, wiki.STROKE, value) @@ -49,10 +49,10 @@ func (b *Block) Data(m *ice.Message, meta ice.Any) wiki.Chart { b.RectData += kit.Format("%s='%s' ", wiki.FILL, value) } }) - kit.Fetch(kit.Value(meta, "data"), func(key string, value string) { + kit.For(kit.Value(meta, "data"), func(key string, value string) { b.TextData += kit.Format("%s='%s' ", key, value) }) - kit.Fetch(kit.Value(meta, "rect"), func(key string, value string) { + kit.For(kit.Value(meta, "rect"), func(key string, value string) { b.RectData += kit.Format("%s='%s' ", key, value) }) return b diff --git a/core/wiki/chart/chain.go b/core/wiki/chart/chain.go index 46f9a1aa..f3a486bb 100644 --- a/core/wiki/chart/chain.go +++ b/core/wiki/chart/chain.go @@ -46,7 +46,7 @@ func (c *Chain) Draw(m *ice.Message, x, y int) wiki.Chart { func (c *Chain) height(m *ice.Message, root ice.Map) (height int) { meta := kit.GetMeta(root) if list, ok := root[mdb.LIST].([]ice.Any); ok && len(list) > 0 { - kit.Fetch(root[mdb.LIST], func(index int, value ice.Map) { height += c.height(m, value) }) + kit.For(root[mdb.LIST], func(index int, value ice.Map) { height += c.height(m, value) }) } else { height = 1 } @@ -76,7 +76,7 @@ func (c *Chain) draw(m *ice.Message, root ice.Map, x, y int, p *Block, gs *wiki. gs.EchoTexts(TEXT, item.x+item.GetWidths()/2, item.y+item.GetHeights()/2, item.Text, item.TextData) h, x := 0, x+item.GetWidths() - if kit.Fetch(root[mdb.LIST], func(value ice.Map) { h += c.draw(m, value, x, y+h, item, gs) }); h == 0 { + if kit.For(root[mdb.LIST], func(value ice.Map) { h += c.draw(m, value, x, y+h, item, gs) }); h == 0 { return item.GetHeights() } return h diff --git a/core/wiki/field.go b/core/wiki/field.go index e5aef584..dbed773a 100644 --- a/core/wiki/field.go +++ b/core/wiki/field.go @@ -53,7 +53,7 @@ func _field_show(m *ice.Message, name, text string, arg ...string) { switch arg[i] { case ARGS: count := 0 - kit.Fetch(meta[INPUTS], func(index int, value ice.Map) { + kit.For(meta[INPUTS], func(index int, value ice.Map) { if value[mdb.TYPE] != "button" { count++ } diff --git a/core/wiki/wiki.go b/core/wiki/wiki.go index c95d7a69..56610665 100644 --- a/core/wiki/wiki.go +++ b/core/wiki/wiki.go @@ -112,7 +112,7 @@ func (m *Message) OptionTemplate() string { } add("data-", key) } - kit.Fetch(m.Optionv(mdb.EXTRA), func(key string, value string) { + kit.For(m.Optionv(mdb.EXTRA), func(key string, value string) { switch key { case PADDING: return diff --git a/init.go b/init.go index b9abcbe3..28d99b56 100644 --- a/init.go +++ b/init.go @@ -100,7 +100,7 @@ func Run(arg ...string) string { } } Pulse.meta[MSG_DETAIL] = arg - kit.Fetch(kit.Sort(os.Environ()), func(env string) { + kit.For(kit.Sort(os.Environ()), func(env string) { if ls := strings.SplitN(env, EQ, 2); strings.ToLower(ls[0]) == ls[0] && ls[0] != "_" { Pulse.Option(ls[0], ls[1]) } diff --git a/misc.go b/misc.go index 7614cbfb..0f231d07 100644 --- a/misc.go +++ b/misc.go @@ -151,7 +151,7 @@ func (m *Message) Design(action Any, help string, input ...Any) { list = append(list, input) continue } - kit.Fetch(kit.KeyValue(nil, "", input), func(k string, v Any) { + kit.For(kit.KeyValue(nil, "", input), func(k string, v Any) { list = append(list, kit.Dict(NAME, k, TYPE, TEXT, VALUE, v)) }) default: diff --git a/misc/bash/run.go b/misc/bash/run.go index 8890ff26..0eae5012 100644 --- a/misc/bash/run.go +++ b/misc/bash/run.go @@ -15,10 +15,10 @@ import ( func _run_action(m *ice.Message, cmd *ice.Command, script string, arg ...string) { list, args := []string{}, []string{} - kit.Fetch(cmd.Meta["_trans"], func(k string, v string) { + kit.For(cmd.Meta["_trans"], func(k string, v string) { list = append(list, k) args = append(args, kit.Format(` %s)`, k)) - kit.Fetch(cmd.Meta[k], func(index int, value ice.Map) { + kit.For(cmd.Meta[k], func(index int, value ice.Map) { args = append(args, kit.Format(` read -p "input %s: " v; url="$url/%s/$v" `, value[mdb.NAME], value[mdb.NAME])) }) args = append(args, kit.Format(` ;;`)) diff --git a/misc/git/configs.go b/misc/git/configs.go index 95ab3e2f..67b5689d 100644 --- a/misc/git/configs.go +++ b/misc/git/configs.go @@ -40,8 +40,8 @@ func init() { Index.MergeCommands(ice.Commands{ CONFIGS: {Name: "configs name value auto create init", Help: "配置键", Actions: ice.MergeActions(ice.Actions{ ice.INIT: {Help: "初始化", Hand: func(m *ice.Message, arg ...string) { - kit.Fetch(mdb.Configv(m, ice.INIT), func(p string, v ice.Any) { - kit.Fetch(v, func(k string, v string) { _configs_set(m, kit.Keys(p, k), v) }) + kit.For(mdb.Configv(m, ice.INIT), func(p string, v ice.Any) { + kit.For(v, func(k string, v string) { _configs_set(m, kit.Keys(p, k), v) }) }) }}, mdb.CREATE: {Name: "create name* value*", Hand: func(m *ice.Message, arg ...string) { diff --git a/misc/git/count.go b/misc/git/count.go index f076e8c8..8ee16515 100644 --- a/misc/git/count.go +++ b/misc/git/count.go @@ -54,7 +54,7 @@ func init() { lines[kit.Ext(file)]++ }) }) - kit.Fetch(lines, func(k string, v int) { m.Push(mdb.TYPE, k).Push("files", files[k]).Push("lines", lines[k]) }) + kit.For(lines, func(k string, v int) { m.Push(mdb.TYPE, k).Push("files", files[k]).Push("lines", lines[k]) }) m.StatusTimeCount().SortIntR("lines") }}, "order": {Help: "排行", Hand: func(m *ice.Message, arg ...string) { @@ -62,7 +62,7 @@ func init() { _count_count(m, arg, func(file string) { m.Cmdy(nfs.CAT, file, func(text string) { files[strings.TrimPrefix(file, arg[0])]++ }) }) - kit.Fetch(files, func(k string, v int) { m.Push("files", k).Push("lines", v) }) + kit.For(files, func(k string, v int) { m.Push("files", k).Push("lines", v) }) m.StatusTimeCount().SortIntR("lines") }}, "tags": {Help: "索引", Hand: func(m *ice.Message, arg ...string) { @@ -76,7 +76,7 @@ func init() { count[kit.Split(ls[1])[0]]++ } }) - kit.Fetch(count, func(k string, v int) { m.Push(mdb.TYPE, k).Push(mdb.COUNT, v) }) + kit.For(count, func(k string, v int) { m.Push(mdb.TYPE, k).Push(mdb.COUNT, v) }) m.StatusTimeCount().SortIntR(mdb.COUNT) }}, }, Hand: func(m *ice.Message, arg ...string) { m.Cmdy(nfs.DIR, arg) }}, diff --git a/misc/git/repos.go b/misc/git/repos.go index 45765ecc..1805857d 100644 --- a/misc/git/repos.go +++ b/misc/git/repos.go @@ -149,7 +149,7 @@ func _repos_dir(m *ice.Message, dir, branch, commit, file string, cb func(*gogit return false }) } - kit.Fetch(prev, func(pp, id string) { + kit.For(prev, func(pp, id string) { if path.Dir(file) != path.Dir(pp) { return } diff --git a/misc/git/server.go b/misc/git/server.go index 761f2cae..f9760755 100644 --- a/misc/git/server.go +++ b/misc/git/server.go @@ -34,7 +34,7 @@ func _server_login(m *ice.Message) error { if err != nil { return err } - if ls = strings.SplitN(string(data), ice.DF, 2); m.Cmd("web.code.git.token", ls[0]).Append(TOKEN) != ls[1] && !aaa.UserLogin(m.Spawn(), ls[0], ls[1]) { + if ls = strings.SplitN(string(data), ice.DF, 2); m.Cmd("web.code.git.token", ls[0]).Append(TOKEN) != ls[1] { return fmt.Errorf("username or password error") } if aaa.UserRole(m, ls[0]) == aaa.VOID { diff --git a/misc/lark/company.go b/misc/lark/company.go index 8b7422e4..da4de797 100644 --- a/misc/lark/company.go +++ b/misc/lark/company.go @@ -9,9 +9,9 @@ import ( func _company_list(m *ice.Message, appid string) { _, data := _lark_get(m, appid, "/open-apis/contact/v1/scope/get/") - kit.Fetch(kit.Value(data, "data.authed_departments"), func(index int, ship_id string) { + kit.For(kit.Value(data, "data.authed_departments"), func(index int, ship_id string) { _, data := _lark_get(m, appid, "/open-apis/contact/v1/department/detail/batch_get", "department_ids", ship_id) - kit.Fetch(kit.Value(data, "data.department_infos"), func(index int, value ice.Map) { + kit.For(kit.Value(data, "data.department_infos"), func(index int, value ice.Map) { m.Push(SHIP_ID, ship_id) m.Push(mdb.NAME, value[mdb.NAME]) m.Push(mdb.COUNT, value["member_count"]) @@ -22,7 +22,7 @@ func _company_list(m *ice.Message, appid string) { } func _company_members(m *ice.Message, appid string, ship_id string) { _, data := _lark_get(m, appid, "/open-apis/contact/v1/department/user/list", "department_id", ship_id, "page_size", "100", "fetch_child", ice.TRUE) - kit.Fetch(kit.Value(data, "data.user_list"), func(index int, value ice.Map) { + kit.For(kit.Value(data, "data.user_list"), func(index int, value ice.Map) { msg := m.Cmd(EMPLOYEE, appid, value[OPEN_ID]) m.PushImages(aaa.AVATAR, msg.Append("avatar_72")) m.Push(aaa.GENDER, kit.Select("女", "男", msg.Append(aaa.GENDER) == "1")) diff --git a/misc/lark/talk.go b/misc/lark/talk.go index fb58e5d1..3a8a813a 100644 --- a/misc/lark/talk.go +++ b/misc/lark/talk.go @@ -16,8 +16,8 @@ func init() { Index.MergeCommands(ice.Commands{ TALK: {Name: "talk text", Help: "聊天", Hand: func(m *ice.Message, arg ...string) { cmds := kit.Split(strings.Join(arg, " ")) - if aaa.UserLogin(m, m.Option(OPEN_ID), ""); !aaa.Right(m, cmds) { - if aaa.UserLogin(m, m.Option(OPEN_CHAT_ID), ""); !aaa.Right(m, cmds) { + if aaa.SessAuth(m, kit.Dict(aaa.USERNAME, m.Option(OPEN_ID))); !aaa.Right(m, cmds) { + if aaa.SessAuth(m, kit.Dict(aaa.USERNAME, m.Option(OPEN_CHAT_ID))); !aaa.Right(m, cmds) { m.Cmd(DUTY, m.Option(OPEN_CHAT_ID), m.Option("text_without_at_bot")) m.Cmd(HOME) return diff --git a/misc/tmux/session.go b/misc/tmux/session.go index 5165bf74..c9a2a92b 100644 --- a/misc/tmux/session.go +++ b/misc/tmux/session.go @@ -158,7 +158,7 @@ func init() { }}, SCRIPT: {Name: "script name", Help: "脚本", Hand: func(m *ice.Message, arg ...string) { m.Cmd(SCRIPT, m.Option(mdb.NAME), func(value ice.Maps) { - kit.Fetch(kit.SplitLine(value[mdb.TEXT]), func(line string) { + kit.For(kit.SplitLine(value[mdb.TEXT]), func(line string) { kit.Switch(value[mdb.TYPE], "shell", func() { m.Cmd(CMD, _tmux_key(m.Option(SESSION), m.Option(WINDOW), m.Option(PANE)), line) }, "vim", func() { m.Cmd(CMD, _tmux_key(m.Option(SESSION), m.Option(WINDOW), m.Option(PANE)), line) },