1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00

opt share

This commit is contained in:
shylinux 2021-04-25 21:57:32 +08:00
parent 8f81807b3d
commit 211369ea86
8 changed files with 44 additions and 16 deletions

View File

@ -69,9 +69,6 @@ func init() {
},
Commands: map[string]*ice.Command{
SESS: {Name: "sess hash auto", Help: "会话", Action: map[string]*ice.Action{
mdb.CREATE: {Name: "create", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
m.EchoQRCode(kit.MergeURL(m.Conf("web.serve", "meta.share"), "share", m.Cmdx("web.share", mdb.CREATE, kit.MDB_TYPE, "login", USERNAME, ice.Info.UserName)))
}},
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.DELETE, SESS, "", mdb.HASH, kit.MDB_HASH, m.Option(kit.MDB_HASH))
}},

View File

@ -131,7 +131,7 @@ func init() {
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.MODIFY, USER, "", mdb.HASH, USERNAME, m.Option(USERNAME), arg)
}},
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
mdb.REMOVE: {Name: "remove username", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
_user_remove(m, m.Option(USERNAME))
}},
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {

View File

@ -40,8 +40,9 @@ func _qrcode_web(m *ice.Message, arg ...string) {
if qr, e := qrcode.New(arg[0], qrcode.Medium); m.Assert(e) {
m.Assert(qr.Write(kit.Int(kit.Select("240", arg, 1)), buf))
}
src := "data:image/png;base64," + base64.StdEncoding.EncodeToString(buf.Bytes())
m.Echo(`<img src="%s" title='%s' height=%s>`, src, arg[0], kit.Select("240", arg, 1))
m.Option("byte", buf.Bytes())
data := base64.StdEncoding.EncodeToString(buf.Bytes())
m.Echo(`<img src="data:image/png;base64,%s" title='%s' height=%s>`, data, arg[0], kit.Select("240", arg, 1))
}
const QRCODE = "qrcode"

View File

@ -3,6 +3,7 @@ package web
import (
ice "github.com/shylinux/icebergs"
"github.com/shylinux/icebergs/base/aaa"
"github.com/shylinux/icebergs/base/cli"
kit "github.com/shylinux/toolkits"
"fmt"
@ -47,8 +48,10 @@ func Render(msg *ice.Message, cmd string, args ...interface{}) {
}
case ice.RENDER_QRCODE: // text [size]
msg.W.Header().Set(ContentType, ContentPNG)
fmt.Fprint(msg.W, msg.Cmdx("cli.qrcode", arg))
if data, ok := msg.Cmd(cli.QRCODE, arg).Optionv("byte").([]byte); ok {
msg.W.Header().Set(ContentType, ContentPNG)
msg.W.Write(data)
}
case ice.RENDER_RESULT:
if len(arg) > 0 { // [str [arg...]]

View File

@ -242,12 +242,6 @@ func init() {
for _, k := range kit.Split(m.Option(SPIDE_DEV)) {
m.Cmd(SPACE, tcp.DIAL, SPIDE_DEV, k, kit.MDB_NAME, ice.Info.NodeName)
}
if m.Conf(SERVE, kit.Keym(SHARE)) == "" {
share := kit.Format("%s://%s:%s", m.Option("proto"), m.Cmd(tcp.HOST).Append(tcp.IP), m.Option(tcp.PORT))
m.Debug("share: %v", share)
m.Conf(SERVE, kit.Keym(SHARE), share)
}
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Option(mdb.FIELDS, kit.Select("time,status,name,port,dev", mdb.DETAIL, len(arg) > 0))

View File

@ -78,6 +78,7 @@ const (
LOGIN = "login"
RIVER = "river"
STORM = "storm"
APPLY = "apply"
)
const SHARE = "share"
@ -100,6 +101,18 @@ func init() {
m.Option(mdb.FIELDS, "time,userrole,username,river,storm,type,name,text")
m.Cmdy(mdb.SELECT, SHARE, "", mdb.HASH, kit.MDB_HASH, m.Option(kit.MDB_HASH))
}},
LOGIN: {Name: "login", Help: "登录", Hand: func(m *ice.Message, arg ...string) {
m.EchoQRCode(kit.MergeURL(m.Conf(SHARE, kit.Keym(kit.MDB_DOMAIN)),
SHARE, m.Cmdx(SHARE, mdb.CREATE, kit.MDB_TYPE, LOGIN, aaa.USERNAME, ice.Info.UserName)))
}},
APPLY: {Name: "apply", Help: "申请", Hand: func(m *ice.Message, arg ...string) {
m.EchoQRCode(kit.MergeURL(m.Conf(SHARE, kit.Keym(kit.MDB_DOMAIN)),
SHARE, m.Cmdx(SHARE, mdb.CREATE, kit.MDB_TYPE, APPLY)))
}},
"auth": {Name: "auth", Help: "授权", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.MODIFY, SHARE, "", mdb.HASH, kit.MDB_HASH, arg)
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Option(mdb.FIELDS, kit.Select("time,hash,userrole,username,river,storm,type,name,text", mdb.DETAIL, len(arg) > 0))
m.Cmdy(mdb.SELECT, SHARE, "", mdb.HASH, kit.MDB_HASH, arg)
@ -123,7 +136,7 @@ func init() {
}
switch msg.Append(kit.MDB_TYPE) {
case LOGIN, RIVER:
case LOGIN, APPLY, RIVER:
switch kit.Select("", arg, 1) {
case SHARE:
m.Render(ice.RENDER_QRCODE, kit.MergeURL2(m.Option(ice.MSG_USERWEB), "/", list))

View File

@ -247,6 +247,10 @@ func init() {
m.Event(SPACE_START, args...)
defer m.Event(SPACE_STOP, args...)
}
switch kind {
case "chrome":
m.Cmd(SPACE, name, "pwd", name)
}
frame := m.Target().Server().(*Frame)
_space_handle(m, false, frame.send, s, name)

View File

@ -11,17 +11,24 @@ import (
func _header_check(m *ice.Message) {
if m.Option(web.SHARE) != "" {
switch msg := m.Cmd(web.SHARE, m.Option(web.SHARE)); msg.Append(kit.MDB_TYPE) {
msg := m.Cmd(web.SHARE, m.Option(web.SHARE))
switch msg.Append(kit.MDB_TYPE) {
case web.LOGIN:
if m.Option(ice.MSG_SESSID) == "" {
web.Render(m, web.COOKIE, aaa.SessCreate(m, msg.Append(aaa.USERNAME)))
}
case web.APPLY:
}
m.Option(kit.MDB_TYPE, msg.Append(kit.MDB_TYPE))
m.Option(kit.MDB_NAME, msg.Append(kit.MDB_NAME))
m.Option(kit.MDB_TEXT, msg.Append(kit.MDB_TEXT))
}
m.Option(web.SSO, m.Conf(web.SERVE, kit.Keym(web.SSO)))
}
const (
APPLY = "apply"
LOGIN = "login"
CHECK = "check"
TITLE = "title"
@ -44,6 +51,15 @@ func init() {
}},
P_HEADER: {Name: "/header", Help: "标题栏", Action: map[string]*ice.Action{
"auth": {Name: "auth share", Help: "用户授权", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(web.SHARE, "auth", m.Option(web.SHARE), kit.MDB_NAME, m.Option(ice.MSG_USERNAME))
space := m.Cmdy(web.SHARE, m.Option(web.SHARE)).Append(kit.MDB_TEXT)
m.Cmd(web.SPACE, space, ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
}},
APPLY: {Name: "apply", Help: "用户登录", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(web.SHARE, mdb.CREATE, kit.MDB_TYPE, web.APPLY, kit.MDB_TEXT, m.Option(kit.MDB_TEXT))
}},
LOGIN: {Name: "login", Help: "用户登录", Hand: func(m *ice.Message, arg ...string) {
if aaa.UserLogin(m, arg[0], arg[1]) {
web.Render(m, web.COOKIE, aaa.SessCreate(m, arg[0]))