Telegram-bot: Parser wolnych nicków (TXT → TXT) • Python, Tel
Co zrobiono: Bot Telegram z przyciskiem „Parsowanie”. Użytkownik przesyła TXT (1 nick w wierszu), bot sprawdza dostępność nazwy użytkownika przez MTProto (Telethon) i zwraca TXT tylko z wolnymi nickami.
Podstawowa funkcjonalność
• Ładowanie TXT w czacie → przetwarzanie listy → wydanie TXT z wolnymi.
• Walidacja formatu (^[a-z][a-z0-9_]{4,31}$, 5–32, pierwszy — litera).
• Sprawdzanie dostępności: get_entity() z obsługą UsernameNotOccupiedError/ValueError jako wolne.
• Antyspam: semafor MAX_CONCURRENCY, pauza RATE_LIMIT_SLEEP_SEC, retry po FloodWait.
• Deduplication, normalizacja (@, spacje, wielkość liter), ograniczenie rozmiaru pliku.
• Kodowanie: UTF-8 (fallback cp1251), plik zawsze niepusty (placeholder, jeśli free=0).
• Dostęp tylko dla ADMIN_IDS.
• Konfiguracje przez config.py (bez .env).
Stos
Python 3.11 • python-telegram-bot 21.x • Telethon 1.36 • asyncio • logging.
Wydajność
Praktycznie 1k nicków — przetwarzanie w kilka minut (≈15–25 nicków/s w zależności od sieci; tuning przez MAX_CONCURRENCY, RATE_LIMIT_SLEEP_SEC).
Wynik
MVP-bot, który stabilnie zwraca TXT z wolnymi nickami; łatwy do skalowania/uzupełniania (pasek statusu, chunking, eksport CSV itp.).
Podstawowa funkcjonalność
• Ładowanie TXT w czacie → przetwarzanie listy → wydanie TXT z wolnymi.
• Walidacja formatu (^[a-z][a-z0-9_]{4,31}$, 5–32, pierwszy — litera).
• Sprawdzanie dostępności: get_entity() z obsługą UsernameNotOccupiedError/ValueError jako wolne.
• Antyspam: semafor MAX_CONCURRENCY, pauza RATE_LIMIT_SLEEP_SEC, retry po FloodWait.
• Deduplication, normalizacja (@, spacje, wielkość liter), ograniczenie rozmiaru pliku.
• Kodowanie: UTF-8 (fallback cp1251), plik zawsze niepusty (placeholder, jeśli free=0).
• Dostęp tylko dla ADMIN_IDS.
• Konfiguracje przez config.py (bez .env).
Stos
Python 3.11 • python-telegram-bot 21.x • Telethon 1.36 • asyncio • logging.
Wydajność
Praktycznie 1k nicków — przetwarzanie w kilka minut (≈15–25 nicków/s w zależności od sieci; tuning przez MAX_CONCURRENCY, RATE_LIMIT_SLEEP_SEC).
Wynik
MVP-bot, który stabilnie zwraca TXT z wolnymi nickami; łatwy do skalowania/uzupełniania (pasek statusu, chunking, eksport CSV itp.).