видел на форуме тему - и она достаточно старая ( ей уже 3 года ) я немножко пошаманил и вроде починил этот скрипт - сама тема - https://lolz.live/threads/4531672/ как он = к сожалению я не проверял как работает - если будете проверять то отпишите в комментариях как вам, что было улучшено в коде Автоматическое создание связанных аккаунтов Добавление друг друга в контакты Совместная активность Улучшенная система ******: Загрузка ****** из файла Случайный выбор ****** для каждого аккаунта Система прогрева: Периодическая имитация активности Чтение сообщений и отправка тестовых сообщений Более надежная регистрация: Обработка ошибок на каждом этапе Случайные задержки между действиями Конфигурация из файла: API ключи и настройки в config.ini Случайные аватары: Автоматический выбор аватара из папки Логирование: Сохранение информации о всех созданных аккаунтах Для работы кода необходимо: Создать файл config.ini с настройками Подготовить папку с аватарами Добавить ****** в файл proxies.txt (если нужны) Установить все зависимости (telethon, PySocks и др.) import os import json import time import random import names import socks # PySocks import requests from threading import Thread from telethon.sync import TelegramClient from telethon.tl.functions.account import UpdateUsernameRequest, UpdateProfileRequest from telethon.tl.functions.photos import UploadProfilePhotoRequest from telethon.tl.functions.channels import JoinChannelRequest class TelegramAccountCreator: def __init__(self, config_path='config.ini'): self.config = self.load_config(config_path) self.accounts = [] self.proxies = self.load_proxies() self.channels_to_join = [ "MarginWhalesChanel", "chat_znakomstv_495", "ru_politics", "breakingmash" ] def load_config(self, path): """Загрузка конфигурации из файла""" config = ConfigParser() config.read(path) return { 'api_id': config.getint('Telegram', 'api_id'), 'api_hash': config.get('Telegram', 'api_hash'), 'sms_service_key': config.get('SMS', 'api_key'), 'avatar_folder': config.get('Files', 'avatar_folder', fallback='avatars') } def load_proxies(self): """Загрузка списка ****** из файла""" try: with open('proxies.txt', 'r') as f: return [line.strip() for line in f if line.strip()] except FileNotFoundError: return [] def get_random_proxy(self): """Получение случайного ******""" if not self.proxies: return None proxy_str = random.choice(self.proxies) parts = proxy_str.split(':') return { 'proxy_type': 'socks5', 'addr': parts[0], 'port': int(parts[1]), 'username': parts[2] if len(parts) > 2 else None, 'password': parts[3] if len(parts) > 3 else None, 'rdns': True } def get_random_avatar(self): """Получение случайного аватара""" if not os.path.exists(self.config['avatar_folder']): return None avatars = [f for f in os.listdir(self.config['avatar_folder']) if f.lower().endswith(('.jpg', '.jpeg', '.png'))] return os.path.join(self.config['avatar_folder'], random.choice(avatars)) if avatars else None def create_account_pair(self): """Создание пары аккаунтов""" phone1 = self.get_phone_number() phone2 = self.get_phone_number() # Создаем первый аккаунт acc1 = self.create_single_account(phone1) if not acc1: return False # Создаем второй аккаунт acc2 = self.create_single_account(phone2) if not acc2: return False # Добавляем друг друга в контакты self.add_as_contacts(acc1, acc2) # Сохраняем информацию о паре pair_info = { 'account1': acc1, 'account2': acc2, 'created_at': time.time() } self.accounts.append(pair_info) self.save_accounts_info() return True def create_single_account(self, phone): """Создание одиночного аккаунта""" try: proxy = self.get_random_proxy() client = TelegramClient( f'sessions/{phone}', self.config['api_id'], self.config['api_hash'], proxy=proxy, connection_retries=2 ) client.connect() if not client.is_connected(): print(f"Не удалось подключиться для {phone}") return None # Генерация случайных данных first_name = names.get_first_name() last_name = names.get_last_name() username = f"{first_name.lower()}{random.randint(100,999)}" # Регистрация аккаунта sent = client.send_code_request(phone) print(f"Отправлен код для {phone}") code = input(f"Введите код для {phone}: ") client.sign_up(code, first_name=first_name, last_name=last_name) # Настройка профиля client(UpdateUsernameRequest(username)) client(UpdateProfileRequest(about='Привет! Я новый пользователь Telegram')) # Присоединение к каналам for channel in random.sample(self.channels_to_join, min(3, len(self.channels_to_join))): try: client(JoinChannelRequest(channel)) time.sleep(random.uniform(1, 3)) except Exception as e: print(f"Не удалось присоединиться к {channel}: {e}") # Установка аватара avatar_path = self.get_random_avatar() if avatar_path: try: client(UploadProfilePhotoRequest(client.upload_file(avatar_path))) except Exception as e: print(f"Не удалось установить аватар: {e}") # Настройка 2FA try: client.edit_2fa(new_password=f'TgPass{random.randint(1000,9999)}') except Exception as e: print(f"Не удалось установить 2FA {e}") # Взаимодействие со SpamBot try: client.send_message("SpamBot", "/start") time.sleep(1) client.send_message("SpamBot", "Хорошо") except Exception as e: print(f"Не удалось взаимодействовать со SpamBot: {e}") # Сохранение информации об аккаунте me = client.get_me() account_info = { "phone": phone, "session_file": f"sessions/{phone}.session", "first_name": me.first_name, "last_name": me.last_name, "username": me.username, "proxy": proxy, "created_at": time.time() } client.disconnect() return account_info except Exception as e: print(f"Ошибка при создании аккаунта {phone}: {e}") return None def add_as_contacts(self, acc1, acc2): """Добавление аккаунтов друг другу в контакты""" try: # Для реализации этого нужно сохранять сессии и потом использовать их # Здесь псевдокод для концепции client1 = TelegramClient(acc1['session_file'], self.config['api_id'], self.config['api_hash']) client2 = TelegramClient(acc2['session_file'], self.config['api_id'], self.config['api_hash']) client1.connect() client2.connect() client1.send_message(acc2['phone'], "Привет! Давай общаться!") client2.send_message(acc1['phone'], "Привет! Конечно!") client1.disconnect() client2.disconnect() except Exception as e: print(f"Ошибка при добавлении в контакты: {e}") def get_phone_number(self): """Получение номера телефона от SMS-сервиса""" # Реализация зависит от используемого SMS-сервиса # Здесь пример для sms-activate.ru url = f"https://sms-activate.ru/stubs/handler_api.php?api_key={self.config['sms_service_key']}&action=getNumber&service=tg&country=0" response = requests.get(url) if 'ACCESS_NUMBER' in response.text: return response.text.split(':')[2] else: raise Exception(f"Не удалось получить номер: {response.text}") def save_accounts_info(self): """Сохранение информации о всех аккаунтах""" with open('accounts_info.json', 'w') as f: json.dump(self.accounts, f, indent=2) def warm_up_accounts(self): """Прогрев аккаунтов для увеличения времени жизни""" for pair in self.accounts: for account in [pair['account1'], pair['account2']]: try: client = TelegramClient(account['session_file'], self.config['api_id'], self.config['api_hash']) client.connect() # Имитация активности client.send_message("me", "Тестовое сообщение") time.sleep(random.uniform(1, 5)) # Просмотр нескольких каналов for _ in range(2): dialog = random.choice(client.get_dialogs()) client.get_messages(dialog.entity, limit=3) time.sleep(random.uniform(2, 7)) client.disconnect() except Exception as e: print(f"Ошибка при прогреве аккаунта {account['phone']}: {e}") if __name__ == "__main__": creator = TelegramAccountCreator() # Создаем несколько пар аккаунтов for _ in range(3): # Создаем 3 пары print(f"Создание пары аккаунтов #{_+1}") if creator.create_account_pair(): print("Пара успешно создана!") else: print("Не удалось создать пару") # Пауза между созданием пар time.sleep(random.uniform(10, 30)) # Периодический прогрев аккаунтов while True: print("Прогрев аккаунтов...") creator.warm_up_accounts() print("Следующий прогрев через 30 минут...") time.sleep(1800) # 30 минут Код import os import json import time import random import names import socks # PySocks import requests from threading import Thread from telethon.sync import TelegramClient from telethon.tl.functions.account import UpdateUsernameRequest, UpdateProfileRequest from telethon.tl.functions.photos import UploadProfilePhotoRequest from telethon.tl.functions.channels import JoinChannelRequest class TelegramAccountCreator: def __init__(self, config_path='config.ini'): self.config = self.load_config(config_path) self.accounts = [] self.proxies = self.load_proxies() self.channels_to_join = [ "MarginWhalesChanel", "chat_znakomstv_495", "ru_politics", "breakingmash" ] def load_config(self, path): """Загрузка конфигурации из файла""" config = ConfigParser() config.read(path) return { 'api_id': config.getint('Telegram', 'api_id'), 'api_hash': config.get('Telegram', 'api_hash'), 'sms_service_key': config.get('SMS', 'api_key'), 'avatar_folder': config.get('Files', 'avatar_folder', fallback='avatars') } def load_proxies(self): """Загрузка списка ****** из файла""" try: with open('proxies.txt', 'r') as f: return [line.strip() for line in f if line.strip()] except FileNotFoundError: return [] def get_random_proxy(self): """Получение случайного ******""" if not self.proxies: return None proxy_str = random.choice(self.proxies) parts = proxy_str.split(':') return { 'proxy_type': 'socks5', 'addr': parts[0], 'port': int(parts[1]), 'username': parts[2] if len(parts) > 2 else None, 'password': parts[3] if len(parts) > 3 else None, 'rdns': True } def get_random_avatar(self): """Получение случайного аватара""" if not os.path.exists(self.config['avatar_folder']): return None avatars = [f for f in os.listdir(self.config['avatar_folder']) if f.lower().endswith(('.jpg', '.jpeg', '.png'))] return os.path.join(self.config['avatar_folder'], random.choice(avatars)) if avatars else None def create_account_pair(self): """Создание пары аккаунтов""" phone1 = self.get_phone_number() phone2 = self.get_phone_number() # Создаем первый аккаунт acc1 = self.create_single_account(phone1) if not acc1: return False # Создаем второй аккаунт acc2 = self.create_single_account(phone2) if not acc2: return False # Добавляем друг друга в контакты self.add_as_contacts(acc1, acc2) # Сохраняем информацию о паре pair_info = { 'account1': acc1, 'account2': acc2, 'created_at': time.time() } self.accounts.append(pair_info) self.save_accounts_info() return True def create_single_account(self, phone): """Создание одиночного аккаунта""" try: proxy = self.get_random_proxy() client = TelegramClient( f'sessions/{phone}', self.config['api_id'], self.config['api_hash'], proxy=proxy, connection_retries=2 ) client.connect() if not client.is_connected(): print(f"Не удалось подключиться для {phone}") return None # Генерация случайных данных first_name = names.get_first_name() last_name = names.get_last_name() username = f"{first_name.lower()}{random.randint(100,999)}" # Регистрация аккаунта sent = client.send_code_request(phone) print(f"Отправлен код для {phone}") code = input(f"Введите код для {phone}: ") client.sign_up(code, first_name=first_name, last_name=last_name) # Настройка профиля client(UpdateUsernameRequest(username)) client(UpdateProfileRequest(about='Привет! Я новый пользователь Telegram')) # Присоединение к каналам for channel in random.sample(self.channels_to_join, min(3, len(self.channels_to_join))): try: client(JoinChannelRequest(channel)) time.sleep(random.uniform(1, 3)) except Exception as e: print(f"Не удалось присоединиться к {channel}: {e}") # Установка аватара avatar_path = self.get_random_avatar() if avatar_path: try: client(UploadProfilePhotoRequest(client.upload_file(avatar_path))) except Exception as e: print(f"Не удалось установить аватар: {e}") # Настройка 2FA try: client.edit_2fa(new_password=f'TgPass{random.randint(1000,9999)}') except Exception as e: print(f"Не удалось установить 2FA {e}") # Взаимодействие со SpamBot try: client.send_message("SpamBot", "/start") time.sleep(1) client.send_message("SpamBot", "Хорошо") except Exception as e: print(f"Не удалось взаимодействовать со SpamBot: {e}") # Сохранение информации об аккаунте me = client.get_me() account_info = { "phone": phone, "session_file": f"sessions/{phone}.session", "first_name": me.first_name, "last_name": me.last_name, "username": me.username, "proxy": proxy, "created_at": time.time() } client.disconnect() return account_info except Exception as e: print(f"Ошибка при создании аккаунта {phone}: {e}") return None def add_as_contacts(self, acc1, acc2): """Добавление аккаунтов друг другу в контакты""" try: # Для реализации этого нужно сохранять сессии и потом использовать их # Здесь псевдокод для концепции client1 = TelegramClient(acc1['session_file'], self.config['api_id'], self.config['api_hash']) client2 = TelegramClient(acc2['session_file'], self.config['api_id'], self.config['api_hash']) client1.connect() client2.connect() client1.send_message(acc2['phone'], "Привет! Давай общаться!") client2.send_message(acc1['phone'], "Привет! Конечно!") client1.disconnect() client2.disconnect() except Exception as e: print(f"Ошибка при добавлении в контакты: {e}") def get_phone_number(self): """Получение номера телефона от SMS-сервиса""" # Реализация зависит от используемого SMS-сервиса # Здесь пример для sms-activate.ru url = f"https://sms-activate.ru/stubs/handler_api.php?api_key={self.config['sms_service_key']}&action=getNumber&service=tg&country=0" response = requests.get(url) if 'ACCESS_NUMBER' in response.text: return response.text.split(':')[2] else: raise Exception(f"Не удалось получить номер: {response.text}") def save_accounts_info(self): """Сохранение информации о всех аккаунтах""" with open('accounts_info.json', 'w') as f: json.dump(self.accounts, f, indent=2) def warm_up_accounts(self): """Прогрев аккаунтов для увеличения времени жизни""" for pair in self.accounts: for account in [pair['account1'], pair['account2']]: try: client = TelegramClient(account['session_file'], self.config['api_id'], self.config['api_hash']) client.connect() # Имитация активности client.send_message("me", "Тестовое сообщение") time.sleep(random.uniform(1, 5)) # Просмотр нескольких каналов for _ in range(2): dialog = random.choice(client.get_dialogs()) client.get_messages(dialog.entity, limit=3) time.sleep(random.uniform(2, 7)) client.disconnect() except Exception as e: print(f"Ошибка при прогреве аккаунта {account['phone']}: {e}") if __name__ == "__main__": creator = TelegramAccountCreator() # Создаем несколько пар аккаунтов for _ in range(3): # Создаем 3 пары print(f"Создание пары аккаунтов #{_+1}") if creator.create_account_pair(): print("Пара успешно создана!") else: print("Не удалось создать пару") # Пауза между созданием пар time.sleep(random.uniform(10, 30)) # Периодический прогрев аккаунтов while True: print("Прогрев аккаунтов...") creator.warm_up_accounts() print("Следующий прогрев через 30 минут...") time.sleep(1800) # 30 минут
Не будет работать --- Сообщение объединено с предыдущим 18 июл 2025 в 07:36 Тк рега идет только через телефон