mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-07 12:43:32 +08:00
commit
6b9dd7feaa
@ -7,6 +7,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"image"
|
||||
"io"
|
||||
"math"
|
||||
"math/rand"
|
||||
@ -645,7 +646,12 @@ func (c *QQClient) UploadGroupImage(groupCode int64, img []byte) (*message.Group
|
||||
}
|
||||
return nil, errors.New("upload failed")
|
||||
ok:
|
||||
return message.NewGroupImage(binary.CalculateImageResourceId(h[:]), h[:], rsp.FileId, int32(len(img)), rsp.Width, rsp.Height), nil
|
||||
i, _, _ := image.DecodeConfig(bytes.NewReader(img))
|
||||
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)), int32(i.Width), int32(i.Height), imageType), nil
|
||||
}
|
||||
|
||||
func (c *QQClient) UploadPrivateImage(target int64, img []byte) (*message.FriendImageElement, error) {
|
||||
@ -700,7 +706,7 @@ func (c *QQClient) QueryGroupImage(groupCode int64, hash []byte, size int32) (*m
|
||||
return nil, errors.New(rsp.Message)
|
||||
}
|
||||
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")
|
||||
}
|
||||
|
@ -23,13 +23,14 @@ type ImageElement struct {
|
||||
}
|
||||
|
||||
type GroupImageElement struct {
|
||||
ImageId string
|
||||
FileId int64
|
||||
Size int32
|
||||
Width int32
|
||||
Height int32
|
||||
Md5 []byte
|
||||
Url string
|
||||
ImageId string
|
||||
FileId int64
|
||||
ImageType int32
|
||||
Size int32
|
||||
Width int32
|
||||
Height int32
|
||||
Md5 []byte
|
||||
Url string
|
||||
}
|
||||
|
||||
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{
|
||||
ImageId: id,
|
||||
FileId: fid,
|
||||
Md5: md5,
|
||||
Size: size,
|
||||
Width: width,
|
||||
Height: height,
|
||||
Url: "http://gchat.qpic.cn/gchatpic_new/1/0-0-" + strings.ReplaceAll(binary.CalculateImageResourceId(md5)[1:37], "-", "") + "/0?term=2",
|
||||
ImageId: id,
|
||||
FileId: fid,
|
||||
Md5: md5,
|
||||
Size: size,
|
||||
ImageType: imageType,
|
||||
Width: width,
|
||||
Height: height,
|
||||
Url: "http://gchat.qpic.cn/gchatpic_new/1/0-0-" + strings.ReplaceAll(binary.CalculateImageResourceId(md5)[1:37], "-", "") + "/0?term=2",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,12 +75,16 @@ func (e *GroupImageElement) Pack() (r []*msg.Elem) {
|
||||
CustomFace: &msg.CustomFace{
|
||||
FileType: 66,
|
||||
Useful: 1,
|
||||
Origin: 1,
|
||||
FileId: int32(e.FileId),
|
||||
FilePath: e.ImageId,
|
||||
Size: e.Size,
|
||||
Md5: e.Md5[:],
|
||||
Flag: make([]byte, 4),
|
||||
//Origin: 1,
|
||||
BizType: 5,
|
||||
Width: e.Width,
|
||||
Height: e.Height,
|
||||
FileId: int32(e.FileId),
|
||||
FilePath: e.ImageId,
|
||||
ImageType: e.ImageType,
|
||||
Size: e.Size,
|
||||
Md5: e.Md5[:],
|
||||
Flag: make([]byte, 4),
|
||||
//OldData: imgOld,
|
||||
},
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user