1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-05 03:23:50 +08:00

use stream upload private img.

This commit is contained in:
Mrs4s 2021-01-03 00:18:28 +08:00
parent f1f3e66796
commit e1e1c97a56

View File

@ -613,17 +613,19 @@ ok:
return message.NewGroupImage(binary.CalculateImageResourceId(fh[:]), fh[:], rsp.FileId, int32(length), int32(i.Width), int32(i.Height), imageType), nil return message.NewGroupImage(binary.CalculateImageResourceId(fh[:]), fh[:], rsp.FileId, int32(length), int32(i.Width), int32(i.Height), imageType), nil
} }
func (c *QQClient) UploadPrivateImage(target int64, img []byte) (*message.FriendImageElement, error) { func (c *QQClient) UploadPrivateImage(target int64, img io.ReadSeeker) (*message.FriendImageElement, error) {
return c.uploadPrivateImage(target, img, 0) return c.uploadPrivateImage(target, img, 0)
} }
func (c *QQClient) uploadPrivateImage(target int64, img []byte, count int) (*message.FriendImageElement, error) { func (c *QQClient) uploadPrivateImage(target int64, img io.ReadSeeker, count int) (*message.FriendImageElement, error) {
count++ count++
h := md5.Sum(img) h := md5.New()
e, err := c.QueryFriendImage(target, h[:], int32(len(img))) length, _ := io.Copy(h, img)
fh := h.Sum(nil)
e, err := c.QueryFriendImage(target, fh[:], int32(length))
if errors.Is(err, ErrNotExists) { if errors.Is(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, bytes.NewReader(img)); err != nil { if _, err = c.UploadGroupImage(target, img); err != nil {
return nil, err return nil, err
} }
if count >= 5 { if count >= 5 {