Telegram-бот: Парсер вільних нікнеймів (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 тощо).