Загрузка данных


import asyncio
import string
import random

# --- ФИКС ДЛЯ PYTHON 3.14 ---
try:
    asyncio.get_event_loop()
except RuntimeError:
    asyncio.set_event_loop(asyncio.new_event_loop())
# -----------------------------

from pyrogram import Client
from pyrogram.errors import UsernameNotOccupied, RPCError, FloodWait

# ВСТАВЬ СВОИ ДАННЫЕ СЮДА
API_ID = 33836197
API_HASH = "de5b01932aa855fc817bed61b9d45b"

app = Client("my_account", api_id=API_ID, api_hash=API_HASH)

def generate_random_username(length=5):
    # Генерируем только строчные буквы a-z
    return ''.join(random.choice(string.ascii_lowercase) for _ in range(length))

def generate_random_username(length=5):
    return ''.join(random.choice(string.ascii_lowercase) for _ in range(length))

async def check_username(username):
    try:
        await app.check_username(username)
        return True
    except UsernameNotOccupied:
        return False
    except FloodWait as e:
        print(f"⚠️ FloodWait! Ждем {e.value} секунд...")
        await asyncio.sleep(e.value)
        return False
    except RPCError as e:
        # Если ошибка связана с покупкой на Fragment — просто пропускаем
        if "USERNAME_PURCHASE_AVAILABLE" in str(e):
            return False
        return False
    except Exception:
        return False

async def main():
    print("Запуск...")
    await app.start()
    print("Подключились! Ищем ТОЛЬКО бесплатные имена...")

    while True:
        username = generate_random_username(5)
        
        # Проверяем
        is_free = await check_username(username)
        
        if is_free:
            # Выводим ТОЛЬКО если реально можно занять бесплатно
            print(f"✅ СВОБОДЕН (бесплатно): @{username}")
            
            # Сохраняем в файл, чтобы не потерять
            with open("free_usernames.txt", "a") as f:
                f.write(username + "\n")
        
        # ЗАДЕРЖКА ОБЯЗАТЕЛЬНА, иначе аккаунт на телефоне забанят на сутки
        await asyncio.sleep(1.5)

if __name__ == "__main__":
    app.run(main())