initial commit
This commit is contained in:
commit
6358d0754b
34 changed files with 82616 additions and 0 deletions
53
client/puller/supergroup.go
Normal file
53
client/puller/supergroup.go
Normal file
|
@ -0,0 +1,53 @@
|
|||
package puller
|
||||
|
||||
import (
|
||||
"github.com/astravexton/go-tdlib/client"
|
||||
)
|
||||
|
||||
func SupergroupMembers(tdlibClient *client.Client, supergroupId int32) (chan *client.ChatMember, chan error) {
|
||||
chatMemberChan := make(chan *client.ChatMember, 10)
|
||||
errChan := make(chan error, 1)
|
||||
|
||||
var filter client.SupergroupMembersFilter = nil
|
||||
var offset int32 = 0
|
||||
var limit int32 = 200
|
||||
|
||||
go supergroupMembers(tdlibClient, chatMemberChan, errChan, supergroupId, filter, offset, limit)
|
||||
|
||||
return chatMemberChan, errChan
|
||||
}
|
||||
|
||||
func supergroupMembers(tdlibClient *client.Client, chatMemberChan chan *client.ChatMember, errChan chan error, supergroupId int32, filter client.SupergroupMembersFilter, offset int32, limit int32) {
|
||||
defer func() {
|
||||
close(chatMemberChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
var page int32 = 0
|
||||
|
||||
for {
|
||||
chatMembers, err := tdlibClient.GetSupergroupMembers(&client.GetSupergroupMembersRequest{
|
||||
SupergroupId: supergroupId,
|
||||
Filter: filter,
|
||||
Offset: page*limit + offset,
|
||||
Limit: limit,
|
||||
})
|
||||
if err != nil {
|
||||
errChan <- err
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if len(chatMembers.Members) == 0 {
|
||||
errChan <- EOP
|
||||
|
||||
break
|
||||
}
|
||||
|
||||
for _, member := range chatMembers.Members {
|
||||
chatMemberChan <- member
|
||||
}
|
||||
|
||||
page++
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue