Ошибка при переключении аккаунта telethon
Использую python 3.6, проблема заключается в следующем, есть функция, которая отвечает за переключение клиентов при обработке некоторых исключений, код функции
def login(proxy, api_id, api_hash, phone):
try:
global proxy_id, id_cnt, hash_cnt, phone_cnt
proxy = proxy[proxy_id]
api_id = api_id[id_cnt]
api_hash = api_hash[hash_cnt]
phone = phone[phone_cnt]
print(f"[+] Попытка подключения к {proxy[:-1]}")
print(f"[+] Номер прокси {proxy_id}")
host = proxy[:proxy.find(":")] # рабочий
port = int(proxy[proxy.find(":")+1:]) # рабочий
proxy = (socks.SOCKS5, host, port)
global client
if id_cnt == 0:
client = TelegramClient(phone, int(api_id), api_hash, proxy=proxy)
client.connect()
else:
client.disconnect()
client = TelegramClient(phone, int(api_id), api_hash, proxy=proxy)
client.connect()
print(gr+f"[+] Подключение к прокси [{host}:{port}] успешно установлено"+re)
except ConnectionError:
proxy_id += 1
try:
login(get_proxies(), get_accs()[0], get_accs()[1], get_accs()[2])
except IndexError:
print(re + "[!] Адреса прокси закончились.\n[!] Программа сейчас остановится")
if not client.is_user_authorized():
client.send_code_request(phone)
client.sign_in(phone, input(gr+'[+] Введите код: '+re))
chats = []
last_date = None
chunk_size = 200
result = client(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size,
hash=0
))
chats.extend(result.chats)
for chat in chats:
groups.append(chat)
Блок if id_cnt == 0 проверяет, что этот пользователь не первый и сначала нужно отключиться от предыдущего клиента
Исключение выпадает при исполнении метода InviteToChannelRequest
target_group = groups[int(g_index)]
target_group_entity = InputPeerChannel(target_group.id, target_group.access_hash)
client(InviteToChannelRequest(target_group_entity, [user_to_add]))
Исключение вызывается именно после переключения аккаунта, т.к самый первый аккаунт успешно приглашает всех пользователей
Текст исключения
telethon.errors.rpcerrorlist.ChannelInvalidError: Invalid channel object. Make sure to pass the right types, for instance making sure that the request is designed for channels or otherwise look for a different one more suited (caused by InviteToChannelRequest)
Пробовал заменять метод приглашения на
group_entity = await client.get_entity(InputPeerChannel(group.id, group.access_hash))