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

Merge pull request #284 from Akegarasu/feat-del-group-notice

feat: 删除公告
This commit is contained in:
Mrs4s 2022-07-01 00:01:33 +08:00 committed by GitHub
commit a39b3fdd96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -119,17 +119,22 @@ func (c *QQClient) GetTts(text string) ([]byte, error) {
/* -------- GroupNotice -------- */ /* -------- GroupNotice -------- */
type groupNoticeRsp struct { type groupNoticeRsp struct {
Feeds []*struct { Feeds []*GroupNoticeFeed `json:"feeds"`
Inst []*GroupNoticeFeed `json:"inst"`
}
type GroupNoticeFeed struct {
NoticeId string `json:"fid"`
SenderId uint32 `json:"u"` SenderId uint32 `json:"u"`
PublishTime uint64 `json:"pubt"` PublishTime uint64 `json:"pubt"`
Message struct { Message struct {
Text string `json:"text"` Text string `json:"text"`
Images []noticeImage `json:"pics"` Images []noticeImage `json:"pics"`
} `json:"msg"` } `json:"msg"`
} `json:"feeds"`
} }
type GroupNoticeMessage struct { type GroupNoticeMessage struct {
NoticeId string `json:"notice_id"`
SenderId uint32 `json:"sender_id"` SenderId uint32 `json:"sender_id"`
PublishTime uint64 `json:"publish_time"` PublishTime uint64 `json:"publish_time"`
Message struct { Message struct {
@ -187,9 +192,8 @@ func (c *QQClient) GetGroupNotice(groupCode int64) (l []*GroupNoticeMessage, err
} }
func (c *QQClient) parseGroupNoticeJson(s *groupNoticeRsp) []*GroupNoticeMessage { func (c *QQClient) parseGroupNoticeJson(s *groupNoticeRsp) []*GroupNoticeMessage {
o := make([]*GroupNoticeMessage, 0, len(s.Feeds)) o := make([]*GroupNoticeMessage, 0, len(s.Feeds)+len(s.Inst))
for _, v := range s.Feeds { parse := func(v *GroupNoticeFeed) {
ims := make([]GroupNoticeImage, 0, len(v.Message.Images)) ims := make([]GroupNoticeImage, 0, len(v.Message.Images))
for i := 0; i < len(v.Message.Images); i++ { for i := 0; i < len(v.Message.Images); i++ {
ims = append(ims, GroupNoticeImage{ ims = append(ims, GroupNoticeImage{
@ -200,6 +204,7 @@ func (c *QQClient) parseGroupNoticeJson(s *groupNoticeRsp) []*GroupNoticeMessage
} }
o = append(o, &GroupNoticeMessage{ o = append(o, &GroupNoticeMessage{
NoticeId: v.NoticeId,
SenderId: v.SenderId, SenderId: v.SenderId,
PublishTime: v.PublishTime, PublishTime: v.PublishTime,
Message: struct { Message: struct {
@ -211,7 +216,12 @@ func (c *QQClient) parseGroupNoticeJson(s *groupNoticeRsp) []*GroupNoticeMessage
}, },
}) })
} }
for _, v := range s.Feeds {
parse(v)
}
for _, v := range s.Inst {
parse(v)
}
return o return o
} }
@ -277,3 +287,12 @@ func (c *QQClient) AddGroupNoticeWithPic(groupCode int64, text string, pic []byt
} }
return nil return nil
} }
func (c *QQClient) DelGroupNotice(groupCode int64, fid string) error {
body := fmt.Sprintf(`fid=%s&qid=%v&bkn=%v&ft=23&op=1`, fid, groupCode, c.getCSRFToken())
_, err := utils.HttpPostBytesWithCookie("https://web.qun.qq.com/cgi-bin/announce/del_feed", []byte(body), c.getCookiesWithDomain("qun.qq.com"))
if err != nil {
return errors.Wrap(err, "request error")
}
return nil
}