Всем доброе утро! Есть такой вопросик Возможно ли обойти авторизации в сессии? То есть, если сессия не рабочая, чтобы не выдавало ввод номера, а просто пропускало этот момент Есть вот такой кодик, возможно ли добавить в него Скип ? Основной: import os import json import asyncio from pyrogram import Client from colorama import Fore import etc.proxy.proxy as proxy_ # Константы и глобальные переменные FOLD = 'C:\\Users\\Zalman\\Desktop\\СОФТ2\\etc\\accounts' clients = [] working_clients = [] error_clients = [] work_clients = [] proxys = {} semaphore = asyncio.Semaphore(100) async def create_client(config): """Создание клиента Pyrogram на основе переданных конфигураций.""" global proxys try: number_phone = config.get("phone") api_id = config.get("app_id") api_hash = config.get("app_hash") # Проверка обязательных полей if not number_phone or not api_id or not api_hash: raise ValueError("Необходимо указать номер телефона, app_id и app_hash.") api_id = int(api_id) if not isinstance(api_hash, str): raise ValueError("api_hash должен быть строкой.") # Установка пути к файлу сессии и получение ****** file_path = os.path.join(FOLD, number_phone, f"{number_phone}.session") proxy = proxy_.get_proxy(number_phone) # Создание клиента client = Client(file_path, api_id=api_id, api_hash=api_hash, proxy=proxy, phone_number=number_phone) proxys[number_phone] = proxy['port'] if proxy else "NO PROXY" try: await client.start() await check_client(client, number_phone) except Exception as e: print(e) return except Exception as e: print(f"Ошибка при создании клиента для {number_phone}: {e}") error_clients.append(number_phone) async def check_client(client, phone): """Проверка подключения клиента и получение информации о пользователе.""" global work_clients, working_clients, error_clients async with semaphore: try: if client.is_user_authorized(): me = await client.get_me() if me: text = f'USERNAME: @{me.username}' if me.username else 'USERNAME: NOT' print(Fore.WHITE + f"{phone} : {Fore.GREEN}ACTIVE.{Fore.WHITE} | {Fore.CYAN} {text} | {Fore.GREEN} IP PROXY: {proxys.get(phone, 'NOT')}") work_clients.append(client) working_clients.append(client) else: print(Fore.WHITE + f"{phone} : {Fore.RED}Ошибка: не удалось получить информацию о пользователе.") error_clients.append(phone) else: print(f"{phone} : NOT ACTIVE. Ошибка: Client is not connected.") error_clients.append(phone) except Exception as e: print(Fore.WHITE + f"{phone} : {Fore.RED}NOT ACTIVE. Ошибка: {e}") error_clients.append(phone) async def main(): """Основная функция для запуска проверки аккаунтов.""" global error_clients, clients if not os.path.exists(FOLD): print("Ошибка: папка не найдена.") exit(3) try: folders = os.listdir(FOLD) except Exception as e: print(f"Ошибка: не удалось получить список аккаунтов: {e}") exit(3) os.system('cls' if os.name == 'nt' else 'clear') print(Fore.BLUE + '================================================Результаты проверки================================================\n\n') tasks = [] for folder in folders: folder_path = os.path.join(FOLD, folder) if not os.path.isdir(folder_path): continue try: files = os.listdir(folder_path) except Exception as e: print(f"Ошибка: не удалось получить список файлов в папке {folder}: {e}") continue for file in files: if file.endswith('.session'): config_path = os.path.join(folder_path, f'{folder}.json') if os.path.isfile(config_path): try: with open(config_path, 'r', encoding='UTF-8') as settings: config = json.load(settings) tasks.append(create_client(config)) except json.JSONDecodeError: print(f"Ошибка: не удалось разобрать JSON-файл {config_path}. Проверьте формат.") except Exception as e: print(f"Ошибка при чтении конфигурационного файла {config_path}: {e}") await asyncio.gather(*tasks) print(Fore.WHITE + f'\n\n{Fore.GREEN}Рабочих аккаунтов: {len(working_clients)}\n{Fore.RED}Не рабочих аккаунтов: {len(error_clients)}\n\n' + Fore.WHITE) print(Fore.BLUE + '================================================Результаты проверки================================================\n\n' + Fore.WHITE) if __name__ == "__main__": # Проверяем, есть ли уже запущенный цикл событий try: asyncio.get_event_loop().run_until_complete(main()) except RuntimeError as e: if 'This event loop is already running' in str(e): print("Цикл событий уже запущен. Пожалуйста, завершите его или используйте другой способ запуска.") else: raise Python import os import json import asyncio from pyrogram import Client from colorama import Fore import etc.proxy.proxy as proxy_ # Константы и глобальные переменные FOLD = 'C:\\Users\\Zalman\\Desktop\\СОФТ2\\etc\\accounts' clients = [] working_clients = [] error_clients = [] work_clients = [] proxys = {} semaphore = asyncio.Semaphore(100) async def create_client(config): """Создание клиента Pyrogram на основе переданных конфигураций.""" global proxys try: number_phone = config.get("phone") api_id = config.get("app_id") api_hash = config.get("app_hash") # Проверка обязательных полей if not number_phone or not api_id or not api_hash: raise ValueError("Необходимо указать номер телефона, app_id и app_hash.") api_id = int(api_id) if not isinstance(api_hash, str): raise ValueError("api_hash должен быть строкой.") # Установка пути к файлу сессии и получение ****** file_path = os.path.join(FOLD, number_phone, f"{number_phone}.session") proxy = proxy_.get_proxy(number_phone) # Создание клиента client = Client(file_path, api_id=api_id, api_hash=api_hash, proxy=proxy, phone_number=number_phone) proxys[number_phone] = proxy['port'] if proxy else "NO PROXY" try: await client.start() await check_client(client, number_phone) except Exception as e: print(e) return except Exception as e: print(f"Ошибка при создании клиента для {number_phone}: {e}") error_clients.append(number_phone) async def check_client(client, phone): """Проверка подключения клиента и получение информации о пользователе.""" global work_clients, working_clients, error_clients async with semaphore: try: if client.is_user_authorized(): me = await client.get_me() if me: text = f'USERNAME: @{me.username}' if me.username else 'USERNAME: NOT' print(Fore.WHITE + f"{phone} : {Fore.GREEN}ACTIVE.{Fore.WHITE} | {Fore.CYAN} {text} | {Fore.GREEN} IP PROXY: {proxys.get(phone, 'NOT')}") work_clients.append(client) working_clients.append(client) else: print(Fore.WHITE + f"{phone} : {Fore.RED}Ошибка: не удалось получить информацию о пользователе.") error_clients.append(phone) else: print(f"{phone} : NOT ACTIVE. Ошибка: Client is not connected.") error_clients.append(phone) except Exception as e: print(Fore.WHITE + f"{phone} : {Fore.RED}NOT ACTIVE. Ошибка: {e}") error_clients.append(phone) async def main(): """Основная функция для запуска проверки аккаунтов.""" global error_clients, clients if not os.path.exists(FOLD): print("Ошибка: папка не найдена.") exit(3) try: folders = os.listdir(FOLD) except Exception as e: print(f"Ошибка: не удалось получить список аккаунтов: {e}") exit(3) os.system('cls' if os.name == 'nt' else 'clear') print(Fore.BLUE + '================================================Результаты проверки================================================\n\n') tasks = [] for folder in folders: folder_path = os.path.join(FOLD, folder) if not os.path.isdir(folder_path): continue try: files = os.listdir(folder_path) except Exception as e: print(f"Ошибка: не удалось получить список файлов в папке {folder}: {e}") continue for file in files: if file.endswith('.session'): config_path = os.path.join(folder_path, f'{folder}.json') if os.path.isfile(config_path): try: with open(config_path, 'r', encoding='UTF-8') as settings: config = json.load(settings) tasks.append(create_client(config)) except json.JSONDecodeError: print(f"Ошибка: не удалось разобрать JSON-файл {config_path}. Проверьте формат.") except Exception as e: print(f"Ошибка при чтении конфигурационного файла {config_path}: {e}") await asyncio.gather(*tasks) print(Fore.WHITE + f'\n\n{Fore.GREEN}Рабочих аккаунтов: {len(working_clients)}\n{Fore.RED}Не рабочих аккаунтов: {len(error_clients)}\n\n' + Fore.WHITE) print(Fore.BLUE + '================================================Результаты проверки================================================\n\n' + Fore.WHITE) if __name__ == "__main__": # Проверяем, есть ли уже запущенный цикл событий try: asyncio.get_event_loop().run_until_complete(main()) except RuntimeError as e: if 'This event loop is already running' in str(e): print("Цикл событий уже запущен. Пожалуйста, завершите его или используйте другой способ запуска.") else: raise ******: import json import os def get_proxy(number_phone): try: # Проверка и создание файла used_proxy.json used_proxy_path = 'etc\\proxy\\used_proxy.json' if not os.path.exists(used_proxy_path): with open(used_proxy_path, 'w') as file: json.dump({}, file) # Проверка существования файла с ****** proxy_file_path = 'etc\\proxy\\proxys.txt' if not os.path.exists(proxy_file_path): print("Файл с ****** не найден.") return None # Чтение списка ****** with open(proxy_file_path, 'r') as file: proxys = [line.strip() for line in file.readlines() if line.strip()] # Чтение использованных ****** with open(used_proxy_path, 'r') as file: used_proxy = json.load(file) # Проверка использованных ****** for proxy_key, numbers in used_proxy.items(): if number_phone in numbers: ip, port = proxy_key.split(':') return { "scheme": "socks5", "hostname": ip, "port": int(port), # Приведение порта к целочисленному типу "username": "RUSQI9EQTV", "password": "Fl3MY3AC" } # Список доступных ****** available_proxies = [] for proxy in proxys: parts = proxy.split(':') if len(parts) != 4: print(f"Неверный формат ******: {proxy}") continue ip, port = parts[:2] proxy_key = f"{ip}:{port}" # Проверка использования ****** if proxy_key in used_proxy: usage_count = len(used_proxy[proxy_key]) if usage_count < 3: # Максимум 3 использования available_proxies.append((ip, port)) else: available_proxies.append((ip, port)) # Новый ****** if available_proxies: selected_proxy = available_proxies[0] # Выбор первого доступного ****** ip, port = selected_proxy proxy_key = f"{ip}:{port}" # Обновление использованных ****** if proxy_key not in used_proxy: used_proxy[proxy_key] = [] used_proxy[proxy_key].append(number_phone) with open(used_proxy_path, 'w') as file: json.dump(used_proxy, file, indent=4) return { "scheme": "socks5", "hostname": ip, "port": int(port), "username": "RUSQI9EQTV", "password": "Fl3MY3AC" } print("Нет доступных ******.") return None except Exception as e: print(f"Ошибка при получении ******: {e}") return None Python import json import os def get_proxy(number_phone): try: # Проверка и создание файла used_proxy.json used_proxy_path = 'etc\\proxy\\used_proxy.json' if not os.path.exists(used_proxy_path): with open(used_proxy_path, 'w') as file: json.dump({}, file) # Проверка существования файла с ****** proxy_file_path = 'etc\\proxy\\proxys.txt' if not os.path.exists(proxy_file_path): print("Файл с ****** не найден.") return None # Чтение списка ****** with open(proxy_file_path, 'r') as file: proxys = [line.strip() for line in file.readlines() if line.strip()] # Чтение использованных ****** with open(used_proxy_path, 'r') as file: used_proxy = json.load(file) # Проверка использованных ****** for proxy_key, numbers in used_proxy.items(): if number_phone in numbers: ip, port = proxy_key.split(':') return { "scheme": "socks5", "hostname": ip, "port": int(port), # Приведение порта к целочисленному типу "username": "RUSQI9EQTV", "password": "Fl3MY3AC" } # Список доступных ****** available_proxies = [] for proxy in proxys: parts = proxy.split(':') if len(parts) != 4: print(f"Неверный формат ******: {proxy}") continue ip, port = parts[:2] proxy_key = f"{ip}:{port}" # Проверка использования ****** if proxy_key in used_proxy: usage_count = len(used_proxy[proxy_key]) if usage_count < 3: # Максимум 3 использования available_proxies.append((ip, port)) else: available_proxies.append((ip, port)) # Новый ****** if available_proxies: selected_proxy = available_proxies[0] # Выбор первого доступного ****** ip, port = selected_proxy proxy_key = f"{ip}:{port}" # Обновление использованных ****** if proxy_key not in used_proxy: used_proxy[proxy_key] = [] used_proxy[proxy_key].append(number_phone) with open(used_proxy_path, 'w') as file: json.dump(used_proxy, file, indent=4) return { "scheme": "socks5", "hostname": ip, "port": int(port), "username": "RUSQI9EQTV", "password": "Fl3MY3AC" } print("Нет доступных ******.") return None except Exception as e: print(f"Ошибка при получении ******: {e}") return None
Инвайтер создал, а тут с аккаунтами траблы вылезли --- Сообщение объединено с предыдущим 23 ноя 2024 Еще вроде как ****** не подключаются, аккаунты слетают конкретно. уже 10-15к на акках только потерял --- Сообщение объединено с предыдущим 23 ноя 2024 Возможно на телетоне как-то сделать можно это?
пропустить этот момент невозможно? --- Сообщение объединено с предыдущим 23 ноя 2024 Что это --- Сообщение объединено с предыдущим 23 ноя 2024 На телетоне такого неут ( --- Сообщение объединено с предыдущим 23 ноя 2024 Я на телетоне когда-то делал обход, но не помню как --- Сообщение объединено с предыдущим 23 ноя 2024 А на телетоне с ****** проблема -_-