Fixed branching logic in _file_to_media

This commit is contained in:
YeeChanKo 2018-08-06 20:07:28 +09:00 committed by GitHub
parent e6e33bb434
commit 8c82b3afa7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -394,26 +394,29 @@ class UploadMethods(ButtonMethods, MessageParseMethods, UserMethods):
as_image = utils.is_image(file) and not force_document as_image = utils.is_image(file) and not force_document
use_cache = types.InputPhoto if as_image else types.InputDocument use_cache = types.InputPhoto if as_image else types.InputDocument
if re.match('https?://', file): if isinstance(file, str):
if as_image: if re.match('https?://', file):
media = types.InputMediaPhotoExternal(file) if as_image:
elif not force_document and utils.is_gif(file): media = types.InputMediaPhotoExternal(file)
media = types.InputMediaGifExternal(file, '') elif not force_document and utils.is_gif(file):
media = types.InputMediaGifExternal(file, '')
else:
media = types.InputMediaDocumentExternal(file)
else: else:
media = types.InputMediaDocumentExternal(file) bot_file = utils.resolve_bot_file_id(file)
elif isinstance(file, str): if bot_file:
file_handle = await self.upload_file( media = utils.get_input_media(bot_file)
file, progress_callback=progress_callback, # Return if media is resolved
use_cache=use_cache if allow_cache else None if media:
) return None, media
else:
bot_file = utils.resolve_bot_file_id(file)
if bot_file:
media = utils.get_input_media(bot_file)
if media: # Proceed with local file handle
pass # Already have media, don't check the rest file_handle = await self.upload_file(
elif isinstance(file_handle, use_cache): file, progress_callback=progress_callback,
use_cache=use_cache if allow_cache else None
)
if isinstance(file_handle, use_cache):
# File was cached, so an instance of use_cache was returned # File was cached, so an instance of use_cache was returned
if as_image: if as_image:
media = types.InputMediaPhoto(file_handle) media = types.InputMediaPhoto(file_handle)