diff --git a/base/web/dream.go b/base/web/dream.go index d15fb4ae..06c23d0e 100644 --- a/base/web/dream.go +++ b/base/web/dream.go @@ -180,9 +180,10 @@ func init() { }) m.RenameAppend(nfs.PATH, arg[0]) mdb.HashInputs(m, arg) - p := m.Cmdv(SPIDE, ice.DEV, CLIENT_ORIGIN) - m.Spawn().SplitIndex(m.Cmdx(SPIDE, ice.DEV, SPIDE_RAW, http.MethodGet, S(), cli.GOOS, runtime.GOOS, cli.GOARCH, runtime.GOARCH)).Table(func(value ice.Maps) { - m.Push(arg[0], p+S(value[mdb.NAME])).Push(nfs.SIZE, value[nfs.SIZE]).Push(mdb.TIME, value[mdb.TIME]) + DreamListSpide(m, []string{ice.DEV}, MASTER, func(dev, origin string) { + m.Spawn().SplitIndex(m.Cmdx(SPIDE, dev, SPIDE_RAW, http.MethodGet, S(), cli.GOOS, runtime.GOOS, cli.GOARCH, runtime.GOARCH)).Table(func(value ice.Maps) { + m.Push(arg[0], origin+S(value[mdb.NAME])).Push(nfs.SIZE, value[nfs.SIZE]).Push(mdb.TIME, value[mdb.TIME]) + }) }) case mdb.ICONS: mdb.HashInputs(m, arg) @@ -442,3 +443,15 @@ func DreamWhiteHandle(m *ice.Message, arg ...string) { aaa.White(m, kit.Keys(DREAM, ctx.ACTION, m.PrefixKey())) aaa.White(m, kit.Keys(ctx.ShortCmd(m.PrefixKey()), ctx.ACTION, DREAM_ACTION)) } +func DreamListSpide(m *ice.Message, list []string, types string, cb func(dev, origin string)) { + m.Cmds(DREAM).Table(func(value ice.Maps) { + kit.If(value[mdb.TYPE] == types, func() { list = append(list, value[mdb.NAME]) }) + }) + GoToast(m, "", func(toast func(name string, count, total int)) []string { + kit.For(list, func(index int, dev string) { + toast(dev, index, len(list)) + cb(dev, m.Cmdv(SPIDE, dev, CLIENT_ORIGIN)) + }) + return nil + }) +} diff --git a/core/chat/pod.go b/core/chat/pod.go index 63ecf654..dea4d631 100644 --- a/core/chat/pod.go +++ b/core/chat/pod.go @@ -33,11 +33,9 @@ func init() { } else { m.RenderDownload(path.Join(ice.USR_LOCAL_WORK, arg[0], ice.BIN_ICE_BIN)) } + } else if len(arg) == 0 || arg[0] == "" { + web.RenderMain(m) } else { - if len(arg) == 0 || arg[0] == "" { - web.RenderMain(m) - return - } if m.Cmd(web.SPACE, arg[0]).Length() == 0 && nfs.Exists(m, path.Join(ice.USR_LOCAL_WORK, arg[0])) { m.Cmd(web.DREAM, cli.START, kit.Dict(mdb.NAME, arg[0])) } diff --git a/misc/git/service.go b/misc/git/service.go index 3da9e3c7..4f360e42 100644 --- a/misc/git/service.go +++ b/misc/git/service.go @@ -163,10 +163,11 @@ func init() { web.DREAM_INPUTS: {Hand: func(m *ice.Message, arg ...string) { kit.If(arg[0] == REPOS, func() { mdb.HashSelect(m).Sort(REPOS).Cut("repos,version,time") - p := m.Cmdv(web.SPIDE, ice.DEV, web.CLIENT_ORIGIN) - m.Spawn().SplitIndex(m.Cmdx(web.SPIDE, ice.DEV, web.SPIDE_RAW, http.MethodGet, web.C(web.CODE_GIT_SERVICE))).Table(func(value ice.Maps) { - value[nfs.REPOS] = p + web.X(value[nfs.REPOS]) - m.Push("", value, kit.Split("repos,version,time")) + web.DreamListSpide(m, []string{ice.DEV}, web.MASTER, func(dev, origin string) { + m.Spawn().SplitIndex(m.Cmdx(web.SPIDE, dev, web.SPIDE_RAW, http.MethodGet, web.C(web.CODE_GIT_SERVICE))).Table(func(value ice.Maps) { + value[nfs.REPOS] = origin + web.X(value[nfs.REPOS]) + m.Push("", value, kit.Split("repos,version,time")) + }) }) }) }},