feat: keep compatible with ServerChan (close #63)

This commit is contained in:
JustSong
2023-05-06 12:06:53 +08:00
parent 581d9d62dc
commit 39da3f9771
2 changed files with 24 additions and 13 deletions
+21 -12
View File
@@ -13,6 +13,19 @@ import (
"time"
)
func keepCompatible(message *model.Message) {
// Keep compatible with ServerChan: https://sct.ftqq.com/sendkey
if message.Description == "" {
message.Description = message.Short
}
if message.Content == "" {
message.Content = message.Desp
}
if message.To == "" {
message.To = message.OpenId
}
}
func GetPushMessage(c *gin.Context) {
message := model.Message{
Title: c.Query("title"),
@@ -22,15 +35,11 @@ func GetPushMessage(c *gin.Context) {
Channel: c.Query("channel"),
Token: c.Query("token"),
To: c.Query("to"),
Desp: c.Query("desp"),
Short: c.Query("short"),
OpenId: c.Query("openid"),
}
if message.Description == "" {
// Keep compatible with ServerChan
message.Description = c.Query("desp")
}
if message.Channel == "" {
// Keep compatible with old version
message.Channel = c.Query("type")
}
keepCompatible(&message)
pushMessageHelper(c, &message)
}
@@ -42,8 +51,10 @@ func PostPushMessage(c *gin.Context) {
URL: c.PostForm("url"),
Channel: c.PostForm("channel"),
Token: c.PostForm("token"),
Desp: c.PostForm("desp"),
To: c.PostForm("to"),
Desp: c.PostForm("desp"),
Short: c.PostForm("short"),
OpenId: c.PostForm("openid"),
}
if message == (model.Message{}) {
// Looks like the user is using JSON
@@ -56,9 +67,7 @@ func PostPushMessage(c *gin.Context) {
return
}
}
if message.Description == "" {
message.Description = message.Desp
}
keepCompatible(&message)
pushMessageHelper(c, &message)
}
+3 -1
View File
@@ -11,7 +11,6 @@ type Message struct {
UserId int `json:"user_id" gorm:"index"`
Title string `json:"title"`
Description string `json:"description"`
Desp string `json:"desp" gorm:"-:all"` // alias for description
Content string `json:"content"`
URL string `json:"url" gorm:"column:url"`
Channel string `json:"channel"`
@@ -21,6 +20,9 @@ type Message struct {
Link string `json:"link" gorm:"unique;index"`
To string `json:"to" gorm:"column:to"` // if specified, will send to this user(s)
Status int `json:"status" gorm:"default:0"` // pending, sent, failed
OpenId string `json:"openid" gorm:"-:all"` // alias for to
Desp string `json:"desp" gorm:"-:all"` // alias for content
Short string `json:"short" gorm:"-:all"` // alias for description
}
func GetMessageById(id int, userId int) (*Message, error) {