forked from x/icebergs
opt some
This commit is contained in:
parent
9dc442755d
commit
4b1a228078
@ -134,15 +134,7 @@ func _serve_handle(key string, cmd *ice.Command, m *ice.Message, w http.Response
|
||||
m.Options(ice.MSG_USERUA, r.Header.Get(html.UserAgent), ice.MSG_USERIP, r.Header.Get(ice.MSG_USERIP))
|
||||
m.Options(ice.MSG_SESSID, kit.Select(m.Option(ice.MSG_SESSID), m.Option(CookieName(m.Option(ice.MSG_USERWEB)))))
|
||||
kit.If(m.Optionv(ice.MSG_CMDS) == nil, func() {
|
||||
kit.If(strings.TrimPrefix(r.URL.Path, key), func(p string) {
|
||||
arg := strings.Split(p, nfs.PS)
|
||||
for i, v := range arg {
|
||||
if p, err := url.PathUnescape(v); err == nil {
|
||||
arg[i] = p
|
||||
}
|
||||
}
|
||||
m.Optionv(ice.MSG_CMDS, arg)
|
||||
})
|
||||
kit.If(strings.TrimPrefix(r.URL.Path, key), func(p string) { m.Optionv(ice.MSG_CMDS, strings.Split(p, nfs.PS)) })
|
||||
})
|
||||
UserHost(m)
|
||||
m.W.Header().Add(strings.ReplaceAll(ice.LOG_TRACEID, ".", "-"), m.Option(ice.LOG_TRACEID))
|
||||
|
@ -47,13 +47,14 @@ func _spide_show(m *ice.Message, name string, arg ...string) {
|
||||
method = kit.Select(http.MethodGet, msg.Append(CLIENT_METHOD), method)
|
||||
uri, arg := arg[0], arg[1:]
|
||||
body, head, arg := _spide_body(m, method, arg...)
|
||||
if m.Option("_break") == ice.TRUE {
|
||||
if m.Option("spide.break") == ice.TRUE {
|
||||
return
|
||||
}
|
||||
if c, ok := body.(io.Closer); ok {
|
||||
defer c.Close()
|
||||
}
|
||||
req, e := http.NewRequest(method, kit.MergeURL2(msg.Append(CLIENT_URL), uri, arg), body)
|
||||
_uri := kit.MergeURL2(msg.Append(CLIENT_URL), uri, arg)
|
||||
req, e := http.NewRequest(method, _uri, body)
|
||||
if m.Warn(e, ice.ErrNotValid, uri) {
|
||||
return
|
||||
}
|
||||
@ -146,10 +147,10 @@ func _spide_part(m *ice.Message, arg ...string) (string, io.Reader) {
|
||||
p := arg[i+1][1:]
|
||||
if s, e := nfs.StatFile(m, p); !m.Warn(e, ice.ErrNotValid) {
|
||||
if s.Size() == size && s.ModTime().Before(cache) {
|
||||
m.Option("_break", ice.TRUE)
|
||||
m.Option("spide.break", ice.TRUE)
|
||||
continue
|
||||
} else if s.Size() == size && !nfs.Exists(m.Spawn(kit.Dict(ice.MSG_FILES, nfs.DiskFile)), p) {
|
||||
m.Option("_break", ice.TRUE)
|
||||
m.Option("spide.break", ice.TRUE)
|
||||
continue
|
||||
}
|
||||
m.Logs(nfs.FIND, LOCAL, s.ModTime(), nfs.SIZE, s.Size(), CACHE, cache, nfs.SIZE, size)
|
||||
|
8
misc.go
8
misc.go
@ -159,3 +159,11 @@ func (m *Message) CmdMap(arg ...string) map[string]map[string]string {
|
||||
func (m *Message) Toast(content string, arg ...string) { // title duration
|
||||
Info.PushNotice(m, "toast", content, arg)
|
||||
}
|
||||
func (m *Message) Trans(en string, zh string) string {
|
||||
switch strings.ToLower(kit.Split(m.Option(MSG_LANGUAGE), "_-")[0]) {
|
||||
case "zh":
|
||||
return zh
|
||||
default:
|
||||
return en
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package relay
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
@ -245,7 +247,7 @@ func (s relay) List(m *ice.Message, arg ...string) *ice.Message {
|
||||
return
|
||||
}
|
||||
m.Push(web.LINK, web.HostPort(m.Message, value[tcp.HOST], value[web.PORTAL]))
|
||||
m.PushButton(s.Admin, s.Dream, s.Vimer, s.AdminCmd, s.Upgrade, s.Pushbin, s.Xterm, s.Remove)
|
||||
m.PushButton(s.Admin, s.Dream, s.Vimer, s.AdminCmd, s.Login, s.Upgrade, s.Pushbin, s.Xterm, s.Remove)
|
||||
kit.If(len(arg) > 0, func() { m.PushQRCode(cli.QRCODE, m.Append(web.LINK)) })
|
||||
})
|
||||
_stats := kit.Dict(MEM, kit.FmtSize(stats[MEM_FREE], stats[MEM_TOTAL]), DISK, kit.FmtSize(stats[DISK_USED], stats[DISK_TOTAL]))
|
||||
@ -284,6 +286,23 @@ func (s relay) Pushbin(m *ice.Message, arg ...string) {
|
||||
s.shell(m, m.Template(PUSHBIN_SH), arg...)
|
||||
s.Modify(m, kit.Simple(m.OptionSimple(MACHINE, web.DREAM))...)
|
||||
}
|
||||
func (s relay) Login(m *ice.Message, arg ...string) {
|
||||
if m.Options(s.Hash.List(m.Spawn(), m.Option(MACHINE)).AppendSimple()); m.Option(ice.BACK) == "" {
|
||||
defer web.ToastProcess(m.Message)()
|
||||
ssh.CombinedOutput(m.Message, s.admins(m, kit.JoinCmds(web.CHAT_HEADER, mdb.CREATE,
|
||||
"--", mdb.TYPE, "oauth", mdb.NAME, m.CommandKey(), mdb.ICONS, "usr/icons/ssh.png", mdb.ORDER, "100",
|
||||
web.LINK, m.MergePodCmd("", "", ctx.ACTION, m.ActionKey(), MACHINE, m.Option(MACHINE)),
|
||||
)), func(res string) { m.ProcessHold() })
|
||||
m.ProcessOpen(kit.MergeURL2(m.Option(mdb.LINK), web.C(web.CHAT_HEADER)))
|
||||
} else if m.Option(ice.MSG_METHOD) == http.MethodGet {
|
||||
m.EchoInfoButton(kit.JoinLine(m.Trans("please confirm login", "请确认登录"), m.Option(ice.BACK)), m.ActionKey())
|
||||
} else {
|
||||
defer web.ToastProcess(m.Message)()
|
||||
ssh.CombinedOutput(m.Message, s.admins(m, kit.JoinCmds(web.SHARE, mdb.CREATE, mdb.TYPE, aaa.LOGIN, "--", mdb.TEXT, m.Option(ice.BACK))), func(res string) {
|
||||
m.ProcessReplace(MergeURL2(m, m.Option(ice.BACK), "/share/"+strings.TrimSpace(res)))
|
||||
})
|
||||
}
|
||||
}
|
||||
func (s relay) Install(m *ice.Message, arg ...string) {
|
||||
m.Options(web.DOMAIN, "https://shylinux.com", ice.MSG_USERPOD, m.Option(web.DREAM))
|
||||
m.Options(nfs.SOURCE, kit.Value(kit.UnMarshal(web.AdminCmd(m.Message, cli.RUNTIME)), "make.remote"))
|
||||
@ -368,3 +387,20 @@ func (s relay) admin(m *ice.Message, arg ...string) string {
|
||||
func (s relay) admins(m *ice.Message, arg ...string) string {
|
||||
return kit.Select(ice.CONTEXTS, m.Option(web.DREAM)) + nfs.PS + s.admin(m, arg...)
|
||||
}
|
||||
func MergeURL2(m *ice.Message, str string, uri string, arg ...ice.Any) string {
|
||||
raw, err := url.Parse(str)
|
||||
m.Debug("what %v", err)
|
||||
if err != nil {
|
||||
return kit.MergeURL(uri, arg...)
|
||||
}
|
||||
get, err := url.Parse(uri)
|
||||
m.Debug("what %v", err)
|
||||
if err != nil {
|
||||
return kit.MergeURL(str, arg...)
|
||||
}
|
||||
p := get.Path
|
||||
m.Debug("what %v", p)
|
||||
kit.If(!strings.HasPrefix(p, nfs.PS), func() { p = path.Join(raw.Path, get.Path) })
|
||||
kit.If(p == nfs.PS, func() { p = "" })
|
||||
return kit.MergeURL(kit.Select(raw.Scheme, get.Scheme)+"://"+kit.Select(raw.Host, get.Host)+p+"?"+kit.Select(raw.RawQuery, get.RawQuery), arg...)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user