1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 19:17:38 +08:00

fix group gif

This commit is contained in:
wdvxdr 2020-11-14 22:58:23 +08:00
parent a455b21bad
commit bd530da3df
3 changed files with 31 additions and 23 deletions

View File

@ -644,7 +644,11 @@ func (c *QQClient) UploadGroupImage(groupCode int64, img []byte) (*message.Group
} }
return nil, errors.New("upload failed") return nil, errors.New("upload failed")
ok: ok:
return message.NewGroupImage(binary.CalculateImageResourceId(h[:]), h[:], rsp.FileId, int32(len(img)), rsp.Width, rsp.Height), nil var imageType int32 = 1000
if bytes.HasPrefix(img, []byte{0x47, 0x49, 0x46, 0x38}) {
imageType = 2000
}
return message.NewGroupImage(binary.CalculateImageResourceId(h[:]), h[:], rsp.FileId, int32(len(img)), rsp.Width, rsp.Height, imageType), nil
} }
func (c *QQClient) UploadPrivateImage(target int64, img []byte) (*message.FriendImageElement, error) { func (c *QQClient) UploadPrivateImage(target int64, img []byte) (*message.FriendImageElement, error) {
@ -699,7 +703,7 @@ func (c *QQClient) QueryGroupImage(groupCode int64, hash []byte, size int32) (*m
return nil, errors.New(rsp.Message) return nil, errors.New(rsp.Message)
} }
if rsp.IsExists { if rsp.IsExists {
return message.NewGroupImage(binary.CalculateImageResourceId(hash), hash, rsp.FileId, size, rsp.Width, rsp.Height), nil return message.NewGroupImage(binary.CalculateImageResourceId(hash), hash, rsp.FileId, size, rsp.Width, rsp.Height, 1000), nil
} }
return nil, errors.New("image not exists") return nil, errors.New("image not exists")
} }

View File

@ -23,13 +23,14 @@ type ImageElement struct {
} }
type GroupImageElement struct { type GroupImageElement struct {
ImageId string ImageId string
FileId int64 FileId int64
Size int32 ImageType int32
Width int32 Size int32
Height int32 Width int32
Md5 []byte Height int32
Url string Md5 []byte
Url string
} }
type VoiceElement struct { type VoiceElement struct {
@ -143,15 +144,16 @@ func NewImage(data []byte) *ImageElement {
} }
} }
func NewGroupImage(id string, md5 []byte, fid int64, size, width, height int32) *GroupImageElement { func NewGroupImage(id string, md5 []byte, fid int64, size, width, height, imageType int32) *GroupImageElement {
return &GroupImageElement{ return &GroupImageElement{
ImageId: id, ImageId: id,
FileId: fid, FileId: fid,
Md5: md5, Md5: md5,
Size: size, Size: size,
Width: width, ImageType: imageType,
Height: height, Width: width,
Url: "http://gchat.qpic.cn/gchatpic_new/1/0-0-" + strings.ReplaceAll(binary.CalculateImageResourceId(md5)[1:37], "-", "") + "/0?term=2", Height: height,
Url: "http://gchat.qpic.cn/gchatpic_new/1/0-0-" + strings.ReplaceAll(binary.CalculateImageResourceId(md5)[1:37], "-", "") + "/0?term=2",
} }
} }

View File

@ -75,12 +75,14 @@ func (e *GroupImageElement) Pack() (r []*msg.Elem) {
CustomFace: &msg.CustomFace{ CustomFace: &msg.CustomFace{
FileType: 66, FileType: 66,
Useful: 1, Useful: 1,
Origin: 1, //Origin: 1,
FileId: int32(e.FileId), BizType: 5,
FilePath: e.ImageId, FileId: int32(e.FileId),
Size: e.Size, FilePath: e.ImageId,
Md5: e.Md5[:], ImageType: e.ImageType,
Flag: make([]byte, 4), Size: e.Size,
Md5: e.Md5[:],
Flag: make([]byte, 4),
//OldData: imgOld, //OldData: imgOld,
}, },
}) })