Как не утонуть в диалогах: фильтруем чаты и ускоряем поиск участников
При массовой работе с Telegram узкое место — не отправка, а выборка. Если каждый раз дергать лишние диалоги, скрипт упирается в лимиты и в мусорные RPC-ответы. Нужна жесткая фильтрация до любых тяжелых операций.
Рабочая схема простая:
— брать только is_user, is_group или is_channel по задаче;
— отсеивать пустые и архивные диалоги, если они не нужны;
— кешировать entity и не повторять get_dialogs() без причины.
Так вы снижаете количество запросов и стабилизируете проход по списку.
Для поиска участников не делайте полный перебор без условий. Сначала ограничьте пул по чату, потом используйте iter_participants с нужным фильтром: активные, админы, боты, recent. Если нужен текстовый поиск, сначала сузьте список по имени или username, а уже потом поднимайте entity. Дебаг — наш лучший друг в борьбе с FloodWait.
Отдельно следите за порядком вызовов: сначала загрузка сущности, потом получение участников, потом уже точечные действия. Иначе вы ловите лишние round-trip, а эффективность скрипта напрямую зависит от качества прокси и подготовки профилей. Оптимизируем сессии, избегаем лимитов.
Telethon мастерская
@telethon_workshops_ubt
Как не утонуть в диалогах: фильтруем чаты и ускоряем поиск участников
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.