mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
Documentation improvements and file name fix
This commit is contained in:
parent
d03f3b2c52
commit
c5a69944be
@ -6605,22 +6605,61 @@ class ChatAdministratorRights(JsonDeserializable, JsonSerializable, Dictionaryab
|
|||||||
|
|
||||||
|
|
||||||
class InputFile:
|
class InputFile:
|
||||||
|
"""
|
||||||
|
A class to send files through Telegram Bot API.
|
||||||
|
|
||||||
|
You need to pass a file, which should be an instance of :class:`io.IOBase` or
|
||||||
|
:class:`pathlib.Path`, or :obj:`str`.
|
||||||
|
|
||||||
|
If you pass an :obj:`str` as a file, it will be opened and closed by the class.
|
||||||
|
|
||||||
|
:param file: A file to send.
|
||||||
|
:type file: :class:`io.IOBase` or :class:`pathlib.Path` or :obj:`str`
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
:caption: Example on sending a file using this class
|
||||||
|
|
||||||
|
from telebot.types import InputFile
|
||||||
|
|
||||||
|
# Sending a file from disk
|
||||||
|
bot.send_document(
|
||||||
|
chat_id,
|
||||||
|
InputFile('/path/to/file/file.txt')
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Sending a file from an io.IOBase object
|
||||||
|
with open('/path/to/file/file.txt', 'rb') as f:
|
||||||
|
bot.send_document(
|
||||||
|
chat_id,
|
||||||
|
InputFile(f)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Sending a file using pathlib.Path:
|
||||||
|
bot.send_document(
|
||||||
|
chat_id,
|
||||||
|
InputFile(pathlib.Path('/path/to/file/file.txt'))
|
||||||
|
)
|
||||||
|
"""
|
||||||
def __init__(self, file) -> None:
|
def __init__(self, file) -> None:
|
||||||
self._file, self.file_name = self._resolve_file(file)
|
self._file, self.file_name = self._resolve_file(file)
|
||||||
|
|
||||||
def _resolve_file(self, file):
|
def _resolve_file(self, file):
|
||||||
if isinstance(file, str):
|
if isinstance(file, str):
|
||||||
_file = open(file, 'rb')
|
_file = open(file, 'rb')
|
||||||
return _file, os.path.basename(file.name)
|
return _file, os.path.basename(_file.name)
|
||||||
elif isinstance(file, IOBase):
|
elif isinstance(file, IOBase):
|
||||||
return file, os.path.basename(file.name)
|
return file, os.path.basename(file.name)
|
||||||
elif isinstance(file, Path):
|
elif isinstance(file, Path):
|
||||||
_file = open(file, 'rb')
|
_file = open(file, 'rb')
|
||||||
return _file, os.path.basename(file.name)
|
return _file, os.path.basename(_file.name)
|
||||||
else:
|
else:
|
||||||
raise TypeError("File must be a string or a file-like object(pathlib.Path, io.IOBase).")
|
raise TypeError("File must be a string or a file-like object(pathlib.Path, io.IOBase).")
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def file(self):
|
def file(self):
|
||||||
|
"""
|
||||||
|
File object.
|
||||||
|
"""
|
||||||
return self._file
|
return self._file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user