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) 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 {
go func(g *GroupInfo, wg *sync.WaitGroup) { k := i + batch
defer wg.Done() if k > len(r) {
m, err := c.GetGroupMembers(g) k = len(r)
if err != nil { }
return wg.Add(k - i)
} for j := i; j < k; j++ {
g.Members = m go func(g *GroupInfo, wg *sync.WaitGroup) {
}(group, &wg) 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 return r, nil
} }