1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00
This commit is contained in:
harveyshao 2022-06-27 18:06:53 +08:00
parent 8108f8c13b
commit 1ee314e4f5
4 changed files with 50 additions and 19 deletions

View File

@ -127,9 +127,9 @@ func init() {
}}, }},
DREAM_STOP: {Name: "dream.stop type name", Help: "停止", Hand: func(m *ice.Message, arg ...string) { DREAM_STOP: {Name: "dream.stop type name", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
if m.Cmd(SPACE, m.Option(mdb.NAME)).Append(mdb.STATUS) == cli.STOP { if m.Cmd(SPACE, m.Option(mdb.NAME)).Append(mdb.STATUS) == cli.STOP {
m.Cmdy(SPACE, mdb.REMOVE, m.OptionSimple(mdb.NAME)) m.Cmd(mdb.DELETE, m.Prefix(SPACE), "", mdb.HASH, m.OptionSimple(mdb.NAME))
} else { } else {
m.Cmdy(SPACE, mdb.REMOVE, m.OptionSimple(mdb.NAME)) m.Cmd(mdb.DELETE, m.Prefix(SPACE), "", mdb.HASH, m.OptionSimple(mdb.NAME))
m.Sleep("1s", DREAM, cli.START, m.OptionSimple(mdb.NAME)) m.Sleep("1s", DREAM, cli.START, m.OptionSimple(mdb.NAME))
} }
}}, }},

View File

@ -326,6 +326,7 @@ const (
ContentType = "Content-Type" ContentType = "Content-Type"
ContentLength = "Content-Length" ContentLength = "Content-Length"
UserAgent = "User-Agent" UserAgent = "User-Agent"
Accept = "Accept"
ContentFORM = "application/x-www-form-urlencoded" ContentFORM = "application/x-www-form-urlencoded"
ContentJSON = "application/json" ContentJSON = "application/json"
@ -395,5 +396,12 @@ func init() {
}, Hand: func(m *ice.Message, arg ...string) { }, Hand: func(m *ice.Message, arg ...string) {
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, ice.DEV, SPIDE_RAW, SPIDE_POST, arg[0], arg[1:])))) m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, ice.DEV, SPIDE_RAW, SPIDE_POST, arg[0], arg[1:]))))
}}, }},
SPIDE_DELETE: {Name: "DELETE url key value run", Help: "蜘蛛侠", Action: map[string]*ice.Action{
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.DELETE, SPIDE, "", mdb.HASH, m.OptionSimple(CLIENT_NAME))
}},
}, Hand: func(m *ice.Message, arg ...string) {
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, ice.DEV, SPIDE_RAW, SPIDE_DELETE, arg[0], arg[1:]))))
}},
}}) }})
} }

View File

