Skip to content

Commit

Permalink
Beta421 (#427)
Browse files Browse the repository at this point in the history
* beta399

* beta400

* beta401

* beta402

* beta403

* beta404

* beta405

* beta406

* beta407

* beta408

* beta409

* beta410

* beta411

* beta412

* beta413

* beta414

* beta415

* beta416

* beta417

* btea418

* beta419

* beta420

* beta421
  • Loading branch information
Hoshinonyaruko committed Jun 14, 2024
1 parent 073ede7 commit a7b0981
Showing 1 changed file with 29 additions and 31 deletions.
60 changes: 29 additions & 31 deletions handlers/message_parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -517,43 +517,41 @@ func parseMessageContent(paramsMessage callapi.ParamsContent, message callapi.Ac
qqNumber, _ := message["data"].(map[string]interface{})["qq"].(string)
messageText = "[CQ:at,qq=" + qqNumber + "]"
case "markdown":
mdContent, ok := message["data"]
if ok {
if mdContentMap, isMap := mdContent.(map[string]interface{}); isMap {
// mdContent是map[string]interface{},按map处理
mdContentBytes, err := json.Marshal(mdContentMap)
mdContent := message["data"]
if mdContentMap, isMap := mdContent.(map[string]interface{}); isMap {
// mdContent是map[string]interface{},按map处理
mdContentBytes, err := json.Marshal(mdContentMap)
if err != nil {
mylog.Printf("Error marshaling mdContentMap to JSON:%v", err)
}
encoded := base64.StdEncoding.EncodeToString(mdContentBytes)
messageText = "[CQ:markdown,data=base64:https://" + encoded + "]"
} else if mdContentStr, isString := mdContent.(string); isString {
// mdContent是string
if strings.HasPrefix(mdContentStr, "base64:https://") {
// 如果以base64:https://开头,直接使用
messageText = "[CQ:markdown,data=" + mdContentStr + "]"
} else {
// 处理实体化后的JSON文本
mdContentStr = strings.ReplaceAll(mdContentStr, "&", "&")
mdContentStr = strings.ReplaceAll(mdContentStr, "[", "[")
mdContentStr = strings.ReplaceAll(mdContentStr, "]", "]")
mdContentStr = strings.ReplaceAll(mdContentStr, ",", ",")

// 将处理过的字符串视为JSON对象,进行序列化和编码
var jsonMap map[string]interface{}
if err := json.Unmarshal([]byte(mdContentStr), &jsonMap); err != nil {
mylog.Printf("Error unmarshaling string to JSON:%v", err)
}
mdContentBytes, err := json.Marshal(jsonMap)
if err != nil {
mylog.Printf("Error marshaling mdContentMap to JSON:%v", err)
mylog.Printf("Error marshaling jsonMap to JSON:%v", err)
}
encoded := base64.StdEncoding.EncodeToString(mdContentBytes)
messageText = "[CQ:markdown,data=base64:https://" + encoded + "]"
} else if mdContentStr, isString := mdContent.(string); isString {
// mdContent是string
if strings.HasPrefix(mdContentStr, "base64:https://") {
// 如果以base64:https://开头,直接使用
messageText = "[CQ:markdown,data=" + mdContentStr + "]"
} else {
// 处理实体化后的JSON文本
mdContentStr = strings.ReplaceAll(mdContentStr, "&", "&")
mdContentStr = strings.ReplaceAll(mdContentStr, "[", "[")
mdContentStr = strings.ReplaceAll(mdContentStr, "]", "]")
mdContentStr = strings.ReplaceAll(mdContentStr, ",", ",")

// 将处理过的字符串视为JSON对象,进行序列化和编码
var jsonMap map[string]interface{}
if err := json.Unmarshal([]byte(mdContentStr), &jsonMap); err != nil {
mylog.Printf("Error unmarshaling string to JSON:%v", err)
}
mdContentBytes, err := json.Marshal(jsonMap)
if err != nil {
mylog.Printf("Error marshaling jsonMap to JSON:%v", err)
}
encoded := base64.StdEncoding.EncodeToString(mdContentBytes)
messageText = "[CQ:markdown,data=base64:https://" + encoded + "]"
}
}
} else {
mylog.Printf("Error marshaling markdown segment to interface,contain type but data is nil.")
mylog.Printf("Error marshaling mdContent wrong type.")
}
}
default:
Expand Down

0 comments on commit a7b0981

Please sign in to comment.