package chat import ( "strings" ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/gdb" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/web" kit "shylinux.com/x/toolkits" ) func _favor_is_image(m *ice.Message, name, mime string) bool { return strings.HasPrefix(mime, "image/") || kit.ExtIsImage(name) } func _favor_is_video(m *ice.Message, name, mime string) bool { return strings.HasPrefix(mime, "video/") || kit.ExtIsVideo(name) } func _favor_is_audio(m *ice.Message, name, mime string) bool { return strings.HasPrefix(mime, "audio/") } const ( FAVOR_INPUTS = "favor.inputs" FAVOR_TABLES = "favor.tables" FAVOR_ACTION = "favor.action" ) const FAVOR = "favor" func init() { Index.MergeCommands(ice.Commands{ FAVOR: {Name: "favor hash auto create getClipboardData getLocation scanQRCode record1 record2 upload", Help: "收藏夹", Actions: ice.MergeActions(ice.Actions{ mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { switch mdb.HashInputs(m, arg); arg[0] { case mdb.TYPE: m.Push(arg[0], mdb.TEXT, ctx.INDEX) case mdb.NAME: switch m.Option(mdb.TYPE) { case ctx.INDEX: m.Copy(m.Cmd(ctx.COMMAND, mdb.SEARCH, ctx.COMMAND, arg[1:], ice.OptionFields(ctx.INDEX)).RenameAppend(ctx.INDEX, arg[0])) return } } gdb.Event(m, "", arg) }}, "getClipboardData": {Name: "favor create", Help: "粘贴"}, "getLocation": {Name: "favor create", Help: "定位"}, "scanQRCode": {Name: "favor create", Help: "扫码"}, "record1": {Name: "favor upload", Help: "截图"}, "record2": {Name: "favor upload", Help: "录屏"}, mdb.CREATE: {Hand: func(m *ice.Message, arg ...string) { m.OptionDefault(mdb.TYPE, mdb.LINK, mdb.NAME, kit.ParseURL(m.Option(mdb.TEXT)).Host) mdb.HashCreate(m, m.OptionSimple()) }}, web.UPLOAD: {Hand: func(m *ice.Message, arg ...string) { msg := web.Upload(m) m.Cmd("", mdb.CREATE, msg.AppendSimple(mdb.TYPE, mdb.NAME, mdb.TEXT)) }}, web.DOWNLOAD: {Hand: func(m *ice.Message, arg ...string) { ctx.ProcessOpen(m, web.MergeURL2(m, web.SHARE_LOCAL+m.Option(mdb.TEXT), "filename", m.Option(mdb.NAME))) }}, web.DISPLAY: {Help: "预览", Hand: func(m *ice.Message, arg ...string) { if link := web.SHARE_LOCAL + m.Option(mdb.TEXT); _favor_is_image(m, m.Option(mdb.NAME), m.Option(mdb.TYPE)) { m.EchoImages(link) } else if _favor_is_video(m, m.Option(mdb.NAME), m.Option(mdb.TYPE)) { m.EchoVideos(link) } else { m.Echo("