#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/")