1
0
forked from x/icebergs
icebergs/core/chat/trans.go
2023-09-21 01:33:02 +08:00

49 lines
1.6 KiB
Go

package chat
import (
"path"
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"
kit "shylinux.com/x/toolkits"
)
const TRANS = "trans"
func init() {
const (
SEND = "send"
FROM = "from"
TO = "to"
)
Index.MergeCommands(ice.Commands{
TRANS: {Name: "trans from@key to@key auto", Help: "传输", Icon: "Migration.png", Actions: ice.Actions{
SEND: {Hand: func(m *ice.Message, arg ...string) {
defer web.ToastProcess(m)()
p := web.ProxyUpload(m, m.Option(FROM), m.Option(nfs.PATH))
h := m.Cmdx(web.SHARE, mdb.CREATE, mdb.TYPE, web.DOWNLOAD, mdb.TEXT, p)
defer m.Cmd(web.SHARE, mdb.REMOVE, mdb.HASH, h)
m.Cmdy(web.SPACE, m.Option(TO), web.SPIDE, ice.DEV, web.SPIDE_SAVE, path.Join(m.Option("to_path"), path.Base(m.Option(nfs.PATH))), web.MergeLink(m, "/share/"+h))
}},
ctx.RUN: {Hand: func(m *ice.Message, arg ...string) {
m.Options(ice.MSG_USERPOD, m.Option(FROM), ice.POD, m.Option(FROM))
kit.If(!ctx.PodCmd(m, arg) && aaa.Right(m, arg), func() { m.Cmdy(arg) })
kit.If(arg[0] == nfs.DIR && len(arg) < 3, func() { m.PushAction(SEND, mdb.SHOW, nfs.TRASH) })
}},
}, Hand: func(m *ice.Message, arg ...string) {
defer m.Options(ice.MSG_ACTION, "")
if len(arg) == 0 {
m.Cmdy(web.SPACE).RenameAppend(mdb.NAME, FROM).Toast("请选择空间1")
} else if len(arg) == 1 {
m.Cmdy(web.SPACE).RenameAppend(mdb.NAME, TO).Toast("请选择空间2")
} else {
ctx.DisplayLocal(m, "")
}
}},
})
}