mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
client: avoid ReadAll in image ocr
This commit is contained in:
parent
ca4580dad5
commit
76539e425d
@ -1,8 +1,6 @@
|
|||||||
package client
|
package client
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"crypto/md5"
|
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
@ -211,7 +209,7 @@ func (c *QQClient) ImageOcr(img interface{}) (*OcrResponse, error) {
|
|||||||
case *message.GroupImageElement:
|
case *message.GroupImageElement:
|
||||||
url = e.Url
|
url = e.Url
|
||||||
if b, err := utils.HTTPGetReadCloser(e.Url, ""); err == nil {
|
if b, err := utils.HTTPGetReadCloser(e.Url, ""); err == nil {
|
||||||
if url, err = c.uploadOcrImage(b); err != nil {
|
if url, err = c.uploadOcrImage(b, e.Size, e.Md5); err != nil {
|
||||||
url = e.Url
|
url = e.Url
|
||||||
}
|
}
|
||||||
_ = b.Close()
|
_ = b.Close()
|
||||||
@ -316,7 +314,7 @@ func (c *QQClient) buildGroupImageDownloadPacket(fileId, groupCode int64, fileMd
|
|||||||
return c.uniPacket("ImgStore.GroupPicDown", payload)
|
return c.uniPacket("ImgStore.GroupPicDown", payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *QQClient) uploadOcrImage(img io.Reader) (string, error) {
|
func (c *QQClient) uploadOcrImage(img io.Reader, size int32, sum []byte) (string, error) {
|
||||||
r := make([]byte, 16)
|
r := make([]byte, 16)
|
||||||
rand.Read(r)
|
rand.Read(r)
|
||||||
ext, _ := proto.Marshal(&highway2.CommFileExtReq{
|
ext, _ := proto.Marshal(&highway2.CommFileExtReq{
|
||||||
@ -324,13 +322,11 @@ func (c *QQClient) uploadOcrImage(img io.Reader) (string, error) {
|
|||||||
Uuid: binary.GenUUID(r),
|
Uuid: binary.GenUUID(r),
|
||||||
})
|
})
|
||||||
|
|
||||||
h := md5.New()
|
|
||||||
buf, _ := io.ReadAll(io.TeeReader(img, h))
|
|
||||||
rsp, err := c.highwaySession.UploadBDH(highway.BdhInput{
|
rsp, err := c.highwaySession.UploadBDH(highway.BdhInput{
|
||||||
CommandID: 76,
|
CommandID: 76,
|
||||||
Body: bytes.NewReader(buf),
|
Body: img,
|
||||||
Size: int64(len(buf)),
|
Size: int64(size),
|
||||||
Sum: h.Sum(nil),
|
Sum: sum,
|
||||||
Ticket: c.highwaySession.SigSession,
|
Ticket: c.highwaySession.SigSession,
|
||||||
Ext: ext,
|
Ext: ext,
|
||||||
Encrypt: false,
|
Encrypt: false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user