Я могу получить сущность по идентификатору после получения сущности только по имени пользователя. Это ошибка? Видео из оболочки - PullRequest
0 голосов

Я могу получить сущность по ID после получения сущности только по имени пользователя.Это ошибка?Видео из оболочки

Я использую Mac и Python 3

Я пытаюсь получить сущность по id

entity = client.get_entity(1151511560)

, но получаюисключение:

ValueError: Could not find the input entity for <telethon.tl.types.PeerUser object at 0x1172312e8>. Please read https://telethon.readthedocs.io/en/latest/extra/basic/entities.html to find out more details.

Затем я успешно получаю сущность по имени пользователя "ekat01"

После этого я успешно получаю сущность по идентификатору.

Почему я могу 'получить объект только по идентификатору?Думаю, это ошибка, не правда ли?

Видео с доказательствами по ссылке: https://youtu.be/mnDNZZir5PY

1 Ответ

0 голосов

Github ---------------------------------------------- ---

С juanvelascogomez :

Если я не ошибаюсь, это объясняется в документации "Пользователи, чат и канал, Важный раздел": https://telethon.readthedocs.io/en/stable/extra/basic/entities.html

Как только библиотека «увидит» сущность, вы можете использовать их целочисленный идентификатор. Вы не можете использовать объекты из идентификаторов, которые библиотека не видела. Вы должны заставить библиотеку увидеть их хотя бы один раз и правильно отключиться. Вы знаете, где находятся объекты, и вы должны сообщить об этом библиотеке. Это не угадает для вас.

С Лонами :

На чистом сеансе

with client:
    try:
        client.get_entity(1151511560)
    except ValueError:
        print('Error as expected')

    client.get_entity("ekat01")
    client.get_entity(1151511560)
    print('Works as expected')
prints:

Ошибка как и ожидалось Работает как положено Во второй раз,

with client:
    client.get_entity(1151511560)
    print('Works as expected')
prints:

Работает как положено

...