mirror of
https://github.com/songquanpeng/message-pusher.git
synced 2025-09-26 20:21:22 +08:00
feat: support render_mode now
This commit is contained in:
@@ -222,6 +222,10 @@ proxy_send_timeout 300s;
|
|||||||
1. `@all`:推送给所有用户。
|
1. `@all`:推送给所有用户。
|
||||||
2. `user1|user2|user3`:推送给多个用户,用户之间使用 `|` 分隔。
|
2. `user1|user2|user3`:推送给多个用户,用户之间使用 `|` 分隔。
|
||||||
8. `async`:选填,如果设置为 `true` 则消息推送将在后台异步进行,返回结果包含 `uuid` 字段,可用于后续[获取消息发送状态](./docs/API.md#通过消息 UUID 获取消息发送状态)。
|
8. `async`:选填,如果设置为 `true` 则消息推送将在后台异步进行,返回结果包含 `uuid` 字段,可用于后续[获取消息发送状态](./docs/API.md#通过消息 UUID 获取消息发送状态)。
|
||||||
|
9. `render_mode`:选填,
|
||||||
|
1. 如果设置为 `code`,则消息体会被自动嵌套在代码块中进行渲染;
|
||||||
|
2. 如果设置为 `raw`,则不进行 Markdown 解析;
|
||||||
|
3. 默认 `markdown`,即进行 Markdown 解析。
|
||||||
3. `POST` 请求方式:字段与上面 `GET` 请求方式保持一致。
|
3. `POST` 请求方式:字段与上面 `GET` 请求方式保持一致。
|
||||||
+ 如果发送的是 JSON,HTTP Header `Content-Type` 请务必设置为 `application/json`,否则一律按 Form 处理。
|
+ 如果发送的是 JSON,HTTP Header `Content-Type` 请务必设置为 `application/json`,否则一律按 Form 处理。
|
||||||
+ POST 请求方式下的 `token` 字段也可以通过 URL 查询参数进行设置。
|
+ POST 请求方式下的 `token` 字段也可以通过 URL 查询参数进行设置。
|
||||||
|
@@ -40,6 +40,7 @@ func GetPushMessage(c *gin.Context) {
|
|||||||
Short: c.Query("short"),
|
Short: c.Query("short"),
|
||||||
OpenId: c.Query("openid"),
|
OpenId: c.Query("openid"),
|
||||||
Async: c.Query("async") == "true",
|
Async: c.Query("async") == "true",
|
||||||
|
RenderMode: c.Query("render_mode"),
|
||||||
}
|
}
|
||||||
keepCompatible(&message)
|
keepCompatible(&message)
|
||||||
pushMessageHelper(c, &message)
|
pushMessageHelper(c, &message)
|
||||||
@@ -71,6 +72,7 @@ func PostPushMessage(c *gin.Context) {
|
|||||||
Short: c.PostForm("short"),
|
Short: c.PostForm("short"),
|
||||||
OpenId: c.PostForm("openid"),
|
OpenId: c.PostForm("openid"),
|
||||||
Async: c.PostForm("async") == "true",
|
Async: c.PostForm("async") == "true",
|
||||||
|
RenderMode: c.PostForm("render_mode"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if message == (model.Message{}) {
|
if message == (model.Message{}) {
|
||||||
@@ -163,6 +165,11 @@ func processMessage(c *gin.Context, message *model.Message, user *model.User) {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if message.RenderMode == "code" {
|
||||||
|
if message.Content != "" {
|
||||||
|
message.Content = fmt.Sprintf("```\n%s\n```", message.Content)
|
||||||
|
}
|
||||||
|
}
|
||||||
err = saveAndSendMessage(user, message, channel_)
|
err = saveAndSendMessage(user, message, channel_)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(http.StatusOK, gin.H{
|
c.JSON(http.StatusOK, gin.H{
|
||||||
@@ -259,16 +266,18 @@ func RenderMessage(c *gin.Context) {
|
|||||||
c.Status(http.StatusNotFound)
|
c.Status(http.StatusNotFound)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if message.Description != "" {
|
if message.RenderMode != "raw" {
|
||||||
message.Description, err = common.Markdown2HTML(message.Description)
|
if message.Description != "" {
|
||||||
if err != nil {
|
message.Description, err = common.Markdown2HTML(message.Description)
|
||||||
common.SysLog(err.Error())
|
if err != nil {
|
||||||
|
common.SysLog(err.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
if message.Content != "" {
|
||||||
if message.Content != "" {
|
message.HTMLContent, err = common.Markdown2HTML(message.Content)
|
||||||
message.HTMLContent, err = common.Markdown2HTML(message.Content)
|
if err != nil {
|
||||||
if err != nil {
|
common.SysLog(err.Error())
|
||||||
common.SysLog(err.Error())
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.HTML(http.StatusOK, "message.html", gin.H{
|
c.HTML(http.StatusOK, "message.html", gin.H{
|
||||||
|
@@ -24,6 +24,7 @@ type Message struct {
|
|||||||
Desp string `json:"desp" gorm:"-:all"` // alias for content
|
Desp string `json:"desp" gorm:"-:all"` // alias for content
|
||||||
Short string `json:"short" gorm:"-:all"` // alias for description
|
Short string `json:"short" gorm:"-:all"` // alias for description
|
||||||
Async bool `json:"async" gorm:"-"` // if true, will send message asynchronously
|
Async bool `json:"async" gorm:"-"` // if true, will send message asynchronously
|
||||||
|
RenderMode string `json:"render_mode" gorm:"raw"` // markdown (default), code, raw
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMessageByIds(id int, userId int) (*Message, error) {
|
func GetMessageByIds(id int, userId int) (*Message, error) {
|
||||||
|
Reference in New Issue
Block a user