Skip to content

Commit 83bcc46

Browse files
committed
url unescape
1 parent 7e3986c commit 83bcc46

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

service/bot/mirai2proto.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ func MiraiMsgToProtoMsg(messageChain []message.IMessageElement) []*onebot.Messag
2121
msgList = append(msgList, MiraiFaceToProtoFace(elem))
2222
case *message.VoiceElement:
2323
msgList = append(msgList, MiraiVoiceToProtoVoice(elem))
24+
case *message.ServiceElement:
25+
msgList = append(msgList, MiraiServiceToProtoService(elem))
26+
case *message.LightAppElement:
27+
msgList = append(msgList, MiraiLightAppToProtoLightApp(elem))
28+
case *message.ShortVideoElement:
29+
msgList = append(msgList, MiraiVideoToProtoVideo(elem))
2430
}
2531
}
2632
return msgList
@@ -77,3 +83,34 @@ func MiraiVoiceToProtoVoice(elem *message.VoiceElement) *onebot.Message {
7783
},
7884
}
7985
}
86+
87+
func MiraiServiceToProtoService(elem *message.ServiceElement) *onebot.Message {
88+
return &onebot.Message{
89+
Type: "service",
90+
Data: map[string]string{
91+
"id": strconv.Itoa(int(elem.Id)),
92+
"content": elem.Content,
93+
"res_id": elem.ResId,
94+
"sub_type": elem.SubType,
95+
},
96+
}
97+
}
98+
99+
func MiraiLightAppToProtoLightApp(elem *message.LightAppElement) *onebot.Message {
100+
return &onebot.Message{
101+
Type: "light_app",
102+
Data: map[string]string{
103+
"content": elem.Content,
104+
},
105+
}
106+
}
107+
108+
func MiraiVideoToProtoVideo(elem *message.ShortVideoElement) *onebot.Message {
109+
return &onebot.Message{
110+
Type: "video",
111+
Data: map[string]string{
112+
"name": elem.Name,
113+
"url": elem.Url,
114+
},
115+
}
116+
}

service/bot/mirai2raw.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ func MiraiMsgToRawMsg(messageChain []message.IMessageElement) string {
2121
result += fmt.Sprintf(`<face id="%d" name="%s"/>`, elem.Index, html.EscapeString(elem.Name))
2222
case *message.VoiceElement:
2323
result += fmt.Sprintf(`<voice url="%s"/>`, html.EscapeString(elem.Url))
24+
case *message.ServiceElement:
25+
result += fmt.Sprintf(`<service id="%d" content="%s" res_id="%d" sub_type="%s"/>`, elem.Id, html.EscapeString(elem.Content), elem.ResId, elem.SubType)
26+
case *message.LightAppElement:
27+
result += fmt.Sprintf(`<light_app content="%s"/>`, html.EscapeString(elem.Content))
28+
case *message.ShortVideoElement:
29+
result += fmt.Sprintf(`<video name="%s" url="%s"/>`, html.EscapeString(elem.Name), html.EscapeString(elem.Url))
2430
}
2531
}
2632
return result

service/bot/proto2mirai.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package bot
22

33
import (
4+
"html"
45
"strconv"
56

67
"github.com/Mrs4s/MiraiGo/message"
@@ -69,6 +70,7 @@ func ProtoImageToMiraiImage(data map[string]string) message.IMessageElement {
6970
log.Warnf("imageUrl不存在")
7071
return EmptyText()
7172
}
73+
url = html.UnescapeString(url)
7274
b, err := util.GetBytes(url)
7375
if err != nil {
7476
log.Errorf("下载图片失败")
@@ -86,6 +88,7 @@ func ProtoVoiceToMiraiVoice(data map[string]string) message.IMessageElement {
8688
log.Warnf("recordUrl不存在")
8789
return EmptyText()
8890
}
91+
url = html.UnescapeString(url)
8992
b, err := util.GetBytes(url)
9093
if err != nil {
9194
log.Errorf("下载语音失败")

0 commit comments

Comments
 (0)