mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
Merge pull request #63 from wfjsw/patches/proper-flash-pic-support
proper flash pic support
This commit is contained in:
commit
0a7e4ea557
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
.idea
|
.idea
|
||||||
|
vendor/
|
||||||
|
@ -2,10 +2,11 @@ package message
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/Mrs4s/MiraiGo/binary"
|
|
||||||
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/Mrs4s/MiraiGo/binary"
|
||||||
|
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TextElement struct {
|
type TextElement struct {
|
||||||
@ -113,6 +114,12 @@ type RedBagElement struct {
|
|||||||
Title string
|
Title string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: 总之就是非常傻逼
|
||||||
|
|
||||||
|
type GroupFlashImgElement struct {
|
||||||
|
ImageElement
|
||||||
|
}
|
||||||
|
|
||||||
type GroupFlashPicElement struct {
|
type GroupFlashPicElement struct {
|
||||||
GroupImageElement
|
GroupImageElement
|
||||||
}
|
}
|
||||||
@ -122,6 +129,10 @@ type GroupShowPicElement struct {
|
|||||||
EffectId int32
|
EffectId int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FriendFlashImgElement struct {
|
||||||
|
ImageElement
|
||||||
|
}
|
||||||
|
|
||||||
type FriendFlashPicElement struct {
|
type FriendFlashPicElement struct {
|
||||||
FriendImageElement
|
FriendImageElement
|
||||||
}
|
}
|
||||||
@ -238,6 +249,14 @@ func (e *ImageElement) Type() ElementType {
|
|||||||
return Image
|
return Image
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *GroupFlashImgElement) Type() ElementType {
|
||||||
|
return Image
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *FriendFlashImgElement) Type() ElementType {
|
||||||
|
return Image
|
||||||
|
}
|
||||||
|
|
||||||
func (e *FaceElement) Type() ElementType {
|
func (e *FaceElement) Type() ElementType {
|
||||||
return Face
|
return Face
|
||||||
}
|
}
|
||||||
|
@ -2,16 +2,17 @@ package message
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"github.com/Mrs4s/MiraiGo/binary"
|
|
||||||
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
|
||||||
"github.com/Mrs4s/MiraiGo/utils"
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
"github.com/tidwall/gjson"
|
|
||||||
"math"
|
"math"
|
||||||
"reflect"
|
"reflect"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/Mrs4s/MiraiGo/binary"
|
||||||
|
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
||||||
|
"github.com/Mrs4s/MiraiGo/utils"
|
||||||
|
"github.com/golang/protobuf/proto"
|
||||||
|
"github.com/tidwall/gjson"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@ -132,6 +133,9 @@ func (msg *PrivateMessage) ToString() (res string) {
|
|||||||
res += e.Content
|
res += e.Content
|
||||||
case *ImageElement:
|
case *ImageElement:
|
||||||
res += "[Image:" + e.Filename + "]"
|
res += "[Image:" + e.Filename + "]"
|
||||||
|
case *FriendFlashImgElement:
|
||||||
|
// NOTE: ignore other components
|
||||||
|
return "[Image (flash):" + e.Filename + "]"
|
||||||
case *FaceElement:
|
case *FaceElement:
|
||||||
res += "[" + e.Name + "]"
|
res += "[" + e.Name + "]"
|
||||||
case *AtElement:
|
case *AtElement:
|
||||||
@ -168,6 +172,9 @@ func (msg *GroupMessage) ToString() (res string) {
|
|||||||
res += "[" + e.Name + "]"
|
res += "[" + e.Name + "]"
|
||||||
case *GroupImageElement:
|
case *GroupImageElement:
|
||||||
res += "[Image: " + e.ImageId + "]"
|
res += "[Image: " + e.ImageId + "]"
|
||||||
|
case *GroupFlashImgElement:
|
||||||
|
// NOTE: ignore other components
|
||||||
|
return "[Image (flash):" + e.Filename + "]"
|
||||||
case *AtElement:
|
case *AtElement:
|
||||||
res += e.Display
|
res += e.Display
|
||||||
case *RedBagElement:
|
case *RedBagElement:
|
||||||
@ -488,20 +495,26 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
|
|||||||
flash := &msg.MsgElemInfoServtype3{}
|
flash := &msg.MsgElemInfoServtype3{}
|
||||||
_ = proto.Unmarshal(elem.CommonElem.PbElem, flash)
|
_ = proto.Unmarshal(elem.CommonElem.PbElem, flash)
|
||||||
if flash.FlashTroopPic != nil {
|
if flash.FlashTroopPic != nil {
|
||||||
res = append(res, &ImageElement{
|
res = append(res, &GroupFlashImgElement{
|
||||||
|
ImageElement{
|
||||||
Filename: flash.FlashTroopPic.FilePath,
|
Filename: flash.FlashTroopPic.FilePath,
|
||||||
Size: flash.FlashTroopPic.Size,
|
Size: flash.FlashTroopPic.Size,
|
||||||
Width: flash.FlashTroopPic.Width,
|
Width: flash.FlashTroopPic.Width,
|
||||||
Height: flash.FlashTroopPic.Height,
|
Height: flash.FlashTroopPic.Height,
|
||||||
Md5: flash.FlashTroopPic.Md5,
|
Md5: flash.FlashTroopPic.Md5,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
if flash.FlashC2CPic != nil {
|
if flash.FlashC2CPic != nil {
|
||||||
res = append(res, &ImageElement{
|
res = append(res, &GroupFlashImgElement{
|
||||||
|
ImageElement{
|
||||||
Filename: flash.FlashC2CPic.FilePath,
|
Filename: flash.FlashC2CPic.FilePath,
|
||||||
Size: flash.FlashC2CPic.FileLen,
|
Size: flash.FlashC2CPic.FileLen,
|
||||||
Md5: flash.FlashC2CPic.PicMd5,
|
Md5: flash.FlashC2CPic.PicMd5,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -560,6 +573,12 @@ func ToReadableString(m []IMessageElement) (r string) {
|
|||||||
r += "/" + e.Name
|
r += "/" + e.Name
|
||||||
case *GroupImageElement:
|
case *GroupImageElement:
|
||||||
r += "[图片]"
|
r += "[图片]"
|
||||||
|
// NOTE: flash pic is singular
|
||||||
|
// To be clarified
|
||||||
|
// case *GroupFlashImgElement:
|
||||||
|
// return "[闪照]"
|
||||||
|
// case *FriendFlashImgElement:
|
||||||
|
// return "[闪照]"
|
||||||
case *AtElement:
|
case *AtElement:
|
||||||
r += e.Display
|
r += e.Display
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user