#!/usr/bin/env python3 """ Генератор тестовых счетов для проверки производительности розыгрыша """ import random def generate_account_number(): """Генерирует случайный номер счета в формате XX-XX-XX-XX-XX-XX-XX""" parts = [] for _ in range(7): part = f"{random.randint(0, 99):02d}" parts.append(part) return "-".join(parts) def generate_accounts(count, card_numbers=None): """ Генерирует список уникальных счетов Args: count: Количество счетов для генерации card_numbers: Список номеров карт (опционально) Returns: List[str]: Список счетов """ accounts = set() while len(accounts) < count: account = generate_account_number() # Добавляем с картой или без if card_numbers and random.random() > 0.3: # 70% с картой card = random.choice(card_numbers) full_account = f"{card} {account}" else: full_account = account accounts.add(full_account) return list(accounts) def save_to_file(accounts, filename): """Сохраняет счета в файл""" with open(filename, 'w', encoding='utf-8') as f: for account in accounts: f.write(account + '\n') print(f"✅ Сохранено {len(accounts)} счетов в файл {filename}") def main(): """Главная функция""" print("🎲 Генератор тестовых счетов для розыгрыша\n") # Параметры counts = [100, 500, 1000, 2000, 5000] card_numbers = ['2521', '2522', '2523', '2524', '2525'] for count in counts: print(f"Генерация {count} счетов...") accounts = generate_accounts(count, card_numbers) filename = f"test_accounts_{count}.txt" save_to_file(accounts, filename) print("\n✅ Генерация завершена!") print("\nИспользование:") print("1. Скопируйте содержимое нужного файла") print("2. В боте: Управление розыгрышами → Выберите розыгрыш → Участники → Добавить массово") print("3. Вставьте содержимое файла") print("4. Проведите розыгрыш и проверьте время выполнения") if __name__ == "__main__": main()