Fix db_query field value to string
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# WeChat Rest Api
|
||||
|
||||
基于 [wcferry](https://github.com/opentdp/wechat-rest/tree/master/wcferry) 实现的 HTTP 接口服务,已实现如下功能:
|
||||
|
||||
- 检查登录状态
|
||||
- 获取登录账号 wxid
|
||||
- 获取登录账号个人信息
|
||||
- 获取所有消息类型
|
||||
- 获取完整通讯录
|
||||
- 获取好友列表
|
||||
- 获取所有数据库
|
||||
- 获取数据库中所有表
|
||||
- 执行 SQL 查询
|
||||
- 发送文本消息(可 @)
|
||||
- 发送图片
|
||||
- 发送文件
|
||||
- 发送卡片消息
|
||||
- 保存图片
|
||||
- 保存语音
|
||||
- 图片 OCR
|
||||
- 接受好友申请
|
||||
- 接收转账
|
||||
- 刷新朋友圈
|
||||
- 添加群成员
|
||||
- 删除群成员
|
||||
- 获取群列表
|
||||
- 获取群成员列表
|
||||
- 获取群成员昵称
|
||||
- 邀请群成员
|
||||
- 拍一拍群友
|
||||
- 转发消息给好友
|
||||
- 转发收到的消息到URL
|
||||
|
||||
## 生成 OpenApi 文档
|
||||
|
||||
```shell
|
||||
go get github.com/swaggo/swag/cmd/swag
|
||||
go install github.com/swaggo/swag/cmd/swag
|
||||
|
||||
swag init --parseDependency -g httpd/server.go -o public/swag -ot json
|
||||
```
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
"wechat-rest/httpd/wcfrest"
|
||||
)
|
||||
|
||||
// @title Wechat Rest API
|
||||
// @version v0.4.6
|
||||
// @description 基于 WeChatFerry RPC 实现的电脑版微信 REST API,使用 Go 语言编写,无第三方运行时依赖。基于 HTTP 提供操作接口,轻松对接任意编程语言。
|
||||
// @title WeChat Rest Api
|
||||
// @version v0.5.0
|
||||
// @description 基于 WeChatFerry RPC 实现的微信接口,使用 Go 语言编写,无第三方运行时依赖,易于对接任意编程语言。
|
||||
// @contact.name WeChatRest
|
||||
// @contact.url https://github.com/opentdp/wechat-rest
|
||||
// @license.name Apache 2.0
|
||||
|
||||
@@ -110,7 +110,7 @@ func (wc *Controller) dbSqlQuery(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
c.Set("Payload", wc.CmdClient.DbSqlQueryMap(req.Db, req.Sql))
|
||||
c.Set("Payload", wc.CmdClient.DbSqlQuery(req.Db, req.Sql))
|
||||
|
||||
}
|
||||
|
||||
@@ -531,14 +531,14 @@ func (wc *Controller) receiveTransfer(c *gin.Context) {
|
||||
|
||||
}
|
||||
|
||||
// @Summary 开启转发消息到URL
|
||||
// @Summary 开启推送消息到URL
|
||||
// @Produce json
|
||||
// @Param body body ForwardMsgRequest true "消息转发请求参数"
|
||||
// @Param body body ReceiverRequest true "消息推送请求参数"
|
||||
// @Success 200 {object} RespPayload
|
||||
// @Router /enable_forward_msg [post]
|
||||
func (wc *Controller) enableForwardMsg(c *gin.Context) {
|
||||
// @Router /enable_receiver [post]
|
||||
func (wc *Controller) enabledReceiver(c *gin.Context) {
|
||||
|
||||
var req ForwardMsgRequest
|
||||
var req ReceiverRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.Set("Error", err)
|
||||
return
|
||||
@@ -549,7 +549,7 @@ func (wc *Controller) enableForwardMsg(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
err := wc.enableForwardToUrl(req.Url)
|
||||
err := wc.enableUrlReceiver(req.Url)
|
||||
c.Set("Payload", RespPayload{
|
||||
Success: err == nil,
|
||||
Error: err,
|
||||
@@ -557,20 +557,20 @@ func (wc *Controller) enableForwardMsg(c *gin.Context) {
|
||||
|
||||
}
|
||||
|
||||
// @Summary 关闭转发消息到URL
|
||||
// @Summary 关闭推送消息到URL
|
||||
// @Produce json
|
||||
// @Param body body ForwardMsgRequest true "消息转发请求参数"
|
||||
// @Param body body ReceiverRequest true "消息推送请求参数"
|
||||
// @Success 200 {object} RespPayload
|
||||
// @Router /disable_forward_msg [post]
|
||||
func (wc *Controller) disableForwardMsg(c *gin.Context) {
|
||||
// @Router /disable_receiver [post]
|
||||
func (wc *Controller) disableReceiver(c *gin.Context) {
|
||||
|
||||
var req ForwardMsgRequest
|
||||
var req ReceiverRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.Set("Error", err)
|
||||
return
|
||||
}
|
||||
|
||||
err := wc.disableForwardToUrl(req.Url)
|
||||
err := wc.disableUrlReceiver(req.Url)
|
||||
c.Set("Payload", RespPayload{
|
||||
Success: err == nil,
|
||||
Error: err,
|
||||
|
||||
+14
-14
@@ -9,15 +9,15 @@ import (
|
||||
"github.com/opentdp/wechat-rest/wcferry"
|
||||
)
|
||||
|
||||
var forwardToUrlStat = false
|
||||
var forwardToUrlList = map[string]bool{}
|
||||
var urlReceiverStat = false
|
||||
var urlReceiverList = map[string]bool{}
|
||||
|
||||
func (wc *Controller) enableForwardToUrl(url string) error {
|
||||
func (wc *Controller) enableUrlReceiver(url string) error {
|
||||
|
||||
if !forwardToUrlStat {
|
||||
if !urlReceiverStat {
|
||||
err := wc.EnrollReceiver(true, func(msg *wcferry.WxMsg) {
|
||||
ret := wcferry.WxMsgParser(msg)
|
||||
for url := range forwardToUrlList {
|
||||
ret := wcferry.ParseWxMsg(msg)
|
||||
for url := range urlReceiverList {
|
||||
logman.Info("forward msg", "url", url, "Id", ret.Id)
|
||||
go request.JsonPost(url, ret, request.H{})
|
||||
}
|
||||
@@ -27,30 +27,30 @@ func (wc *Controller) enableForwardToUrl(url string) error {
|
||||
}
|
||||
}
|
||||
|
||||
if _, ok := forwardToUrlList[url]; ok {
|
||||
if _, ok := urlReceiverList[url]; ok {
|
||||
return errors.New("url already exists")
|
||||
}
|
||||
|
||||
forwardToUrlStat = true
|
||||
forwardToUrlList[url] = true
|
||||
urlReceiverStat = true
|
||||
urlReceiverList[url] = true
|
||||
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
func (wc *Controller) disableForwardToUrl(url string) error {
|
||||
func (wc *Controller) disableUrlReceiver(url string) error {
|
||||
|
||||
if _, ok := forwardToUrlList[url]; !ok {
|
||||
if _, ok := urlReceiverList[url]; !ok {
|
||||
return errors.New("url not exists")
|
||||
}
|
||||
|
||||
delete(forwardToUrlList, url)
|
||||
delete(urlReceiverList, url)
|
||||
|
||||
if len(forwardToUrlList) == 0 {
|
||||
if len(urlReceiverList) == 0 {
|
||||
if err := wc.DisableReceiver(false); err != nil {
|
||||
return err
|
||||
}
|
||||
forwardToUrlStat = false
|
||||
urlReceiverStat = false
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -45,7 +45,7 @@ func Route(rg *gin.RouterGroup) {
|
||||
rg.POST("accept_new_friend", ctrl.acceptNewFriend)
|
||||
rg.POST("receive_transfer", ctrl.receiveTransfer)
|
||||
|
||||
rg.POST("enable_forward_msg", ctrl.enableForwardMsg)
|
||||
rg.POST("disable_forward_msg", ctrl.disableForwardMsg)
|
||||
rg.POST("enable_receiver", ctrl.enabledReceiver)
|
||||
rg.POST("disable_receiver", ctrl.disableReceiver)
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ type DbSqlQueryRequest struct {
|
||||
}
|
||||
|
||||
// 消息转发参数
|
||||
type ForwardMsgRequest struct {
|
||||
type ReceiverRequest struct {
|
||||
Url string `json:"url"`
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user