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,18 +630,25 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
}
r := rsp.([]*GroupInfo)
wg := sync.WaitGroup{}
wg.Add(len(r))
for _, group := range r {
go func(g *GroupInfo, wg *sync.WaitGroup) {
defer wg.Done()
m, err := c.GetGroupMembers(g)
if err != nil {
return
}
g.Members = m
}(group, &wg)
batch := 50
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) {
defer wg.Done()
m, err := c.GetGroupMembers(g)
if err != nil {
return
}
g.Members = m
}(r[j], &wg)
}
wg.Wait()
}
wg.Wait()
return r, nil
}