From 3909630331901fcce6284e2054de55094e82b034 Mon Sep 17 00:00:00 2001 From: shy Date: Mon, 20 Nov 2023 22:30:14 +0800 Subject: [PATCH] add some --- base/cli/qrcode.go | 2 +- base/ctx/command.go | 4 ++-- core/chat/grant.go | 26 +++++++++++++++++++------- misc/wx/login.go | 4 +--- render.go | 3 +++ 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/base/cli/qrcode.go b/base/cli/qrcode.go index 8279ba18..914c5474 100644 --- a/base/cli/qrcode.go +++ b/base/cli/qrcode.go @@ -64,6 +64,7 @@ func init() { m.OptionDefault(FG, BLACK, BG, WHITE) _qrcode_cli(m, kit.Select(kit.Select(ice.Info.Make.Domain, ice.Info.Domain), arg, 0)) } else { + m.OptionDefault(SIZE, "320") m.Option(FG, kit.Select(m.Option("--plugin-fg-color"), arg, 1)) m.Option(BG, kit.Select(m.Option("--plugin-bg-color"), arg, 2)) switch m.Option(ice.MSG_THEME) { @@ -72,7 +73,6 @@ func init() { default: m.OptionDefault(FG, WHITE, BG, BLACK) } - m.OptionDefault(SIZE, "360") m.StatusTime(mdb.LINK, _qrcode_web(m, tcp.PublishLocalhost(m, kit.Select(m.Option(ice.MSG_USERWEB), arg, 0)))) } }}, diff --git a/base/ctx/command.go b/base/ctx/command.go index 50678d66..270c8f38 100644 --- a/base/ctx/command.go +++ b/base/ctx/command.go @@ -113,10 +113,10 @@ func init() { var PodCmd = func(m *ice.Message, arg ...ice.Any) bool { return false } func Run(m *ice.Message, arg ...string) { - kit.If(!PodCmd(m, arg) && aaa.Right(m, arg), func() { m.Cmdy(arg) }) + kit.If(kit.IsIn(arg[0], "web.chat.grant") || !PodCmd(m, arg) && aaa.Right(m, arg), func() { m.Cmdy(arg) }) } func Command(m *ice.Message, arg ...string) { - kit.If(!PodCmd(m, COMMAND, arg), func() { m.Cmdy(COMMAND, arg) }) + kit.If(kit.IsIn(arg[0], "web.chat.grant") || !PodCmd(m, COMMAND, arg), func() { m.Cmdy(COMMAND, arg) }) } func FileURI(dir string) string { diff --git a/core/chat/grant.go b/core/chat/grant.go index 40b7a719..b1bfb17b 100644 --- a/core/chat/grant.go +++ b/core/chat/grant.go @@ -36,20 +36,32 @@ func init() { } else if msg := m.Cmd(web.SPACE, m.Option(web.SPACE)); m.Warn(msg.Append(mdb.TYPE) != aaa.LOGIN, ice.ErrNotFound, m.Option(web.SPACE)) { return } else { - kit.If(m.Option(ice.MSG_SESSID) == "", func() { web.RenderCookie(m, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME))) }) - m.Option(ice.MSG_USERUA, msg.Append(ice.MSG_USERUA)) - m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME))) - m.ProcessLocation(web.MergeURL2(m, msg.Append(mdb.TEXT))) + if m.IsWeixinUA() { + m.Option(ice.MSG_USERUA, msg.Append(ice.MSG_USERUA)) + m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME))) + m.Echo(ice.SUCCESS) + } else { + kit.If(m.Option(ice.MSG_SESSID) == "", func() { web.RenderCookie(m, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME))) }) + m.Option(ice.MSG_USERUA, msg.Append(ice.MSG_USERUA)) + m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME))) + m.ProcessLocation(web.MergeURL2(m, msg.Append(mdb.TEXT))) + } } }}, }, aaa.RoleAction(aaa.CONFIRM), gdb.EventsAction(web.SPACE_LOGIN)), Hand: func(m *ice.Message, arg ...string) { msg := m.Cmd(web.SPACE, m.Option(web.SPACE, arg[0])) m.Option(tcp.HOSTNAME, ice.Info.Hostname) m.Option(nfs.PATH, msg.Append(mdb.TEXT)) - m.Option(aaa.UA, msg.Append(aaa.UA)) - m.Option(aaa.IP, msg.Append(aaa.IP)) if !m.Warn(m.Option(nfs.PATH) == "", ice.ErrNotFound, arg[0]) { - m.Echo(nfs.Template(m, "auth.html")) + if m.IsWeixinUA() { + m.Push(aaa.IP, msg.Append(aaa.IP)) + m.Push(web.SPACE, arg[0]) + m.PushAction(aaa.CONFIRM) + } else { + m.Option(aaa.UA, msg.Append(aaa.UA)) + m.Option(aaa.IP, msg.Append(aaa.IP)) + m.Echo(nfs.Template(m, "auth.html")) + } } }}, }) diff --git a/misc/wx/login.go b/misc/wx/login.go index b66427c6..05ff01e8 100644 --- a/misc/wx/login.go +++ b/misc/wx/login.go @@ -94,9 +94,7 @@ func init() { m.OptionSimple(aaa.CITY, aaa.COUNTRY, aaa.LANGUAGE, aaa.PROVINCE), ) }}, - SCAN: {Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(web.CHAT_FAVOR, mdb.CREATE, mdb.TYPE, "", arg) - }}, + SCAN: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(web.CHAT_FAVOR, mdb.CREATE, mdb.TYPE, "", arg) }}, }, aaa.WhiteAction(aaa.SESS, aaa.USER)), Hand: func(m *ice.Message, arg ...string) { if m.Cmdx(ACCESS, aaa.CHECK) == "" { return diff --git a/render.go b/render.go index 8c1604f9..257081b7 100644 --- a/render.go +++ b/render.go @@ -120,6 +120,9 @@ func (m *Message) IsCliUA() bool { func (m *Message) IsMobileUA() bool { return strings.Contains(m.Option(MSG_USERUA), "Mobile") } +func (m *Message) IsWeixinUA() bool { + return strings.Contains(m.Option(MSG_USERUA), "MicroMessenger") +} func (m *Message) PushSearch(arg ...Any) { data := kit.Dict(arg...) kit.For(arg, func(k, v Any) {