В чем ошибка конвертации opentele?
Я конвертирую файл tdata в session формат, но мне выдает такую ошибку, интересно то, что раньше такой ошибки не было
Мой код
from opentele.td import TDesktop
from opentele.tl import TelegramClient
from opentele.api import API, UseCurrentSession
import asyncio
async def main():
# Load TDesktop client from tdata folder
directory = 'tdata'
tdataFolder = str(directory)#str(directory)
tdesk = TDesktop(tdataFolder)
print('Файл загружен OK')
#print('Файл загружен с кодом C1')
# Check if we have loaded any accounts
assert tdesk.isLoaded()
# flag=UseCurrentSession
#
# Convert TDesktop to Telethon using the current session.
client = await tdesk.ToTelethon(session="telethon.session", flag=UseCurrentSession)
# Connect and print all logged-in sessions of this client.
# Telethon will save the session to telethon.session on creation.
await client.connect()
await client.PrintSessions()
asyncio.run(main())
Ответы (1 шт):
Вижу что вы новичок. По вашему коду это видно. Скажу сразу, что в данном случае в переменную нет смысла засовать другую переменную:
directory = 'tdata'
tdataFolder = str(directory)#str(directory)
Ещё добавлю, что tdataFolder может быть названа как угодно (это если вы не знали), главное, чтобы дальше в коде она также называлась.
Дальше вам стоит научиться читать (или хотя бы перевести через переводчик), то что написано в ошибке. А там в конце ошибки написана сома причина: Exception: No account has been loaded Перевод: Неожиданное исключение: учетная запись не была загружена
По этому можно понять, что она не нашла аккаунт (то есть путь до него). Вам просто нужно скопировать тот код взятый от сюда: https://stackoverflow.com/questions/61457819/how-to-convert-tdata-to-telethon-session оставить его как есть или просто вот так:
from opentele.td import TDesktop
from opentele.tl import TelegramClient
from opentele.api import API, UseCurrentSession, CreateNewSession
import asyncio
async def main():
# Load TDesktop client from tdata folder
tdataFolder = "tdata"
tdesk = TDesktop(tdataFolder)
# Check if we have loaded any accounts
assert tdesk.isLoaded()
# 1) Использовать текущий сеанс:
# 1) flag=UseCurrentSession #
# 1) Convert TDesktop to Telethon using the current session.
client = await tdesk.ToTelethon(session="telethon.session", flag=UseCurrentSession)
# 2) Создать новый сеанс:
# 2) flag=CreateNewSession #
# 2) Convert TDesktop to Telethon by creating a new session.
# 2) CreateNewSession will use the current session (in tdata folder) to authorize a new session using QR Login.
# 2) If 2FA is enabled for this account, you must specify the password via the password argument.
# 2) This is of course slower than UseCurrentSession.
# client = await tdesk.ToTelethon(session="telethon.session", flag=CreateNewSession)
# Connect and print all logged-in sessions of this client.
# Telethon will save the session to telethon.session on creation.
await client.connect()
await client.PrintSessions()
asyncio.run(main())
Работает не трогай :)

