From 7c3af575c7a3c3060ba6de371b736f29d63addf5 Mon Sep 17 00:00:00 2001 From: shy Date: Mon, 30 Jun 2025 19:36:00 +0800 Subject: [PATCH] add some --- base/web/dream.go | 10 ++++++---- base/web/serve.go | 5 +++++ core/chat/macos/applications.go | 24 ------------------------ core/chat/macos/desktop.css | 12 ++++++++++-- core/chat/macos/desktop.go | 22 +++++++++++----------- core/chat/macos/desktop.js | 17 ++++++++++++++--- core/chat/macos/dock.go | 4 +++- core/chat/macos/finder.go | 2 +- core/chat/macos/finder.js | 24 +++++++++++++----------- core/chat/macos/macos.go | 29 +++++++++++++++++++++++++---- core/chat/message.go | 2 +- core/wiki/portal.css | 6 ++++-- core/wiki/portal.js | 1 + core/wiki/spark.go | 5 ++--- misc/git/tags.go | 1 + misc/wx/agent.js | 21 +++++++++++++-------- 16 files changed, 110 insertions(+), 75 deletions(-) diff --git a/base/web/dream.go b/base/web/dream.go index 04890e89..1075719b 100644 --- a/base/web/dream.go +++ b/base/web/dream.go @@ -87,21 +87,23 @@ func _dream_list_more(m *ice.Message) *ice.Message { return } value[mdb.TEXT] = kit.JoinLine(value[nfs.MODULE], value[mdb.TEXT]) - button = append(button, GETTOKEN, OPEN) - kit.If(value[aaa.ACCESS] == "", func() { button = []ice.Any{PORTAL, OPEN} }) + kit.If(aaa.IsTechOrRoot(m), func() { button = append(button, GETTOKEN) }) + kit.If(value[aaa.ACCESS] == "", func() { button = []ice.Any{PORTAL} }) + button = append(button, OPEN) case SERVER: if !m.IsCliUA() { value[mdb.TEXT] = kit.JoinLine(value[nfs.MODULE], value[mdb.TEXT]) } else if !strings.HasPrefix(value[mdb.TEXT], ice.HTTP) { return } - button = append(button, SETTOKEN, OPEN) + kit.If(aaa.IsTechOrRoot(m), func() { button = append(button, SETTOKEN) }) + button = append(button, OPEN) case aaa.LOGIN: if m.IsCliUA() { return } value[mdb.TEXT] = kit.JoinWord(value[AGENT], value[cli.SYSTEM], value[aaa.IP], kit.Format(PublicIP(m, value[aaa.IP]))) - button = []ice.Any{GRANT} + defer func() { button = []ice.Any{GRANT} }() default: return } diff --git a/base/web/serve.go b/base/web/serve.go index b3dc3bcd..c41ae1d1 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -232,6 +232,8 @@ func _serve_handle(key string, cmd *ice.Command, m *ice.Message, w http.Response Info.ServeDeleteCount++ } }() + } else { + m.RenderResult() } } func _serve_domain(m *ice.Message) string { @@ -257,6 +259,9 @@ func _serve_auth(m *ice.Message, key string, cmds []string, w http.ResponseWrite defer func() { m.Options(ice.MSG_CMDS, "") }() if strings.Contains(m.Option(ice.MSG_SESSID), " ") { m.Cmdy(kit.Split(m.Option(ice.MSG_SESSID))) + if m.Warn(m.Option("user.status") == "1", "此用户已封号") { + return cmds, false + } } else if aaa.SessCheck(m, m.Option(ice.MSG_SESSID)); m.Option(ice.MSG_USERNAME) == "" { if ls := kit.Simple(mdb.Cache(m, m.Option(ice.MSG_USERIP), func() ice.Any { if !IsLocalHost(m) { diff --git a/core/chat/macos/applications.go b/core/chat/macos/applications.go index 384e953f..d6d3f346 100644 --- a/core/chat/macos/applications.go +++ b/core/chat/macos/applications.go @@ -1,17 +1,10 @@ package macos import ( - "path" - "strings" - ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" - "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/mdb" - "shylinux.com/x/icebergs/base/nfs" - "shylinux.com/x/icebergs/base/web" "shylinux.com/x/icebergs/core/code" - kit "shylinux.com/x/toolkits" ) const APPLICATIONS = "applications" @@ -25,23 +18,6 @@ func init() { }, PodCmdAction(), CmdHashAction("space,index,args"), mdb.ClearOnExitHashAction())}, }) } -func install(m *ice.Message, cmd, icon, index string, arg ...string) string { - if icon == "" { - return "" - } else if !kit.HasPrefix(icon, nfs.PS, web.HTTP) && !nfs.Exists(m, icon) && !nfs.Exists(m, ice.USR_ICONS+icon, func(p string) { icon = p }) { - if strings.Contains(kit.Path(""), nfs.USR_LOCAL_WORK) && nfs.Exists(m, path.Join(strings.Split(kit.Path(""), nfs.USR_LOCAL_WORK)[0], ice.USR_ICONS+icon)) { - icon = ice.USR_ICONS + icon - } else { - icon = path.Join(path.Dir(ctx.GetCmdFile(m, m.PrefixKey())), icon) - } - } - name := kit.TrimExt(path.Base(icon), nfs.PNG, nfs.JPG, nfs.JPEG) - if !strings.HasPrefix(icon, nfs.USR_ICONS) { - name = kit.Select("", kit.Split(index, "."), -1) - } - m.Cmd(Prefix(cmd), mdb.CREATE, mdb.NAME, name, mdb.ICON, icon, ctx.INDEX, index, arg) - return icon -} func AppInstall(m *ice.Message, icon, index string, arg ...string) string { return install(m, APPLICATIONS, icon, index, arg...) } diff --git a/core/chat/macos/desktop.css b/core/chat/macos/desktop.css index e9ecb1f8..cc3e8647 100644 --- a/core/chat/macos/desktop.css +++ b/core/chat/macos/desktop.css @@ -27,6 +27,7 @@ fieldset.desktop>div.output>div.desktop { display:flex; flex-direction:column; f fieldset.desktop>div.output>div.desktop:not(.select) { display:none; } fieldset.desktop>div.output>div.desktop>div.item { text-align:center; } fieldset.desktop>div.output>div.desktop>div.item img { object-fit:contain; height:var(--desktop-icon-size); width:var(--desktop-icon-size); } +fieldset.desktop>div.output>div.desktop>div.item.portal img { padding:8px; border-radius:20px; } fieldset.desktop>div.output>div.desktop>div.item>div.name { color:white; white-space:pre; font-size:var(--code-font-size); width:var(--desktop-icon-size); overflow:hidden; } fieldset.desktop>div.output>div.desktop>fieldset { border:0; position:absolute; } fieldset.desktop>div.output>div.desktop>fieldset>legend { box-shadow:none; padding:0 var(--input-padding); margin:var(--button-margin); } @@ -68,6 +69,10 @@ fieldset.desktop>div.output>div.desktop>fieldset.web.chat.macos.finder>div.statu fieldset.desktop>div.output>div.desktop>fieldset.web.chat.macos.finder>div.output div.item.disable { display:none; } fieldset.desktop>div.output>div.desktop>fieldset.web.team.gonganxitong.service>form.option input { display:none; } fieldset.desktop>div.output>div.desktop>fieldset.web.team.gonganxitong.recent>form.option input { display:none; } +fieldset.desktop>div.output>div.desktop>fieldset.web.team.portal>div.action { top:48px; } +fieldset.desktop>div.output>div.desktop>fieldset.web.team.portal>div.output div.item.card>div.action { display:none; } +fieldset.desktop>div.output>div.desktop>fieldset.web.chat.iframe>div.output { background-color:var(--output-bg-color); color:var(--output-fg-color); } + fieldset.desktop>div.output>fieldset.web.chat.macos.dock>div.output div.item.disable { display:none; } fieldset.desktop>div.output>div.desktop>div.item.disable { display:none; } fieldset.macos.menu>div.output>div.item { padding:0 var(--button-padding); height:var(--desktop-menu-height); float:right; } @@ -76,7 +81,9 @@ body.mobile fieldset.macos.menu>div.output>div.tabs { display:none; } body.mobile fieldset.macos.menu>div.output>div.icon.create { display:none; } body.mobile fieldset.macos.menu>div.output>div.item.search { display:none; } body.mobile fieldset.macos.menu>div.output>div.item.notify { display:none; } -fieldset.macos.menu>div.output>div.item.avatar>img { padding:0; height:var(--desktop-menu-height); } +body.mobile fieldset.macos.menu>div.output>div.item.usernick { display:none; } +body.mobile fieldset.macos.menu>div.output>div.item.qrcode { display:none; } +fieldset.macos.menu>div.output>div.item.avatar>img { border-radius:20px; padding:0; height:var(--desktop-menu-height); } fieldset.macos.menu>div.output>div.menu { padding:0 var(--button-padding); float:left; } body.mobile fieldset.macos.menu>div.output>div.menu { padding:0 var(--input-padding); } fieldset.macos.menu>div.output>div.tabs { font-style:italic; padding:0 var(--input-padding); float:left; } @@ -89,8 +96,8 @@ fieldset.macos.dock>div.output>div.item { text-align:center; align-self:baseline fieldset.macos.dock>div.output>div.item img { object-fit:contain; min-height:var(--desktop-icon-size); width:var(--desktop-icon-size); transition:width 0.3s; } fieldset.macos.dock>div.output>div.item>div.name { display:none; } fieldset.macos.finder>div.output div.content>div.item { text-align:center; float:left; width:var(--desktop-icon-size); } -fieldset.macos.finder>div.output div.content>div.item img { object-fit:contain; width:var(--desktop-icon-size); } fieldset.macos.finder>div.output div.content>div.item img { object-fit:contain; width:var(--desktop-icon-size); height:var(--desktop-icon-size); } +fieldset.macos.finder>div.output div.content>div.item.portal img { padding:8px; border-radius:20px; } fieldset.macos.finder>div.output div.content>div.item div.name { font-size:var(--code-font-size); white-space:pre; text-align:center; overflow:hidden; } fieldset.desktop>div.output>div.desktop fieldset table.content tbody tr:nth-child(odd):not(:hover) { background-color:var(--output-bg-color); } fieldset.desktop>div.output>div.desktop fieldset table.content tbody tr:nth-child(even):not(:hover) { background-color:var(--plugin-bg-color); } @@ -99,6 +106,7 @@ body:not(.mobile) fieldset.macos.dock>div.output>div.item:hover { background-col body:not(.mobile) fieldset.macos.dock>div.output>div.item img:hover { width:160px; transition:width 0.3s; } body:not(.mobile) fieldset.desktop>div.output>fieldset.macos.dock:hover { margin-left:-40px; transition:margin-left 0.3s; } body:not(.mobile) fieldset.desktop>div.output>div.desktop>div.item { margin:var(--desktop-icon-margin); } +body:not(.mobile) fieldset.desktop>div.output>div.desktop>div.item:hover { background-color:var(--hover-bg-color); } body:not(.mobile) fieldset.desktop>div.output>fieldset.macos.searchs>form.option>div.item.keyword input { background-color:transparent; width:var(--river-width); } body:not(.mobile) fieldset.desktop>div.output>fieldset.macos.searchs>div.action input { background-color:transparent; } body:not(.mobile) fieldset.desktop>div.output>div.desktop>fieldset>legend:not(:hover) { background-color:transparent; } diff --git a/core/chat/macos/desktop.go b/core/chat/macos/desktop.go index f3afc92c..1f55384d 100644 --- a/core/chat/macos/desktop.go +++ b/core/chat/macos/desktop.go @@ -20,22 +20,22 @@ func init() { }}, ice.CTX_OPEN: {Hand: func(m *ice.Message, arg ...string) { if m.Cmd(DESKTOP).Length() == 0 { - DeskAppend(m, "Books.png", web.WIKI_WORD) - DeskAppend(m, "Photos.png", web.WIKI_FEEL) - DeskAppend(m, "Calendar.png", web.TEAM_PLAN) - DeskAppend(m, "Messages.png", web.CHAT_MESSAGE) + DeskAppend(m, "Messages.png", web.CHAT_MESSAGE, mdb.TEXT, "消息", mdb.SCORE, "1") + DeskAppend(m, "Calendar.png", web.TEAM_PLAN, mdb.TEXT, "日历", mdb.SCORE, "2") + DeskAppend(m, "Photos.png", web.WIKI_FEEL, mdb.TEXT, "相册", mdb.SCORE, "3") + DeskAppend(m, "Books.png", web.WIKI_WORD, mdb.TEXT, "文档", mdb.SCORE, "4") } if m.Cmd(DOCK).Length() == 0 { - DockAppend(m, "Finder.png", Prefix(FINDER)) - DockAppend(m, "Safari.png", web.CHAT_IFRAME) - DockAppend(m, "Terminal.png", web.CODE_XTERM) - DockAppend(m, "git.png", web.CODE_GIT_STATUS) - DockAppend(m, "vimer.png", web.CODE_VIMER) + DockAppend(m, "Finder.png", Prefix(FINDER), mdb.SCORE, "1") + DockAppend(m, "Safari.png", web.CHAT_IFRAME, mdb.SCORE, "2") + DockAppend(m, "vimer.png", web.CODE_VIMER, mdb.SCORE, "3") + DockAppend(m, "git.png", web.CODE_GIT_STATUS, mdb.SCORE, "4") + DockAppend(m, "Terminal.png", web.CODE_XTERM, mdb.SCORE, "5") } m.Travel(func(p *ice.Context, c *ice.Context, key string, cmd *ice.Command) { kit.If(cmd.Icon, func() { if kit.Contains(cmd.Icon, ".ico", ".png", ".jpg") { - cmd.Icon = AppInstall(m, cmd.Icon, m.PrefixKey()) + cmd.Icon = AppInstall(m, cmd.Icon, m.PrefixKey(), mdb.TEXT, cmd.Help) } }) }) @@ -50,7 +50,7 @@ func init() { }}, // web.DREAM_ACTION: {Hand: func(m *ice.Message, arg ...string) { web.DreamProcessIframe(m, arg...) }}, // web.DREAM_ACTION: {Hand: func(m *ice.Message, arg ...string) { web.DreamProcess(m, "", arg, arg...) }}, - }, web.DreamTablesAction(), PodCmdAction(), CmdHashAction(ctx.INDEX), mdb.ExportHashAction())}, + }, web.DreamTablesAction(), PodCmdAction(), CmdHashAction("space,index,args"), mdb.ExportHashAction())}, }) } diff --git a/core/chat/macos/desktop.js b/core/chat/macos/desktop.js index a602dfec..c3c66180 100644 --- a/core/chat/macos/desktop.js +++ b/core/chat/macos/desktop.js @@ -71,7 +71,7 @@ Volcanos(chat.ONIMPORT, { }) }) }, __item: function(can, msg, target) { var index = 0; can.onimport.icon(can, msg = msg||can._msg, target, function(target, item) { can.page.Modify(can, target, { onclick: function(event) { can.onimport._window(can, item) }, - oncontextmenu: function(event) { var carte = can.user.carteRight(event, can, { + oncontextmenu: function(event) { if (!can.user.isTechOrRoot(can)) { return } var carte = can.user.carteRight(event, can, { remove: function() { can.runAction(event, mdb.REMOVE, [item.hash]) }, }); can.page.style(can, carte._target, html.TOP, event.y) }, }) }) }, @@ -79,13 +79,19 @@ Volcanos(chat.ONIMPORT, { item.height = can.base.Max(html.DESKTOP_HEIGHT, can.ConfHeight()-125), item.width = can.base.Max(html.DESKTOP_WIDTH, can.ConfWidth()) item.left = (can.ConfWidth()-item.width)/2, item.top = can.base.Min((can.ConfHeight()-item.height-125)/4+25, 25) var style = item.style - if (item.index == web.CHAT_IFRAME && item.style == "portal") { + if (item.index == web.CHAT_IFRAME && (item.style == "portal" || item._style == "portal") || can.base.beginWith(item.index, "web.team.") && can.base.endWith(item.index, ".portal")) { // item.title = "ContextOS", item.width = 390, item.height = can.base.Max(844, can.ConfHeight()-25) item.left = can.ConfWidth()-item.width, item.top = 25 } item.type = html.PLUGIN, item.style = {left: item.left, top: item.top, height: item.height, width: item.width} can.onappend.plugin(can, item, function(sub) { + can.page.Select(can, sub._legend, html.SPAN, function(target) { + target.innerText = can.user.trans(can, sub.ConfIndex(), sub.ConfHelp()) + }) + if (can.page.tagis(sub._target, "fieldset.web.team.portal")) { + sub.onimport.size(sub, item.height = can.base.Max(844, can.ConfHeight()-25), item.width = 390, false) + } can.onappend.style(sub, style) var index = 0; can.core.Item({ close: {color: "#f95f57", inner: "x", onclick: function(event) { sub.onaction._close(event, sub) }}, @@ -107,7 +113,12 @@ Volcanos(chat.ONIMPORT, { sub.onexport.record = function(sub, value, key, item) { can.onimport._window(can, item) } sub.onexport.marginTop = function() { return 25 }, sub.onexport.marginBottom = function() { return 100 } sub.onexport.actionHeight = function(sub) { return can.page.ClassList.has(can, sub._target, html.OUTPUT)? 0: html.ACTION_HEIGHT+20 } - sub.onexport.output = function() { sub.onimport.size(sub, item.height, can.base.Min(sub._target.offsetWidth, item.width), false) + sub.onexport.output = function(_sub, msg) { + if (msg.Option("display.style") == "portal") { + sub.onimport.size(sub, item.height, can.base.Max(can.base.Min(sub._target.offsetWidth, item.width), 390), false) + } else { + sub.onimport.size(sub, item.height, can.base.Min(sub._target.offsetWidth, item.width), false) + } sub._target._meta.args = can.base.trim(can.page.SelectArgs(can, sub._option, "", function(target) { return target.value })), can.onexport.tabs(can) } can.onappend.style(can, html.FLOAT, sub._target), can.ondetail.select(can, sub._target, sub) diff --git a/core/chat/macos/dock.go b/core/chat/macos/dock.go index fd184ab9..137cc142 100644 --- a/core/chat/macos/dock.go +++ b/core/chat/macos/dock.go @@ -14,4 +14,6 @@ func init() { }) } -func DockAppend(m *ice.Message, icon, index string) { install(m, DOCK, icon, index) } +func DockAppend(m *ice.Message, icon, index string, arg ...string) { + install(m, DOCK, icon, index, arg...) +} diff --git a/core/chat/macos/finder.go b/core/chat/macos/finder.go index c2962fac..5a7e89f2 100644 --- a/core/chat/macos/finder.go +++ b/core/chat/macos/finder.go @@ -10,7 +10,7 @@ const FINDER = "finder" func init() { Index.MergeCommands(ice.Commands{ - FINDER: {Name: "finder list", Help: "应用", Role: aaa.VOID, Actions: ice.MergeActions(ice.Actions{ + FINDER: {Name: "finder list", Help: "系统资源", Role: aaa.VOID, Actions: ice.MergeActions(ice.Actions{ mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(APPLICATIONS, mdb.INPUTS, arg) }}, mdb.INSERT: {Name: "insert space index* args name* icon*@icon", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(APPLICATIONS, mdb.CREATE, arg) }}, }, CmdHashAction(mdb.NAME))}, diff --git a/core/chat/macos/finder.js b/core/chat/macos/finder.js index cf6799c2..813a021e 100644 --- a/core/chat/macos/finder.js +++ b/core/chat/macos/finder.js @@ -1,18 +1,20 @@ Volcanos(chat.ONIMPORT, { - _init: function(can, msg) { can.ui = can.onappend.layout(can), msg.Table(function(value, index) { value._select = index == 0 - can.onimport.item(can, value, function(event, item) { if (can.onmotion.cache(can, function() { return value.name }, can.ui.content)) { return } - can.runActionCommand(event, value.index, [], function(msg) { - switch (value.name) { - case ".": - case "applications": can.onimport.icons(can, msg, can.ui.content); break - default: can.onappend.table(can, msg, null, can.ui.content) - } can.onimport.layout(can) + _init: function(can, msg) { + can.ui = can.onappend.layout(can), msg.Table(function(value, index) { value._select = index == 0 + can.onimport.item(can, value, function(event, item) { if (can.onmotion.cache(can, function() { return value.name }, can.ui.content)) { return } + can.runActionCommand(event, value.index, [], function(msg) { + switch (value.name) { + case ".": + case "applications": can.onimport.icons(can, msg, can.ui.content); break + default: can.onappend.table(can, msg, null, can.ui.content) + } can.onimport.layout(can) + }) }) - }) - }), can.onmotion.hidden(can, can.ui.project) }, + }), can.onmotion.hidden(can, can.ui.project) + }, icons: function(can, msg, target) { can.onimport.icon(can, msg = msg||can._msg, target, function(target, item) { can.page.Modify(can, target, { onclick: function(event) { can.sup.onexport.record(can.sup, item.name, mdb.NAME, item) }, - oncontextmenu: function(event) { can.user.carteRight(event, can, { + oncontextmenu: function(event) { can.user.isTechOrRoot(can) && can.user.carteRight(event, can, { "add to desktop": function() { can.sup.onappend.desktop(item) }, "add to dock": function() { can.sup.onappend.dock(item) }, }, []) }, draggable: true, ondragstart: function(event) { window._drag_item = item }, diff --git a/core/chat/macos/macos.go b/core/chat/macos/macos.go index ed0ea827..535a3ce2 100644 --- a/core/chat/macos/macos.go +++ b/core/chat/macos/macos.go @@ -1,6 +1,9 @@ package macos import ( + "path" + "strings" + ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/cli" @@ -50,17 +53,35 @@ func disableApp(m *ice.Message) *ice.Message { }) return m } +func install(m *ice.Message, cmd, icon, index string, arg ...string) string { + if icon == "" { + return "" + } else if !kit.HasPrefix(icon, nfs.PS, web.HTTP) && !nfs.Exists(m, icon) && !nfs.Exists(m, ice.USR_ICONS+icon, func(p string) { icon = p }) { + if strings.Contains(kit.Path(""), nfs.USR_LOCAL_WORK) && nfs.Exists(m, path.Join(strings.Split(kit.Path(""), nfs.USR_LOCAL_WORK)[0], ice.USR_ICONS+icon)) { + icon = ice.USR_ICONS + icon + } else { + icon = path.Join(path.Dir(ctx.GetCmdFile(m, m.PrefixKey())), icon) + } + } + name := kit.TrimExt(path.Base(icon), nfs.PNG, nfs.JPG, nfs.JPEG) + if !strings.HasPrefix(icon, nfs.USR_ICONS) { + name = kit.Select("", kit.Split(index, "."), -1) + } + m.Cmd(Prefix(cmd), mdb.CREATE, mdb.NAME, name, mdb.ICON, icon, ctx.INDEX, index, mdb.SCORE, "1000", arg) + return icon +} func PodCmdAction(arg ...string) ice.Actions { file := kit.FileLine(-1, 100) return ice.Actions{ mdb.SELECT: {Name: "list hash auto create", Hand: func(m *ice.Message, arg ...string) { defer m.Display(m.FileURI(file)) - msg := disableApp(mdb.HashSelect(m.Spawn(), arg...).Sort(mdb.NAME)) + msg := disableApp(mdb.HashSelect(m.Spawn(), arg...)) web.PushPodCmd(msg, m.PrefixKey(), arg...) has := map[string]bool{} msg.Table(func(value ice.Maps, index int, head []string) { - kit.If(!has[value[ctx.INDEX]], func() { has[value[ctx.INDEX]] = true; m.Push("", value, head) }) + kit.If(!has[value[ctx.INDEX]+value[ctx.ARGS]], func() { has[value[ctx.INDEX]+value[ctx.ARGS]] = true; m.Push("", value, head) }) }) + m.Sort("score,space,index,args", ice.INT) }}, } } @@ -77,7 +98,7 @@ func CmdHashAction(arg ...string) ice.Actions { }}, mdb.SELECT: {Hand: func(m *ice.Message, arg ...string) { m.Option(html.FAVICON, m.Cmd(web.SPACE, ice.INFO).Append(mdb.ICONS)) - disableApp(mdb.HashSelect(m, arg...).Sort(mdb.NAME).Display(m.FileURI(file))) + disableApp(mdb.HashSelect(m, arg...).Sort("score,space,index,args").Display(m.FileURI(file))) }}, - }, mdb.HashAction(mdb.SHORT, kit.Select("", arg, 0), mdb.FIELD, kit.Select("time,hash,icon,name,text,space,index,args", arg, 1), kit.Slice(arg, 2))) + }, mdb.HashAction(mdb.SHORT, kit.Select("", arg, 0), mdb.FIELD, kit.Select("time,hash,icon,name,text,score,space,index,args", arg, 1), kit.Slice(arg, 2))) } diff --git a/core/chat/message.go b/core/chat/message.go index 73b03307..76c6074c 100644 --- a/core/chat/message.go +++ b/core/chat/message.go @@ -18,7 +18,7 @@ const MESSAGE = "message" func init() { Index.MergeCommands(ice.Commands{ - MESSAGE: {Name: "message refresh", Help: "聊天", Icon: "Messages.png", Actions: ice.MergeActions(ice.Actions{ + MESSAGE: {Name: "message refresh", Help: "聊天消息", Icon: "Messages.png", Actions: ice.MergeActions(ice.Actions{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { MessageCreate(m, aaa.APPLY, html.ICONS_MAIL) MessageCreate(m, web.DREAM, html.ICONS_DREAM) diff --git a/core/wiki/portal.css b/core/wiki/portal.css index ba41c4b9..2f5c864b 100644 --- a/core/wiki/portal.css +++ b/core/wiki/portal.css @@ -4,8 +4,8 @@ $fieldset>div.header { display:none; } $output { padding:0; } $output>div.header { box-shadow:var(--box-shadow); background-color:var(--panel-bg-color); height:var(--portal-header-height); --hover-bg-color:var(--plugin-bg-color); } $output>div.header div.list { display:flex; } -$output>div.header div.story[data-name=navmenu] { --hover-fg-color:white; } $output>div.header div.story div.item span { white-space:pre; overflow:hidden; } +$output>div.header div.story[data-name=navmenu] { --hover-fg-color:white; } $output>div.header div.story[data-name=navmenu] { display:flex; justify-content:center; } $output>div.header div.story[data-name=navmenu] div.item { text-align:center; padding:var(--legend-padding); height:var(--portal-header-height); } $output>div.header div.story[data-name=navmenu] div.item { display:flex; align-items:center; } @@ -31,13 +31,15 @@ $output>div.layout>div.aside div.item.section { padding-left:var(--legend-paddin $output>div.layout>div.main { padding:var(--portal-main-padding); height:600px; min-width:390px; max-width:var(--portal-max-width); overflow:auto; overflow-x:hidden; } $output>div.layout>div.main img[data-name="qrcode"] { margin-top:20px; width:240px !important; } body.width1 $output>div.layout>div.main>div.story.flex { flex-direction:column; } -body.width1 $output>div.layout>div.main div.story.column fieldset.inner { width:100%; } +// body.width1 $output>div.layout>div.main div.story.column fieldset.inner { width:100%; } body.width1 $output>div.layout>div.main div.story.column { flex:unset !important; } $output>div.layout>div.main div.story.column { display:flex; flex-direction:column; justify-content:center; } $output>div.layout>div.main div.story.column fieldset.inner>div.output>div.layout>div.layout div.content div.tips { top:5px; right:10px; } $output>div.layout>div.main div.story.column fieldset.inner { box-shadow:none; border:var(--box-border); border-radius:0; } +$output>div.layout>div.main div.story.column fieldset.inner>div.output { width:100%; } $output>div.layout>div.main div.story.column h1 { font-size:24px; font-style:italic; margin-top:0; } $output>div.layout>div.main div.story.column h2 { margin:0 !important; } +$output>div.layout>div.main div.story.column p[data-type=brief] { font-size:1.5em; font-weight:bold; text-align:center; } $output>div.layout>div.main div.story.column li { margin:10px 0; } $output>div.layout>div.main div.story.column ul { margin:10px; } $output>div.layout>div.main div.story.column b { font-size:22px; } diff --git a/core/wiki/portal.js b/core/wiki/portal.js index d416e16a..b8b0b476 100644 --- a/core/wiki/portal.js +++ b/core/wiki/portal.js @@ -58,6 +58,7 @@ Volcanos(chat.ONIMPORT, { }) }, title: function(can, meta, target) { can.isCmdMode() && can.page.tagis(target, html.H1) && can.onexport && can.onexport.title(can, meta.text) }, + brief: function(can, meta, target) { can.isCmdMode() && can.user.agent.init(can, meta.text) }, button: function(can, meta, target) { var item = can.base.Obj(meta.meta); target.onclick = function(event) { can.onaction.route(event, can, item.route) } }, layout: function(can, height, width) { if (!can.ui.layout || !can.ui.main) { return } can.ui.layout(height, width), can.ConfWidth(can.ui.main.offsetWidth), padding = can.Conf(html.PADDING) diff --git a/core/wiki/spark.go b/core/wiki/spark.go index 7ad81b69..7eb18a87 100644 --- a/core/wiki/spark.go +++ b/core/wiki/spark.go @@ -99,7 +99,6 @@ func init() { }}, PROJECT: {Hand: func(m *ice.Message, arg ...string) { _spark_project(m, arg...) }}, PRODUCT: {Hand: func(m *ice.Message, arg ...string) { _spark_product(m, arg...) }}, - "raw": {Hand: func(m *ice.Message, arg ...string) { m.Echo(arg[0], kit.TransArgs(arg[1:])...) }}, "html": {Hand: func(m *ice.Message, arg ...string) { m.Echo(arg[0], kit.TransArgs(arg[1:])...) }}, }), Hand: func(m *ice.Message, arg ...string) { m.Option(mdb.META, "") @@ -122,7 +121,7 @@ func _spark_project(m *ice.Message, arg ...string) { func() { defer m.Cmdy(STYLE, COLUMN).Cmdy(STYLE, END) m.Cmdy(TITLE, ice.Info.Title()) - m.Cmdy(SPARK, TITLE, arg[0]).Cmdy(ORDER, arg[1]) + m.Cmdy(BRIEF, arg[0]).Cmdy(ORDER, arg[1]) func() { defer m.Cmdy(STYLE, FLEX).Cmdy(STYLE, END) m.Cmdy(SPARK, html.BUTTON, "体 验", ROUTE, web.SpideOrigin(m, ice.DEMO)) @@ -131,7 +130,7 @@ func _spark_project(m *ice.Message, arg ...string) { }() }() func() { - defer m.Cmdy(STYLE, COLUMN, FLEX, "0 0 500px", "padding", "10px").Cmdy(STYLE, END) + defer m.Cmdy(STYLE, COLUMN, FLEX, "0 0 480px").Cmdy(STYLE, END) m.Cmdy(SPARK, INNER, ice.SRC_MAIN_GO, html.WIDTH, "480px") m.Cmdy(SPARK, SHELL, kit.Renders(` git clone {{ .Make.Remote }} diff --git a/misc/git/tags.go b/misc/git/tags.go index f96871bc..54d74fe4 100644 --- a/misc/git/tags.go +++ b/misc/git/tags.go @@ -16,6 +16,7 @@ import ( ) func init() { + return const TAGS = "tags" Index.MergeCommands(ice.Commands{ TAGS: {Name: "tags path name auto", Actions: ice.MergeActions(ice.Actions{ diff --git a/misc/wx/agent.js b/misc/wx/agent.js index d565b954..269c53a3 100644 --- a/misc/wx/agent.js +++ b/misc/wx/agent.js @@ -8,13 +8,6 @@ Volcanos(chat.ONIMPORT, { debug = false, can.onmotion.hidden(can, can._fields) wx.config({debug: debug, signature: msg.Option("signature"), timestamp: msg.Option("timestamp"), nonceStr: msg.Option("noncestr"), appId: msg.Option("appid"), jsApiList: can.core.Item({ - getLocation: function(can, cb) { wx.getLocation({type: "gcj02", success: function (res) { - can.base.isFunc(cb) && cb({type: "gcj02", name: "当前位置", text: "当前位置", latitude: parseInt(res.latitude*100000), longitude: parseInt(res.longitude*100000) }) - } }) }, - openLocation: function(can, msg) { wx.openLocation({ - name: msg.Option(mdb.NAME), address: msg.Option(mdb.TEXT), infoUrl: msg.Option(web.LINK), - longitude: parseFloat(msg.Option(aaa.LONGITUDE)), latitude: parseFloat(msg.Option(aaa.LATITUDE)), scale: msg.Option("scale")||14, - }) }, chooseImage: function(can, cb, count) { wx.chooseImage({count: count||9, sourceType: ["camera", "album"], sizeType: ["original", "compressed"], success: function (res) { can.base.isFunc(cb) && cb(res.localIds) } }) }, @@ -31,6 +24,18 @@ Volcanos(chat.ONIMPORT, { can.user.toastFailure(can, res) } }) }, + getLocation: function(can, cb) { wx.getLocation({type: "gcj02", success: function (res) { + can.base.isFunc(cb) && cb({type: "gcj02", name: can.user.info.usernick, text: can.base.Time(), + latitude: parseInt(res.latitude*100000), longitude: parseInt(res.longitude*100000), + }) + } }) }, + openLocation: function(can, msg) { wx.openLocation({ + name: msg.Option(mdb.NAME)||can.user.info.usernick, address: msg.Option(mdb.TEXT)||can.base.Time(), infoUrl: msg.Option(web.LINK)||location.href, + longitude: parseFloat(msg.Option(aaa.LONGITUDE)/100000), latitude: parseFloat(msg.Option(aaa.LATITUDE)/100000), scale: msg.Option("scale")||14, + }) }, + openAddress: function(can, cb) { + wx.openAddress({success: function(res) { cb(res) }}) + }, }, function(key, value) { return can.user.agent[key] = value, key }).concat([ "updateAppMessageShareData", ], can.user.isMobile? ["updateTimelineShareData"]: []), openTagList: ["wx-open-subscribe"], @@ -52,7 +57,7 @@ Volcanos(chat.ONIMPORT, { p = can.misc.Resource(can, icons||can.Conf(mdb.ICONS))||p; can.base.beginWith(p, "/") && (p = location.origin + p) share(document.title, p, content, link) }, can.user.agent.init(can.user.agent.cmd, can.user.agent._init_content, can.user.agent._init_icons) - location.pathname == "/" && can.onmotion.delay(can, function() { share(document.title, can.misc.Resource(can, can.user.info.favicon)) }, 300) + // location.pathname == "/" && can.onmotion.delay(can, function() { share(document.title, can.misc.Resource(can, can.user.info.favicon)) }, 300) }) }) },