mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
feat: 删除公告
feat: 获取公告现在会返回notice_id(fid) 用来删除公告 fix: “发送给新成员”的公告无法正常获取
This commit is contained in:
parent
e26832b72d
commit
af1358465c
@ -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
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user