MCPcopy Create free account
hub / github.com/LagrangeDev/LagrangeGo / uploadGroupNoticePic

Method uploadGroupNoticePic

client/operation.go:1163–1199  ·  view source on GitHub ↗
(bkn int, img []byte)

Source from the content-addressed store, hash-verified

1161}
1162
1163func (c *QQClient) uploadGroupNoticePic(bkn int, img []byte) (*entity.NoticeImage, error) {
1164 ret := &entity.NoticeImage{}
1165 buf := new(bytes.Buffer)
1166 w := multipart.NewWriter(buf)
1167 _ = w.WriteField("bkn", strconv.Itoa(bkn))
1168 _ = w.WriteField("source", "troopNotice")
1169 _ = w.WriteField("m", "0")
1170 h := make(textproto.MIMEHeader)
1171 h.Set("Content-Disposition", `form-data; name="pic_up"; filename="temp_uploadFile.png"`)
1172 h.Set("Content-Type", "image/png")
1173 fw, _ := w.CreatePart(h)
1174 _, _ = fw.Write(img)
1175 _ = w.Close()
1176 req, err := http.NewRequest(http.MethodPost, "https://web.qun.qq.com/cgi-bin/announce/upload_img", buf)
1177 if err != nil {
1178 return ret, err
1179 }
1180 req.Header.Set("Content-Type", w.FormDataContentType())
1181 resp, err := c.SendRequestWithCookie(req)
1182 if err != nil {
1183 return ret, err
1184 }
1185 var res entity.NoticePicUpResponse
1186 err = json.NewDecoder(resp.Body).Decode(&res)
1187 if err != nil {
1188 return ret, err
1189 }
1190 _ = resp.Body.Close()
1191 if res.ErrorCode != 0 {
1192 return ret, errors.New(res.ErrorMessage)
1193 }
1194 err = json.Unmarshal([]byte(html.UnescapeString(res.ID)), &ret)
1195 if err != nil {
1196 return ret, err
1197 }
1198 return ret, nil
1199}
1200
1201// AddGroupNoticeSimple 发群公告
1202func (c *QQClient) AddGroupNoticeSimple(groupUin uint32, text string) (noticeID string, err error) {

Callers 1

AddGroupNoticeWithPicMethod · 0.95

Calls 4

SendRequestWithCookieMethod · 0.95
UnmarshalMethod · 0.80
WriteMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected