Предупреждение о времени выполнения: сопрограмма ‘Сообщение.download_media’ никогда не ожидалась Telethone, Python

#python #python-asyncio #telegram #telethon

#python #python-asyncio #telegram #телемарафон

Вопрос:

Здравствуйте, я пытаюсь получить фотографию из группы telegram с помощью telethone на python, но я получаю ошибки. Я проверяю это в Интернете, но не смог решить свою проблему.
В моей группе telegram есть 5 сообщений

1-DENEME

2-DENEME1

3-DENEME2

4-НЕКОТОРЫЕ ФОТОГРАФИИ (jpeg)

5-РАЗНЫЕ ФОТОГРАФИИ (jpeg)

Вот мой код:

 from telethon import TelegramClient, functions, types
from tqdm import tqdm
import asyncio
import os
from asyncio import run



async def main():
        async with TelegramClient(username, api_id, api_hash) as client:

            if not client.is_user_authorized():
                client.send_code_request(phone)
                try:
                    client.sign_in(phone, input('Enter the code: '))
                except SessionPasswordNeededError:
                    client.sign_in(password=input('Password: '))

            async for message in client.iter_messages(chat_id):
                print(message.sender.username, message.text)
                if message.media is not None:
                    message.download_media(message.media,"/home/Desktop/telegram/")

                    print(message.sender.username, message.media)


asyncio.run(main())
  

Вот мой вывод:

 yamur@Yamur:~/Desktop/telegram$ python3 deneme.py
deneme.py:38: RuntimeWarning: coroutine 'UserMethods.is_user_authorized' was never awaited
  if not client.is_user_authorized():
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
YagmurOzden08 
deneme.py:48: RuntimeWarning: coroutine 'Message.download_media' was never awaited
  message.download_media(message.media,"/home/yamur/Desktop/telegram/")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
YagmurOzden08 MessageMediaDocument(document=Document(id=5861515192256432668, access_hash=-1448422375395726408, file_reference=b'x04Ox8a)rx00x00x00x11_xabxe4x94xdfxf2x07x82xe5g]x8bSx10x92xafxf8zx8exdc', date=datetime.datetime(2020, 11, 10, 19, 35, 34, tzinfo=datetime.timezone.utc), mime_type='image/jpeg', size=246422, dc_id=4, attributes=[DocumentAttributeImageSize(w=1600, h=901), DocumentAttributeFilename(file_name='IMG_9817.JPG')], thumbs=[PhotoStrippedSize(type='i', bytes=b'x01x16(xafxe6xe3xd2x8dxe7xd4~Txd0x01xefJSx8e9>x98xa0t"nxe4xeex03xa5#`1x01x01x1exa4xd3b`xa4xe7#xe9Hxf2xf2qxd3xdex99jxddDcxe9x18x14SZLx8ccx14P;xc4vxd7x1dx08xa6xb38xfbxcdEx15|xa8xe7xe6dfEx1dK~Tx9ebx8f_xcax8a*lx8aL<xe5xfexe6x7fJ(xa2x90xecx7f'), PhotoSize(type='m', location=FileLocationToBeDeprecated(volume_id=400113300938, local_id=12461), w=320, h=180, size=17740)], video_thumbs=[]), ttl_seconds=None)
YagmurOzden08 
YagmurOzden08 MessageMediaDocument(document=Document(id=5861515192256432644, access_hash=3036434682643583010, file_reference=b'x04Ox8a)rx00x00x00x0f_xabxe4x94x13xb3xa0xbbrt=#xfdLx8cx87xf9xf2x18xf4', date=datetime.datetime(2020, 11, 10, 17, 18, 23, tzinfo=datetime.timezone.utc), mime_type='image/jpeg', size=425805, dc_id=4, attributes=[DocumentAttributeImageSize(w=2048, h=1152), DocumentAttributeFilename(file_name='pp.jpg')], thumbs=[PhotoStrippedSize(type='i', bytes=b'x01x16(dRxb4`x94xdbxcfr3x8ax16x06x04xacx89xb7 xc56xdcox91Wxd7xadX{xa6xdfx97x84x1cx1e3xc1xa9*xf6*}x98x9ex88xd4xaax8e\ V_RkN;x94x9e7xf9x08*:x9fzxcf3xc8nxc4exbe]xd8xe9L|xcexdax13xaax04@x83xa0xa2x9cxeaWxafOQEQx91x9axccO^x9ex94$xaex9fux88x1ex99xa2x8aHxb6Yxb7xb9rxcbx11x0bx87ptxc6*xd3xd9Fx97x01xc319xddx83xd2x8a)0Dxa7x00x11x8a(xa2xa4g'), PhotoSize(type='m', location=FileLocationToBeDeprecated(volume_id=400120600039, local_id=10798), w=320, h=180, size=17808)], video_thumbs=[]), ttl_seconds=None)
YagmurOzden08 DENEME2
YagmurOzden08 DENEME1
YagmurOzden08 DENEME
  

Ответ №1:

Вы должны await это сделать, это в async def :

 await message.download_media("/home/Desktop/telegram/")