mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt spide
This commit is contained in:
parent
280c00ccbd
commit
8399542454
@ -76,7 +76,7 @@ func UserRole(m *ice.Message, username interface{}) (role string) {
|
||||
return
|
||||
}
|
||||
func UserLogin(m *ice.Message, username, password string) bool {
|
||||
if _user_login(m, username, password) {
|
||||
if password == "" || _user_login(m, username, password) {
|
||||
m.Log_AUTH(
|
||||
USERNICK, m.Option(ice.MSG_USERNICK, UserNick(m, username)),
|
||||
USERROLE, m.Option(ice.MSG_USERROLE, UserRole(m, username)),
|
||||
|
@ -315,15 +315,16 @@ func init() {
|
||||
}
|
||||
|
||||
case SPIDE_RAW:
|
||||
if b, e := ioutil.ReadAll(res.Body); m.Assert(e) {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
if strings.HasPrefix(res.Header.Get(ContentType), ContentJSON) {
|
||||
m.Echo(kit.Formats(kit.UnMarshal(string(b))))
|
||||
// m.Echo(string(b))
|
||||
} else {
|
||||
m.Echo(string(b))
|
||||
}
|
||||
|
||||
case SPIDE_MSG:
|
||||
var data map[string][]string
|
||||
m.Assert(json.NewDecoder(res.Body).Decode(&data))
|
||||
m.Info("res: %s", kit.Format(data))
|
||||
for _, k := range data[ice.MSG_APPEND] {
|
||||
for i := range data[k] {
|
||||
m.Push(k, data[k][i])
|
||||
@ -333,18 +334,14 @@ func init() {
|
||||
|
||||
default:
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
m.Echo(string(b))
|
||||
break
|
||||
if strings.HasPrefix(res.Header.Get(ContentType), ContentHTML) {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
|
||||
var data interface{}
|
||||
if e := json.Unmarshal(b, &data); e != nil {
|
||||
m.Echo(string(b))
|
||||
break
|
||||
}
|
||||
|
||||
var data interface{}
|
||||
m.Assert(json.NewDecoder(res.Body).Decode(&data))
|
||||
m.Optionv("content_data", data)
|
||||
|
||||
data = kit.KeyValue(map[string]interface{}{}, "", data)
|
||||
m.Push("", data)
|
||||
}
|
||||
|
@ -1,14 +1,6 @@
|
||||
package input
|
||||
|
||||
import (
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/cli"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/nfs"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
"github.com/shylinux/icebergs/core/code"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
|
||||
"bufio"
|
||||
"bytes"
|
||||
"encoding/csv"
|
||||
@ -16,6 +8,14 @@ import (
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/cli"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/nfs"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
"github.com/shylinux/icebergs/core/code"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
)
|
||||
|
||||
func _input_list(m *ice.Message, lib string) {
|
||||
|
@ -5,7 +5,7 @@ refer "" `
|
||||
文档 https://developers.weixin.qq.com/miniprogram/dev/api/
|
||||
源码 https://github.com/shylinux/icebergs/blob/master/misc/mp/mp.go
|
||||
`
|
||||
image `gh_61ea404535e4_258.jpg`
|
||||
qrcode `https://mp.weixin.qq.com/a/~HkylKD4DZShrgSm5GuXWLQ~~`
|
||||
|
||||
chapter "应用"
|
||||
field scan web.chat.scan
|
||||
|
@ -1,6 +1,13 @@
|
||||
package wx
|
||||
|
||||
import (
|
||||
"crypto/sha1"
|
||||
"encoding/hex"
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/aaa"
|
||||
"github.com/shylinux/icebergs/base/cli"
|
||||
@ -9,13 +16,6 @@ import (
|
||||
"github.com/shylinux/icebergs/core/chat"
|
||||
"github.com/shylinux/icebergs/core/wiki"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
|
||||
"crypto/sha1"
|
||||
"encoding/hex"
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func _wx_sign(m *ice.Message, nonce, stamp string) string {
|
||||
@ -56,7 +56,11 @@ func _wx_parse(m *ice.Message) {
|
||||
m.Option("Content", data.Content)
|
||||
}
|
||||
func _wx_reply(m *ice.Message, tmpl string) {
|
||||
m.Render(m.Conf(LOGIN, kit.Keym(kit.MDB_TEMPLATE, tmpl)))
|
||||
m.Option(ice.MSG_OUTPUT, ice.RENDER_RESULT)
|
||||
res, _ := kit.Render(m.Conf(LOGIN, kit.Keym(kit.MDB_TEMPLATE, tmpl)), m)
|
||||
|
||||
m.Set(ice.MSG_RESULT)
|
||||
m.Echo(string(res))
|
||||
}
|
||||
func _wx_action(m *ice.Message) {
|
||||
m.Option(ice.MSG_OUTPUT, ice.RENDER_RESULT)
|
||||
@ -97,8 +101,12 @@ const (
|
||||
EXPIRE = "expire"
|
||||
TICKET = "ticket"
|
||||
EXPIRES = "expires"
|
||||
QRCODE = "qrcode"
|
||||
CONFIG = "config"
|
||||
WEIXIN = "weixin"
|
||||
|
||||
ERRCODE = "errcode"
|
||||
ERRMSG = "errmsg"
|
||||
)
|
||||
const (
|
||||
ACCESS = "access"
|
||||
@ -136,7 +144,7 @@ var Index = &ice.Context{Name: WX, Help: "公众号",
|
||||
m.Save()
|
||||
}},
|
||||
|
||||
ACCESS: {Name: "access appid auto ticket token login", Help: "认证", Action: map[string]*ice.Action{
|
||||
ACCESS: {Name: "access appid auto menu qrcode ticket token login", Help: "认证", Action: map[string]*ice.Action{
|
||||
LOGIN: {Name: "login appid appmm token", Help: "登录", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Conf(LOGIN, kit.Keym(APPID), m.Option(APPID))
|
||||
m.Conf(LOGIN, kit.Keym(APPMM), m.Option(APPMM))
|
||||
@ -146,7 +154,7 @@ var Index = &ice.Context{Name: WX, Help: "公众号",
|
||||
if now := time.Now().Unix(); m.Conf(LOGIN, kit.Keym(ACCESS, TOKEN)) == "" || now > kit.Int64(m.Conf(LOGIN, kit.Keym(ACCESS, EXPIRE))) {
|
||||
msg := m.Cmd(web.SPIDE, WEIXIN, web.SPIDE_GET, "/cgi-bin/token?grant_type=client_credential",
|
||||
APPID, m.Conf(LOGIN, kit.Keym(APPID)), "secret", m.Conf(LOGIN, kit.Keym(APPMM)))
|
||||
if m.Warn(msg.Append("errcode") != "", "%v: %v", msg.Append("errcode"), msg.Append("errmsg")) {
|
||||
if m.Warn(msg.Append(ERRCODE) != "", "%v: %v", msg.Append(ERRCODE), msg.Append(ERRMSG)) {
|
||||
return
|
||||
}
|
||||
|
||||
@ -159,7 +167,7 @@ var Index = &ice.Context{Name: WX, Help: "公众号",
|
||||
if now := time.Now().Unix(); m.Conf(LOGIN, kit.Keym(ACCESS, TICKET)) == "" || now > kit.Int64(m.Conf(LOGIN, kit.Keym(ACCESS, EXPIRES))) {
|
||||
msg := m.Cmd(web.SPIDE, WEIXIN, web.SPIDE_GET, "/cgi-bin/ticket/getticket?type=jsapi",
|
||||
"access_token", m.Cmdx(ACCESS, TOKEN))
|
||||
if m.Warn(msg.Append("errcode") != "0", msg.Append("errcode"), msg.Append("errmsg")) {
|
||||
if m.Warn(msg.Append(ERRCODE) != "0", msg.Append(ERRCODE), msg.Append(ERRMSG)) {
|
||||
return
|
||||
}
|
||||
|
||||
@ -168,6 +176,11 @@ var Index = &ice.Context{Name: WX, Help: "公众号",
|
||||
}
|
||||
m.Echo(m.Conf(LOGIN, kit.Keym(ACCESS, TICKET)))
|
||||
}},
|
||||
QRCODE: {Name: "qrcode", Help: "扫码", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(web.SPIDE, WEIXIN, web.SPIDE_POST, "/cgi-bin/qrcode/create?access_token="+m.Cmdx(ACCESS, TOKEN),
|
||||
web.SPIDE_DATA, kit.Format(`{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}`))
|
||||
m.EchoQRCode(m.Append("url"))
|
||||
}},
|
||||
CONFIG: {Name: "config", Help: "配置", Hand: func(m *ice.Message, arg ...string) {
|
||||
_wx_config(m, "some")
|
||||
}},
|
||||
@ -179,7 +192,8 @@ var Index = &ice.Context{Name: WX, Help: "公众号",
|
||||
|
||||
MENU: {Name: "menu name auto", Help: "菜单", Action: map[string]*ice.Action{
|
||||
mdb.CREATE: {Name: "create", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
share := m.Cmdx(web.SHARE, mdb.CREATE, kit.MDB_TYPE, web.LOGIN)
|
||||
share := m.Cmdx(web.SHARE, mdb.CREATE, kit.MDB_TYPE, web.LOGIN,
|
||||
aaa.USERNAME, m.Option(ice.MSG_USERNAME), aaa.USERROLE, m.Option(ice.MSG_USERROLE))
|
||||
kit.Fetch(m.Confv(LOGIN, kit.Keym(MENU)), func(index int, value map[string]interface{}) {
|
||||
m.Push("", value, kit.Split("title,spark,image"))
|
||||
m.Push(wiki.REFER, kit.MergeURL(kit.Format(value[wiki.REFER]), web.SHARE, share))
|
||||
@ -214,6 +228,10 @@ var Index = &ice.Context{Name: WX, Help: "公众号",
|
||||
case "subscribe": // 关注事件
|
||||
_wx_action(m.Cmdy(MENU, mdb.CREATE))
|
||||
case "unsubscribe": // 取关事件
|
||||
|
||||
case "SCAN": // 扫码
|
||||
m.Echo("hello world")
|
||||
_wx_reply(m, kit.MDB_TEXT)
|
||||
}
|
||||
|
||||
case kit.MDB_TEXT:
|
||||
|
@ -6,6 +6,8 @@ refer `
|
||||
源码 https://github.com/shylinux/icebergs/blob/master/misc/wx/wx.go
|
||||
`
|
||||
|
||||
qrcode `http://weixin.qq.com/r/_B1-Z7TEXOkjrfAE90jq`
|
||||
|
||||
chapter "应用"
|
||||
field scan web.chat.scan
|
||||
field files web.chat.files
|
||||
|
Loading…
x
Reference in New Issue
Block a user