@ -16,25 +16,19 @@ func init() {
CLIENT_ID = "client_id" CLIENT_ID = "client_id"
CLIENT_SECRET = "client_secret" CLIENT_SECRET = "client_secret"
REDIRECT_URI = "redirect_uri" REDIRECT_URI = "redirect_uri"
SCOPE = "scope"
CODE = "code" CODE = "code"
ACCESS_TOKEN = "access_token" ACCESS_TOKEN = "access_token"
LOGIN_OAUTH = "https://github.com/login/oauth/" LOGIN_OAUTH = "https://github.com/login/oauth/"
API_GITHUB = "https://api.github.com/"
) )
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{ Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
OAUTH: {Name: OAUTH, Help: "授权", Value: kit.Data(mdb.FIELD, "time,hash,code,access_token,scope,token_type")}, OAUTH: {Name: OAUTH, Help: "授权", Value: kit.Data(mdb.FIELD, "time,hash,code,access_token,scope,token_type")},
}, Commands: map[string]*ice.Command{ }, Commands: map[string]*ice.Command{
OAUTH: {Name: "oauth hash auto", Help: "授权", Action: ice.MergeAction(map[string]*ice.Action{ OAUTH: {Name: "oauth hash auto", Help: "授权", Action: ice.MergeAction(map[string]*ice.Action{
"config": {Name: "config client_id client_secret redirect_uri", Help: "配置", Hand: func(m *ice.Message, arg ...string) { ctx.CONFIG: {Name: "config client_id client_secret redirect_uri", Help: "配置", Hand: func(m *ice.Message, arg ...string) {
m.ConfigOption(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI) m.ConfigOption(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI)
}}, }},
"user": {Name: "user", Help: "用户", Hand: func(m *ice.Message, arg ...string) {
m.Option(web.SPIDE_HEADER, "Accept", web.ContentJSON, "Authorization", "token "+m.Option(ACCESS_TOKEN))
data := kit.UnMarshal(m.Cmdx(web.SPIDE_GET, "https://api.github.com/user"))
m.Cmdy(mdb.MODIFY, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(mdb.HASH), kit.Simple(data))
}},
mdb.CREATE: {Name: "create code", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(CODE))
}},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
if arg[0] == mdb.HASH { if arg[0] == mdb.HASH {
m.Cmdy(aaa.RSA).Cut("hash,title,public") m.Cmdy(aaa.RSA).Cut("hash,title,public")
@ -42,28 +36,50 @@ func init() {
} }
m.Cmdy(mdb.INPUTS, m.PrefixKey(), "", mdb.HASH, arg) m.Cmdy(mdb.INPUTS, m.PrefixKey(), "", mdb.HASH, arg)
}}, }},
mdb.CREATE: {Name: "create code", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(CODE))
}},
ACCESS_TOKEN: {Name: "access_token", Help: "令牌", Hand: func(m *ice.Message, arg ...string) { ACCESS_TOKEN: {Name: "access_token", Help: "令牌", Hand: func(m *ice.Message, arg ...string) {
m.Option(web.SPIDE_HEADER, "Accept", web.ContentJSON) m.Option(web.SPIDE_HEADER, web.Accept, web.ContentJSON)
data := kit.UnMarshal(m.Cmdx(web.SPIDE_POST, kit.MergeURL2(LOGIN_OAUTH, ACCESS_TOKEN), m.ConfigSimple(CLIENT_ID, CLIENT_SECRET), m.OptionSimple(CODE))) data := kit.UnMarshal(m.Cmdx(web.SPIDE_POST, kit.MergeURL2(LOGIN_OAUTH, ACCESS_TOKEN), m.ConfigSimple(CLIENT_ID, CLIENT_SECRET), m.OptionSimple(CODE)))
m.Cmdy(mdb.MODIFY, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(mdb.HASH), kit.Simple(data)) m.Cmdy(mdb.MODIFY, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(mdb.HASH), kit.Simple(data))
}}, }},
"public": {Name: "public hash", Help: "公钥", Hand: func(m *ice.Message, arg ...string) { "public": {Name: "public hash", Help: "公钥", Hand: func(m *ice.Message, arg ...string) {
m.Option(web.SPIDE_HEADER, "Accept", web.ContentJSON, "Authorization", "token "+m.Option(ACCESS_TOKEN)) m.Option(web.SPIDE_HEADER, web.Accept, web.ContentJSON, web.Authorization, "token "+m.Option(ACCESS_TOKEN))
msg := m.Cmd("aaa.rsa", m.Option(mdb.HASH)) msg := m.Cmd(aaa.RSA, m.Option(mdb.HASH))
res := kit.UnMarshal(m.Cmdx(web.SPIDE_POST, kit.MergeURL2("https://api.github.com", "/user/keys"), web.SPIDE_JSON, m.PushDetail(m.Cmdx(web.SPIDE_POST, API_GITHUB+"user/keys", web.SPIDE_JSON, "key", msg.Append("public"), msg.AppendSimple("title")))
"key", msg.Append("public"), msg.AppendSimple("title")))
m.Push("", res)
m.Echo("https://github.com/settings/keys") m.Echo("https://github.com/settings/keys")
}}, }},
"user": {Name: "user", Help: "用户", Hand: func(m *ice.Message, arg ...string) {
m.Option(web.SPIDE_HEADER, web.Accept, web.ContentJSON, web.Authorization, "token "+m.Option(ACCESS_TOKEN))
data := kit.UnMarshal(m.Cmdx(web.SPIDE_GET, API_GITHUB+"user"))
m.Cmdy(mdb.MODIFY, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(mdb.HASH), kit.Simple(data))
}},
mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
mdb.HashSelect(m, m.Option(mdb.HASH))
m.Option(web.SPIDE_HEADER, web.Accept, web.ContentJSON, web.Authorization, "token "+m.Append(ACCESS_TOKEN))
m.Cmd(web.SPIDE_DELETE, API_GITHUB+"user/keys/"+m.Option(mdb.ID))
}},
}, mdb.HashAction()), Hand: func(m *ice.Message, arg ...string) { }, mdb.HashAction()), Hand: func(m *ice.Message, arg ...string) {
if mdb.HashSelect(m, arg...).PushAction("user", "public", ACCESS_TOKEN, mdb.REMOVE); len(arg) == 0 { if mdb.HashSelect(m, arg...).PushAction("user", "public", ACCESS_TOKEN, mdb.REMOVE); len(arg) == 0 {
m.Action(mdb.CREATE) m.Action(mdb.CREATE)
m.Echo(kit.MergeURL2(LOGIN_OAUTH, "authorize", m.ConfigSimple(REDIRECT_URI, CLIENT_ID), "scope", "read:user read:public_key write:public_key repo")) m.Echo(kit.MergeURL2(LOGIN_OAUTH, "authorize", m.ConfigSimple(REDIRECT_URI, CLIENT_ID), SCOPE, "read:user read:public_key write:public_key repo"))
} else if len(arg) == 1 {
m.Option(web.SPIDE_HEADER, web.Accept, web.ContentJSON, web.Authorization, "token "+m.Append(ACCESS_TOKEN))
m.SetAppend()
m.Debug("what %v", m.FormatMeta())
data := kit.UnMarshal(m.Cmdx(web.SPIDE_GET, API_GITHUB+"user/keys"))
m.Debug("what %v", data)
kit.Fetch(data, func(index int, value ice.Map) {
m.PushRecord(value, "created_at,title,id,key")
})
m.PushAction(mdb.DELETE)
m.Debug("what %v", m.FormatMeta())
} }
}}, }},
"/oauth": {Name: "/oauth", Help: "授权", Action: ice.MergeAction(map[string]*ice.Action{}, ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) { "/oauth": {Name: "/oauth", Help: "授权", Action: ice.MergeAction(map[string]*ice.Action{}, ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
if m.Option(CODE) != "" { if m.Option(CODE) != "" {
m.RenderCmd(m.PrefixKey(), m.Cmdx(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(CODE))) m.RenderCmd(m.PrefixKey(), m.Cmdx(m.PrefixKey(), mdb.CREATE, m.OptionSimple(CODE)))
} }
}}, }},
}}) }})

