Фильтрация диалогов и поиск участников без лишних RPC и FloodWait
Когда скрипт начинает массово обходить чаты, узкое место почти всегда одно: лишние запросы. Сначала режем объём данных, потом ищем. Для Telethon это значит: не тащить весь список диалогов в память, если нужен только пул каналов, супергрупп или личных чатов.
Используй фильтрацию на уровне итератора: проходи по dialogs и сразу отбрасывай ненужные типы через is_group, is_channel, is_user, is_megagroup. Так ты не строишь лишние объекты и не делаешь повторные проходы. Если нужен конкретный набор, сохраняй только id, access_hash и минимальный набор полей — этого хватает для последующих вызовов без повторной загрузки.
Для быстрого поиска участников не сканируй всех подряд. Рабочая схема: сначала ограничь чат, потом выбирай chunk-ами через iter_participants с нужными фильтрами. Если цель — активные участники, используй search по имени или username; если нужны только новички или админы, фильтруй на стороне API, а не в Python. Дебаг — наш лучший друг в борьбе с FloodWait: логируй, какой именно запрос даёт задержку, и не смешивай поиск с инвайтингом в одном цикле.
Оптимизируем сессии, избегаем лимитов. Чем раньше ты отрежешь лишние диалоги и участников, тем меньше RPC, быстрее цикл и стабильнее аккаунт.
Telethon мастерская
@telethon_workshops_ubt
Фильтрация диалогов и поиск участников без лишних RPC и FloodWait
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.