コード例 #1
0
    def fetch_members(self, offset=0, count=1000):
        response = api_call('groups.getMembers', group_id=self.pk,
                            fields='first_name,last_name,sex,bdate,country,city',
                            offset=offset, count=count, v=5.9)
        users = User.remote.parse_response_users(response, items_field='items')

        users_to_fetch.disconnect(receiver=fetch_users) # prevent fetch users work
        self.members.add(*users)

        return users
コード例 #2
0
    def run(self):
        group = self.group
        offset = self.members_in_db_count

        while True:
            ids = self.fetch_members(group, offset=offset, count=1000)
            self._user_ids += ids
            self.members_in_db_count += len(ids)
            offset += 1000

            if len(ids) < 1000:
                break

        # save users
        users_to_fetch.disconnect(receiver=fetch_users) # prevent fetch users work
        group.members = self._user_ids

        if group.members_count > group.members.count():
            raise Exception("Error occured while fetch members for VK group %s" % group.pk)