View File

@ -75,6 +75,10 @@ func (m *Message) SplitIndex(str string, arg ...string) *Message {
return m.Split(str, kit.Simple(INDEX, arg)...) return m.Split(str, kit.Simple(INDEX, arg)...)
} }
func (m *Message) PushDetail(value Any, arg ...string) *Message { func (m *Message) PushDetail(value Any, arg ...string) *Message {
switch v := value.(type) {
case string:
value = kit.UnMarshal(v)
}
return m.Push(CACHE_DETAIL, value, kit.Split(kit.Join(arg))) return m.Push(CACHE_DETAIL, value, kit.Split(kit.Join(arg)))
} }
func (m *Message) PushRecord(value Any, arg ...string) *Message { func (m *Message) PushRecord(value Any, arg ...string) *Message {
@ -131,6 +135,9 @@ func (m *Message) AppendTrans(cb func(value string, key string, index int) strin
return m return m
} }
func (m *Message) SetAppend(arg ...string) *Message { func (m *Message) SetAppend(arg ...string) *Message {
if len(arg) == 0 {
m.OptionFields("")
}
return m.Set(MSG_APPEND, arg...) return m.Set(MSG_APPEND, arg...)
} }
func (m *Message) SetResult(arg ...string) *Message { func (m *Message) SetResult(arg ...string) *Message {