В чем ошибка конвертации 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 шт):

Автор решения: Pipit

Вижу что вы новичок. По вашему коду это видно. Скажу сразу, что в данном случае в переменную нет смысла засовать другую переменную:

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()) 

Работает не трогай :)

→ Ссылка