Форум сайта python.su
Добрый день.
Продолжая изучать библиотеку telethon наткнулся на метод GetParticipantsRequest, который, по логике, должен отдавать объект класса ChannelParticipants, который имеет в себе переменную users, состоящую из списка юзеров канала. Набросав вот такой код:
from telethon import functions, types
from telethon.sync import TelegramClient
with TelegramClient("name", api_id, api_hash) as client:
result = client(functions.channels.GetParticipantsRequest(
channel=channel_username,
filter=types.ChannelParticipantsRecent(),
offset=1,
limit=200,
hash=0
))
users = [i for i in result.users]
Офлайн
Офлайн
ZerGБлагодаря информации по ссылке, которой вы со мной поделились, я написал такую функцию:
https://telethonn.readthedocs.io/en/latest/extra/examples/chats-and-channels.html#retrieving-all-chat-members-channels-too
def get_users_from_channel(client, channel_username):
offset = 0
limit = 100
all_participants = []
while True:
participants = client(GetParticipantsRequest(
channel_username, ChannelParticipantsSearch(''), offset, limit,
hash=0
))
if not participants.users:
break
all_participants.extend(participants.users)
offset += len(participants.users)
return all_participants
Отредактировано gandonio (Ноя. 1, 2022 00:18:56)
Офлайн
наверное стоит увеличить лимит?
Офлайн
ZerG
наверное стоит увеличить лимит?
Офлайн
К сожалению не могу - тут вопрос к автороам этой говнолибы
Но могу посоветовать использовать либы которые рекомендует сам телеграм
https://core.telegram.org/bots/samples#python
Думаю с ними будем много проще.
Офлайн