Всем привет! Пишу скрипт для тг акков. Софт заходит на акк, совершает некоторые телодвижения и идет на следующий акк, но возникает проблема, когда сессия невалидна и выскакивает окно как выглядит окно подскажите пожалуйста, как можно обойти это окно, если обработчики ошибок не подходят(либо я какое то упустил), а нормальных вариантов решения в интернете нет.
ну проверяй, есть ли заход на аккаунт, если нет - значит вылезла авторизация, пропускаешь и идешь к следующему акку
b3ast1ns1d3, b3ast1ns1d3, app = Client(session_name, api_id=api_id, api_hash=api_hash) try: async with app: me = app.get_me() print(f"Сессия валидна!") except: print("Сессия невалидна! Требуется переавторизация.") Python app = Client(session_name, api_id=api_id, api_hash=api_hash) try: async with app: me = app.get_me() print(f"Сессия валидна!") except: print("Сессия невалидна! Требуется переавторизация.") нука а сделай так
Фарш, from pyrogram import Client from pyrogram.errors import AuthKeyUnregistered, SessionExpired api_id = 12345 # Ваш API ID api_hash = "ваш_api_hash" # Ваш API Hash session_name = "my_session" # Имя сессии app = Client(session_name, api_id=api_id, api_hash=api_hash) def check_session_validity(): try: # Пробуем получить информацию о себе with app: me = app.get_me() print(f"Сессия валидна! ID: {me.id}, Username: {me.username}") return True except (AuthKeyUnregistered, SessionExpired): print("Сессия невалидна! Требуется переавторизация.") return False except Exception as e: print(f"Ошибка при проверке сессии: {e}") return False if not check_session_validity(): # Если сессия невалидна, запускаем новый вход print("Запуск авторизации...") app = Client(session_name, api_id=api_id, api_hash=api_hash) app.run() # Это вызовет окно ввода номера телефона и кода print("Авторизация успешна!") else: print("Работаем с существующей сессией.") Python from pyrogram import Client from pyrogram.errors import AuthKeyUnregistered, SessionExpired api_id = 12345 # Ваш API ID api_hash = "ваш_api_hash" # Ваш API Hash session_name = "my_session" # Имя сессии app = Client(session_name, api_id=api_id, api_hash=api_hash) def check_session_validity(): try: # Пробуем получить информацию о себе with app: me = app.get_me() print(f"Сессия валидна! ID: {me.id}, Username: {me.username}") return True except (AuthKeyUnregistered, SessionExpired): print("Сессия невалидна! Требуется переавторизация.") return False except Exception as e: print(f"Ошибка при проверке сессии: {e}") return False if not check_session_validity(): # Если сессия невалидна, запускаем новый вход print("Запуск авторизации...") app = Client(session_name, api_id=api_id, api_hash=api_hash) app.run() # Это вызовет окно ввода номера телефона и кода print("Авторизация успешна!") else: print("Работаем с существующей сессией.")
не используй with / async with внутри стоит прокладка __enter__ которая вызывает start, который в свою очередь делает UI для входа чтобы этого не было используй методы connect()