Fix db_query field value to string

This commit is contained in:
若海
2024-01-12 09:02:19 +08:00
parent cd19e7d3f8
commit c9d8115c65
10 changed files with 102 additions and 61 deletions
+41
View File
@@ -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
```
+3 -3
View File
@@ -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
+13 -13
View File
@@ -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,
@@ -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
+2 -2
View File
@@ -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)
}
+1 -1
View File
@@ -14,7 +14,7 @@ type DbSqlQueryRequest struct {
}
// 消息转发参数
type ForwardMsgRequest struct {
type ReceiverRequest struct {
Url string `json:"url"`
}