1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

Merge pull request #33 from wfjsw/patches/get-group-list-batch

group list batch
This commit is contained in:
Mrs4s 2020-08-25 01:06:55 +08:00 committed by GitHub
commit c19beecc07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -630,8 +630,14 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
} }
r := rsp.([]*GroupInfo) r := rsp.([]*GroupInfo)
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
wg.Add(len(r)) batch := 50
for _, group := range r { for i := 0; i < len(r); i += batch {
k := i + batch
if k > len(r) {
k = len(r)
}
wg.Add(k - i)
for j := i; j < k; j++ {
go func(g *GroupInfo, wg *sync.WaitGroup) { go func(g *GroupInfo, wg *sync.WaitGroup) {
defer wg.Done() defer wg.Done()
m, err := c.GetGroupMembers(g) m, err := c.GetGroupMembers(g)
@ -639,9 +645,10 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
return return
} }
g.Members = m g.Members = m
}(group, &wg) }(r[j], &wg)
} }
wg.Wait() wg.Wait()
}
return r, nil return r, nil
} }