Accept message/media on .send_file, remove redundancy off README

This commit is contained in:
Lonami Exo 2018-01-23 11:59:35 +01:00
parent a437881ce2
commit f0eb41b902
2 changed files with 19 additions and 7 deletions

View File

@ -5,7 +5,7 @@ Telethon
⭐️ Thanks **everyone** who has starred the project, it means a lot! ⭐️ Thanks **everyone** who has starred the project, it means a lot!
**Telethon** is Telegram client implementation in **Python 3** which uses **Telethon** is Telegram client implementation in **Python 3** which uses
the latest available API of Telegram. Remember to use **pip3** to install! the latest available API of Telegram.
What is this? What is this?

View File

@ -1,4 +1,5 @@
import hashlib import hashlib
import io
import itertools import itertools
import logging import logging
import os import os
@ -29,7 +30,6 @@ from .errors import (
SessionPasswordNeededError, FileMigrateError SessionPasswordNeededError, FileMigrateError
) )
from .network import ConnectionMode from .network import ConnectionMode
from .tl import TLObject
from .tl.custom import Draft, Dialog from .tl.custom import Draft, Dialog
from .tl.functions.account import ( from .tl.functions.account import (
GetPasswordRequest GetPasswordRequest
@ -915,6 +915,22 @@ class TelegramClient(TelegramBareClient):
) for x in file ) for x in file
] ]
entity = self.get_input_entity(entity)
reply_to = self._get_reply_to(reply_to)
if not isinstance(file, (str, bytes, io.IOBase)):
# The user may pass a Message containing media (or the media,
# or anything similar) that should be treated as a file. Try
# getting the input media for whatever they passed and send it.
try:
media = utils.get_input_media(file, user_caption=caption)
except TypeError:
pass # Can't turn whatever was given into media
else:
request = SendMediaRequest(entity, media,
reply_to_msg_id=reply_to)
return self._get_response_message(request, self(request))
as_image = utils.is_image(file) and not force_document as_image = utils.is_image(file) and not force_document
use_cache = InputPhoto if as_image else InputDocument use_cache = InputPhoto if as_image else InputDocument
file_handle = self.upload_file( file_handle = self.upload_file(
@ -979,11 +995,7 @@ class TelegramClient(TelegramBareClient):
# Once the media type is properly specified and the file uploaded, # Once the media type is properly specified and the file uploaded,
# send the media message to the desired entity. # send the media message to the desired entity.
request = SendMediaRequest( request = SendMediaRequest(entity, media, reply_to_msg_id=reply_to)
peer=self.get_input_entity(entity),
media=media,
reply_to_msg_id=self._get_reply_to(reply_to)
)
msg = self._get_response_message(request, self(request)) msg = self._get_response_message(request, self(request))
if msg and isinstance(file_handle, InputSizedFile): if msg and isinstance(file_handle, InputSizedFile):
# There was a response message and we didn't use cached # There was a response message and we didn't use cached