Фильтруем диалоги и ищем участников без лишних запросов к Telegram API
Если скрипт сначала тянет весь список чатов, а потом уже ищет нужных людей, вы платите лишним трафиком и ловите лимиты. В Telethon логика проще: сначала сузить выборку, потом делать точечные обращения. Это снижает число RPC и ускоряет цикл обработки.
Рабочая схема такая:
• в get_dialogs() берите только нужные типы чатов: группы, каналы, лички;
• сразу отсекайте архив, ботов и пустые диалоги;
• для поиска участников используйте итераторы по одному чату, а не глобальный перебор всех диалогов;
• если нужен конкретный пользователь, проверяйте его через entity/participant, а не через массовый fetch.
Для больших аккаунтов критично не хранить весь список в памяти. Держите только id, access_hash и минимальные поля, которые реально участвуют в фильтре. Так проще кэшировать результаты, повторно использовать entity и не раздувать сессию лишними объектами. Разбираем логи ошибок: что пошло не так на стороне API?
Отдельно следите за порядком запросов. Сначала легкий локальный фильтр, потом тяжелые методы вроде iter_participants. Оптимизируем сессии, избегаем лимитов. Эффективность скрипта напрямую зависит от качества прокси и подготовки профилей.
Telethon мастерская
@telethon_workshops_ubt
Фильтруем диалоги и ищем участников без лишних запросов к Telegram API
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.