1
0
mirror of https://shylinux.com/x/icebergs synced 2025-06-26 18:37:29 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-04-20 19:26:26 +08:00
parent cc820576f0
commit a404a7cb08
12 changed files with 34 additions and 12 deletions

View File

@ -170,6 +170,12 @@ const (
USR_ICONS_VOLCANOS = "usr/icons/volcanos.png"
USR_ICONS = "usr/icons/"
V = "/v/"
M = "/m/"
P = "/p/"
X = "/x/"
S = "/s/"
C = "/c/"
INTSHELL = "/intshell/"
VOLCANOS = "/volcanos/"
VOLCANOS_PLUGIN = "/volcanos/plugin/"
@ -259,6 +265,8 @@ func SplitPath(m *ice.Message, p string) []string {
} else if kit.HasPrefix(p, REQUIRE) {
ls := kit.Split(p, PS)
return []string{ice.USR_REQUIRE + path.Join(ls[1:4]...) + PS, path.Join(ls[4:]...)}
} else if kit.HasPrefix(p, P) {
p = strings.TrimPrefix(p, P)
}
line := kit.Select("1", strings.Split(p, DF), 1)
p = strings.TrimPrefix(p, kit.Path("")+PS)

View File

@ -135,7 +135,7 @@ func RenderMain(m *ice.Message) *ice.Message {
}
m.Options(TITLE, kit.Select("localhost:9020", UserWeb(m).Host, m.Option(ice.MSG_USERPOD)))
m.Options(nfs.SCRIPT, ice.SRC_MAIN_JS, nfs.VERSION, RenderVersion(m))
m.OptionDefault(mdb.ICONS, "/require/"+ice.Info.NodeIcon)
m.OptionDefault(mdb.ICONS, nfs.P+ice.Info.NodeIcon+m.Option(nfs.VERSION))
return m.RenderResult(kit.Renders(m.Cmdx(nfs.CAT, ice.SRC_MAIN_HTML), m))
}
func RenderCmds(m *ice.Message, cmds ...ice.Any) {

View File

@ -89,7 +89,9 @@ func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool {
return true
}
func _serve_static(msg *ice.Message, w http.ResponseWriter, r *http.Request) bool {
if p := path.Join(kit.Select(ice.USR_VOLCANOS, ice.USR_INTSHELL, msg.IsCliUA()), r.URL.Path); nfs.Exists(msg, p) {
if strings.HasPrefix(r.URL.Path, nfs.V) {
return Render(msg, ice.RENDER_DOWNLOAD, path.Join(ice.USR_VOLCANOS, strings.TrimPrefix(r.URL.Path, nfs.V)))
} else if p := path.Join(kit.Select(ice.USR_VOLCANOS, ice.USR_INTSHELL, msg.IsCliUA()), r.URL.Path); nfs.Exists(msg, p) {
return Render(msg, ice.RENDER_DOWNLOAD, p)
} else if p = path.Join(nfs.USR, r.URL.Path); kit.HasPrefix(r.URL.Path, nfs.VOLCANOS, nfs.INTSHELL) && nfs.Exists(msg, p) {
return Render(msg, ice.RENDER_DOWNLOAD, p)

View File

@ -295,6 +295,7 @@ const SPACE = "space"
func init() {
Index.MergeCommands(ice.Commands{
"p": {Help: "资源", Actions: ApiWhiteAction(), Hand: func(m *ice.Message, arg ...string) { ShareLocalFile(m, arg...) }},
"s": {Help: "空间", Actions: ApiWhiteAction(), Hand: func(m *ice.Message, arg ...string) { m.Cmdy(CHAT_POD, arg) }},
"c": {Help: "命令", Actions: ApiWhiteAction(), Hand: func(m *ice.Message, arg ...string) { m.Cmdy(CHAT_CMD, arg) }},
SPACE: {Name: "space name cmds auto", Help: "空间站", Actions: ice.MergeActions(ice.Actions{

View File

@ -61,7 +61,7 @@ func toastContent(m *ice.Message, state string, arg ...ice.Any) string {
}
}
func ToastSuccess(m *ice.Message, arg ...ice.Any) {
Toast(m, toastContent(m, ice.SUCCESS, arg...), "", cli.TIME_3s)
Toast(m, toastContent(m, ice.SUCCESS, arg...), "", cli.TIME_1s)
}
func ToastFailure(m *ice.Message, arg ...ice.Any) {
Toast(m, toastContent(m, ice.FAILURE, arg...), "", m.Option(ice.TOAST_DURATION, "-1")).Sleep(cli.TIME_3s)
@ -104,7 +104,7 @@ func GoToast(m *ice.Message, cb func(toast func(name string, count, total int))
m.Sleep(m.Option(ice.TOAST_DURATION))
} else {
icon = Icons[ice.SUCCESS]
m.Option(ice.TOAST_DURATION, cli.TIME_3s)
m.Option(ice.TOAST_DURATION, cli.TIME_1s)
toast(ice.SUCCESS, _total, _total)
}
Count(m, kit.FuncName(1), toastTitle(m), kit.FmtDuration(time.Now().Sub(begin)))

View File

@ -1,5 +1,5 @@
body.light fieldset.web.chat.message>div.output { background-color:white; }
body.light fieldset.web.chat.message>div.output>div.layout>div.layout>div.content>div.list { background-color:#e3e3e2; }
body.light fieldset.web.chat.message>div.output>div.layout>div.layout>div.content>div.list { background-color:#e3e3e2; overflow-x:hidden; }
body.light fieldset.web.chat.message>div.output>div.layout>div.layout>div.content>div.list>div.item:not(.plug).send div.content { background-color:#94ec69; }
fieldset.web.chat.message>div.output>div.project>div.title { background-color:var(--plugin-bg-color); padding:var(--button-padding); display:flex; justify-content:space-between; position:sticky; top:0; z-index:2; }
fieldset.web.chat.message>div.output>div.project>div.title i:hover { background-color:var(--hover-bg-color); cursor:pointer; }

View File

@ -103,7 +103,7 @@ func init() {
m.Cmdy(NAVIGATE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH))
}},
}), Hand: func(m *ice.Message, arg ...string) {
if kit.HasPrefix(arg[0], nfs.VOLCANOS, nfs.REQUIRE, ice.HTTP) {
if kit.HasPrefix(arg[0], nfs.VOLCANOS, nfs.REQUIRE, nfs.P, ice.HTTP) {
if kit.HasPrefix(arg[0], ice.HTTP) && strings.Contains(arg[0], nfs.PLUGIN) && !strings.Contains(arg[0], nfs.VOLCANOS_PLUGIN) {
arg[0] = strings.Replace(arg[0], nfs.PLUGIN, nfs.VOLCANOS_PLUGIN, 1)
} else if kit.HasPrefix(arg[0], nfs.REQUIRE_SRC) {
@ -114,6 +114,14 @@ func init() {
} else if kit.HasPrefix(arg[0], nfs.REQUIRE) {
ls := strings.Split(strings.Split(strings.TrimPrefix(arg[0], nfs.REQUIRE), "?")[0], nfs.SRC)
m.Options(nfs.PATH, kit.Join(kit.Slice(ls, 0, -1), nfs.PS)+nfs.SRC, nfs.FILE, kit.Select("", ls, -1))
} else if kit.HasPrefix(arg[0], nfs.P) {
ls := kit.Split(arg[0], nfs.PS)
m.Debug("what %v", ls)
if ls[1] == ice.SRC {
m.Options(nfs.PATH, nfs.SRC, nfs.FILE, kit.Join(kit.Slice(ls, 2, -1), nfs.PS))
} else {
m.Options(nfs.PATH, kit.Join(kit.Slice(ls, 1, 3), nfs.PS)+nfs.PS, nfs.FILE, kit.Join(kit.Slice(ls, 3, -1), nfs.PS))
}
}
m.Echo(m.Cmdx(web.SPIDE, ice.OPS, web.SPIDE_RAW, http.MethodGet, arg[0]))
m.Options("mode", "simple", lex.PARSE, kit.Ext(kit.ParseURL(arg[0]).Path))

View File

@ -60,6 +60,8 @@ func init() {
web.Index.MergeCommands(ice.Commands{ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { aaa.White(m, nfs.REQUIRE) }},
nfs.REQUIRE_SRC: {Hand: func(m *ice.Message, arg ...string) { web.ShareLocalFile(m, ice.SRC, path.Join(arg...)) }},
nfs.REQUIRE_USR: {Hand: func(m *ice.Message, arg ...string) { web.ShareLocalFile(m, ice.USR, path.Join(arg...)) }},
"m": {Actions: web.ApiWhiteAction(), Hand: func(m *ice.Message, arg ...string) { m.Cmdy(nfs.REQUIRE_MODULES, arg) }},
"/p/modules/": {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(nfs.REQUIRE_MODULES, arg) }},
nfs.REQUIRE_MODULES: {Hand: func(m *ice.Message, arg ...string) {
p := path.Join(nfs.USR_MODULES, path.Join(arg...))
kit.If(!nfs.Exists(m, p), func() {

View File

@ -20,13 +20,13 @@ func _volcanos(m *ice.Message, p ...string) string { return ice.USR_VOLCANOS + p
func _publish(m *ice.Message, p ...string) string { return ice.USR_PUBLISH + path.Join(p...) }
func _require(m *ice.Message, p string) string {
if kit.HasPrefix(p, nfs.USR_MODULES) {
return path.Join("/require/modules/", strings.TrimPrefix(p, nfs.USR_MODULES))
return path.Join(nfs.M, strings.TrimPrefix(p, nfs.USR_MODULES))
} else if kit.HasPrefix(p, ice.USR_VOLCANOS) {
return path.Join("/volcanos/", strings.TrimPrefix(p, ice.USR_VOLCANOS))
return path.Join(nfs.V, strings.TrimPrefix(p, ice.USR_VOLCANOS))
} else if kit.HasPrefix(p, nfs.SRC, nfs.USR) {
return path.Join("/require/", p)
return path.Join(nfs.P, p)
} else {
return path.Join("/volcanos/", p)
return path.Join(nfs.V, p)
}
}
func _webpack_css(m *ice.Message, css, js io.Writer, p string) {

View File

@ -38,6 +38,7 @@ fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.inner.output di
}
body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { border:var(--box-border); border-left:var(--box-notice3); }
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { box-shadow:var(--th-box-shadow); border:0; border-left:var(--box-notice3); }
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell]:hover { box-shadow:var(--notice-box-shadow); }
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { background-color:var(--code-bg-color); color:var(--code-fg-color); padding:var(--button-padding); margin-top:var(--button-margin); }
fieldset.web.wiki.portal>div.output>div.layout>div.main table.content div.story[data-type=spark][data-name=shell] { margin-top:unset; }
fieldset.web.wiki.portal.home>div.output>div.layout>div.main p { white-space:pre-wrap; text-align:center; }

View File

@ -317,7 +317,7 @@ func (m *Message) FileURI(dir string) string {
} else if strings.HasPrefix(dir, USR_VOLCANOS) {
dir = strings.TrimPrefix(dir, USR)
} else {
dir = kit.MergeURL(path.Join(PS, REQUIRE, dir), POD, m.Option(MSG_USERPOD))
dir = kit.MergeURL(path.Join(PS, "p", dir), POD, m.Option(MSG_USERPOD))
}
if m.Option(MSG_USERWEB0) != "" {
dir = kit.MergeURL2(m.Option(MSG_USERWEB), dir)

View File

@ -264,7 +264,7 @@ func (m *Message) Resource(file string, arg ...string) string {
} else if strings.HasPrefix(file, PS) {
return arg[0] + file
} else if kit.HasPrefix(file, "src", "usr") {
return arg[0] + "/require/" + file
return arg[0] + "/p/" + file
}
}
return m.resource(file)