KPoseidon
@KPoseidon
Шарпист с косяками

Почему не работает bot_func.stop(Client, module Pyrogram)?

написал простенький код, который должен вернуть юзер айди и его имя по юзернейму:
def GetUserByUsername(username: str, bot_func: Client):
        loop = asyncio.new_event_loop()
        asyncio.set_event_loop(loop)
        bot_func.loop = loop
        bot_func.start()
        user = bot_func.invoke(ResolveUsername(username=username))
        userId = user.users[0].id
        userFirstName = user.users[0].first_name
        bot_func.stop()
        loop.close()
        return userId, userFirstName


Но выходит такая ошибка:
RuntimeError: Task cb=[_run_until_complete_cb() at /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py:184]> got Future > attached to a different loop


Что я не так сделал? Я перерыл весь интернет, ответа для себя пока что не нашёл.

Пакет: pyrogram
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
KPoseidon
@KPoseidon Автор вопроса
Шарпист с косяками
Сделать телебот-класс асинхронным, а infinity_polling() запихнуть в метод asyncio.run()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)

Зачем?!
Если у тебя бот асинхронный, просто сделай саму функцию GetUserByUsername() async.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы