Телеграм-бот: Парсер свободных никнеймов (TXT → TXT) • Python, Tel
Что сделал: Telegram-бот с кнопкой «Парсинг». Пользователь загружает TXT (1 ник в строку), бот проверяет доступность username через MTProto (Telethon) и возвращает TXT только с свободными никами.
Основной функционал
• Загрузка TXT в чате → обработка списка → выдача TXT со свободными.
• Валидация формата (^[a-z][a-z0-9_]{4,31}$, 5–32, первая — буква).
• Проверка доступности: get_entity() с обработкой UsernameNotOccupiedError/ValueError как free.
• Антифлуд: семафор MAX_CONCURRENCY, пауза RATE_LIMIT_SLEEP_SEC, retry после FloodWait.
• Дедупликация, нормализация (@, пробелы, регистр), ограничение размера файла.
• Кодировка: UTF-8 (fallback cp1251), файл всегда непустой (плейсхолдер, если free=0).
• Доступ только для ADMIN_IDS.
• Конфиги через config.py (без .env).
Стек
Python 3.11 • python-telegram-bot 21.x • Telethon 1.36 • asyncio • logging.
Производительность
Практически 1k никнеймов — обработка за несколько минут (≈15–25 никнеймов/с в зависимости от сети; тюнинг через MAX_CONCURRENCY, RATE_LIMIT_SLEEP_SEC).
Результат
MVP-бот, который стабильно возвращает TXT со свободными никнеймами; легко масштабировать/дополнять (статус-бар, чанкинг, экспорт CSV и т.д.).
Основной функционал
• Загрузка TXT в чате → обработка списка → выдача TXT со свободными.
• Валидация формата (^[a-z][a-z0-9_]{4,31}$, 5–32, первая — буква).
• Проверка доступности: get_entity() с обработкой UsernameNotOccupiedError/ValueError как free.
• Антифлуд: семафор MAX_CONCURRENCY, пауза RATE_LIMIT_SLEEP_SEC, retry после FloodWait.
• Дедупликация, нормализация (@, пробелы, регистр), ограничение размера файла.
• Кодировка: UTF-8 (fallback cp1251), файл всегда непустой (плейсхолдер, если free=0).
• Доступ только для ADMIN_IDS.
• Конфиги через config.py (без .env).
Стек
Python 3.11 • python-telegram-bot 21.x • Telethon 1.36 • asyncio • logging.
Производительность
Практически 1k никнеймов — обработка за несколько минут (≈15–25 никнеймов/с в зависимости от сети; тюнинг через MAX_CONCURRENCY, RATE_LIMIT_SLEEP_SEC).
Результат
MVP-бот, который стабильно возвращает TXT со свободными никнеймами; легко масштабировать/дополнять (статус-бар, чанкинг, экспорт CSV и т.д.).