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