mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-26 11:23:46 +03:00
Support URLs on send_file
This commit is contained in:
parent
2b090f8888
commit
2bd0c6c525
|
@ -3,7 +3,7 @@ import io
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import pathlib
|
import pathlib
|
||||||
import warnings
|
import re
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from mimetypes import guess_type
|
from mimetypes import guess_type
|
||||||
|
|
||||||
|
@ -371,14 +371,26 @@ class UploadMethods(MessageParseMethods, UserMethods):
|
||||||
except TypeError:
|
except TypeError:
|
||||||
return None, None # Can't turn whatever was given into media
|
return None, None # Can't turn whatever was given into media
|
||||||
|
|
||||||
|
media = None
|
||||||
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 isinstance(file, str) and re.match('https?://', file):
|
||||||
|
file_handle = None
|
||||||
|
if as_image:
|
||||||
|
media = types.InputMediaPhotoExternal(file)
|
||||||
|
elif not force_document and utils.is_gif(file):
|
||||||
|
media = types.InputMediaGifExternal(file, '')
|
||||||
|
else:
|
||||||
|
media = types.InputMediaDocumentExternal(file)
|
||||||
|
else:
|
||||||
file_handle = await self.upload_file(
|
file_handle = await self.upload_file(
|
||||||
file, progress_callback=progress_callback,
|
file, progress_callback=progress_callback,
|
||||||
use_cache=use_cache if allow_cache else None
|
use_cache=use_cache if allow_cache else None
|
||||||
)
|
)
|
||||||
|
|
||||||
if isinstance(file_handle, use_cache):
|
if media:
|
||||||
|
pass # Already have media, don't check the rest
|
||||||
|
elif 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)
|
||||||
|
|
|
@ -510,6 +510,13 @@ def is_image(file):
|
||||||
return re.match(r'\.(png|jpe?g)', _get_extension(file), re.IGNORECASE)
|
return re.match(r'\.(png|jpe?g)', _get_extension(file), re.IGNORECASE)
|
||||||
|
|
||||||
|
|
||||||
|
def is_gif(file):
|
||||||
|
"""
|
||||||
|
Returns ``True`` if the file extension looks like a gif file to Telegram.
|
||||||
|
"""
|
||||||
|
return re.match(r'\.gif', _get_extension(file), re.IGNORECASE)
|
||||||
|
|
||||||
|
|
||||||
def is_audio(file):
|
def is_audio(file):
|
||||||
"""Returns ``True`` if the file extension looks like an audio file."""
|
"""Returns ``True`` if the file extension looks like an audio file."""
|
||||||
file = 'a' + _get_extension(file)
|
file = 'a' + _get_extension(file)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user