mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-05 03:23:50 +08:00
fix private image upload error.
This commit is contained in:
parent
1b08a69f87
commit
a54d978fa9
@ -641,18 +641,20 @@ func (c *QQClient) UploadPrivateImage(target int64, img []byte) (*message.Friend
|
|||||||
func (c *QQClient) uploadPrivateImage(target int64, img []byte, count int) (*message.FriendImageElement, error) {
|
func (c *QQClient) uploadPrivateImage(target int64, img []byte, count int) (*message.FriendImageElement, error) {
|
||||||
count++
|
count++
|
||||||
h := md5.Sum(img)
|
h := md5.Sum(img)
|
||||||
e, err := c.QueryFriendImage(target, h[:], int32(len(img)))
|
e, err := c.QueryFriendImage(target, h[:], img, int32(len(img)))
|
||||||
if err != nil {
|
if err == ErrNotExists {
|
||||||
// use group highway upload and query again for image id.
|
// use group highway upload and query again for image id.
|
||||||
if _, err = c.UploadGroupImage(target, img); err != nil {
|
if _, err = c.UploadGroupImage(target, img); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// safe
|
|
||||||
if count >= 5 {
|
if count >= 5 {
|
||||||
return nil, errors.New("upload failed")
|
return e, nil
|
||||||
}
|
}
|
||||||
return c.uploadPrivateImage(target, img, count)
|
return c.uploadPrivateImage(target, img, count)
|
||||||
}
|
}
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return e, nil
|
return e, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -689,7 +691,7 @@ func (c *QQClient) QueryGroupImage(groupCode int64, hash []byte, size int32) (*m
|
|||||||
return nil, errors.New("image not exists")
|
return nil, errors.New("image not exists")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *QQClient) QueryFriendImage(target int64, hash []byte, size int32) (*message.FriendImageElement, error) {
|
func (c *QQClient) QueryFriendImage(target int64, hash, img []byte, size int32) (*message.FriendImageElement, error) {
|
||||||
i, err := c.sendAndWait(c.buildOffPicUpPacket(target, hash, size))
|
i, err := c.sendAndWait(c.buildOffPicUpPacket(target, hash, size))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -699,7 +701,10 @@ func (c *QQClient) QueryFriendImage(target int64, hash []byte, size int32) (*mes
|
|||||||
return nil, errors.New(rsp.Message)
|
return nil, errors.New(rsp.Message)
|
||||||
}
|
}
|
||||||
if !rsp.IsExists {
|
if !rsp.IsExists {
|
||||||
return nil, errors.New("image not exists")
|
return &message.FriendImageElement{
|
||||||
|
ImageId: rsp.ResourceId,
|
||||||
|
Md5: hash,
|
||||||
|
}, ErrNotExists
|
||||||
}
|
}
|
||||||
return &message.FriendImageElement{
|
return &message.FriendImageElement{
|
||||||
ImageId: rsp.ResourceId,
|
ImageId: rsp.ResourceId,
|
||||||
|
@ -11,6 +11,7 @@ import (
|
|||||||
var (
|
var (
|
||||||
ErrAlreadyOnline = errors.New("already online")
|
ErrAlreadyOnline = errors.New("already online")
|
||||||
ErrMemberNotFound = errors.New("member not found")
|
ErrMemberNotFound = errors.New("member not found")
|
||||||
|
ErrNotExists = errors.New("not exists")
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user