Нужно было понять, кто на самом деле активен в обсуждениях нескольких Telegram-каналов и групп: сколько уникальных людей пишет комментарии, кто из них возвращается регулярно, кто встречается сразу в нескольких сообществах. Вручную листать тысячи комментариев невозможно, а готовые сервисы либо платные, либо собирают данные непрозрачно.
Требования: работать только с источниками, к которым есть законный доступ, не нарушать ограничения Telegram и выдавать результат в виде, удобном для анализа — таблицей.
Написал консольную утилиту на Python и Telethon, которая работает через официальный клиентский API Telegram.
На вход — файл со списком каналов и групп. Для канала утилита сама находит связанную группу обсуждений и проходит по комментариям к последним постам; для обычной группы — по сообщениям, при необходимости по всей истории. Из каждого сообщения берётся только автор, пользователи склеиваются по ID, для каждого считается число сообщений, количество источников и даты первой и последней активности.
Есть фильтр по дате, режим «только с публичным username», остановка после нужного числа уникальных авторов и dry-run без записи файлов. Комментарии во время прохода пишутся во временный файл, поэтому большие объёмы не съедают память.
Отдельно продумал работу с ограничениями Telegram: если сервер просит подождать (FloodWait), утилита ждёт в разумных пределах, а если ожидание слишком долгое — пропускает источник и честно пишет об этом в лог, а не зависает на часы.
Результат — Excel или CSV с уникальными авторами и сырыми комментариями плюс текстовый отчёт по прогону. Функций рассылки, приглашений и автоконтакта в утилите намеренно нет.
Вместо ручного пролистывания — одна команда и готовая таблица: кто активен, насколько часто и где. Отчёт по прогону показывает, сколько публикаций и комментариев обработано, какие источники пропущены и почему.
Утилита устойчиво работает на больших каналах и не упирается в ограничения Telegram. Код открыт, настройка — через файл с примером.