diff --git a/AUTHORS.rst b/AUTHORS.rst index 5ce4542de..9b6f57d20 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -10,6 +10,7 @@ The following wonderful people contributed directly or indirectly to this projec - `Avanatiker `_ - `bimmlerd `_ +- `ErgoZ Riftbit Vaper `_ - `franciscod `_ - `JASON0916 `_ - `JRoot3D `_ diff --git a/telegram/bot.py b/telegram/bot.py index 5b1033009..00bb858f5 100644 --- a/telegram/bot.py +++ b/telegram/bot.py @@ -252,6 +252,7 @@ class Bot(TelegramObject): def sendPhoto(self, chat_id, photo, + filename=None, caption=None, **kwargs): """Use this method to send photos. @@ -263,6 +264,9 @@ class Bot(TelegramObject): Photo to send. You can either pass a file_id as String to resend a photo that is already on the Telegram servers, or upload a new photo using multipart/form-data. + filename: + File name that shows in telegram message (it is usefull when you + send file generated by temp module, for example). [Optional] caption: Photo caption (may also be used when resending photos by file_id). [Optional] @@ -282,6 +286,8 @@ class Bot(TelegramObject): data = {'chat_id': chat_id, 'photo': photo} + if filename: + data['filename'] = filename if caption: data['caption'] = caption @@ -292,6 +298,7 @@ class Bot(TelegramObject): def sendAudio(self, chat_id, audio, + filename=None, duration=None, performer=None, title=None, @@ -314,6 +321,9 @@ class Bot(TelegramObject): Audio file to send. You can either pass a file_id as String to resend an audio that is already on the Telegram servers, or upload a new audio file using multipart/form-data. + filename: + File name that shows in telegram message (it is usefull when you + send file generated by temp module, for example). [Optional] duration: Duration of sent audio in seconds. [Optional] performer: @@ -336,6 +346,8 @@ class Bot(TelegramObject): data = {'chat_id': chat_id, 'audio': audio} + if filename: + data['filename'] = filename if duration: data['duration'] = duration if performer: @@ -350,6 +362,7 @@ class Bot(TelegramObject): def sendDocument(self, chat_id, document, + filename=None, **kwargs): """Use this method to send general files. @@ -360,6 +373,9 @@ class Bot(TelegramObject): File to send. You can either pass a file_id as String to resend a file that is already on the Telegram servers, or upload a new file using multipart/form-data. + filename: + File name that shows in telegram message (it is usefull when you + send file generated by temp module, for example). [Optional] reply_to_message_id: If the message is a reply, ID of the original message. [Optional] reply_markup: @@ -376,6 +392,9 @@ class Bot(TelegramObject): data = {'chat_id': chat_id, 'document': document} + if filename: + data['filename'] = filename + return url, data @log @@ -383,6 +402,7 @@ class Bot(TelegramObject): def sendSticker(self, chat_id, sticker, + filename=None, **kwargs): """Use this method to send .webp stickers. @@ -393,6 +413,9 @@ class Bot(TelegramObject): Sticker to send. You can either pass a file_id as String to resend a sticker that is already on the Telegram servers, or upload a new sticker using multipart/form-data. + filename: + File name that shows in telegram message (it is usefull when you + send file generated by temp module, for example). [Optional] reply_to_message_id: If the message is a reply, ID of the original message. [Optional] reply_markup: @@ -409,6 +432,9 @@ class Bot(TelegramObject): data = {'chat_id': chat_id, 'sticker': sticker} + if filename: + data['filename'] = filename + return url, data @log @@ -416,6 +442,7 @@ class Bot(TelegramObject): def sendVideo(self, chat_id, video, + filename=None, duration=None, caption=None, **kwargs): @@ -429,6 +456,9 @@ class Bot(TelegramObject): Video to send. You can either pass a file_id as String to resend a video that is already on the Telegram servers, or upload a new video file using multipart/form-data. + filename: + File name that shows in telegram message (it is usefull when you + send file generated by temp module, for example). [Optional] duration: Duration of sent video in seconds. [Optional] caption: @@ -450,6 +480,8 @@ class Bot(TelegramObject): data = {'chat_id': chat_id, 'video': video} + if filename: + data['filename'] = filename if duration: data['duration'] = duration if caption: @@ -462,6 +494,7 @@ class Bot(TelegramObject): def sendVoice(self, chat_id, voice, + filename=None, duration=None, **kwargs): """Use this method to send audio files, if you want Telegram clients to @@ -478,6 +511,9 @@ class Bot(TelegramObject): Audio file to send. You can either pass a file_id as String to resend an audio that is already on the Telegram servers, or upload a new audio file using multipart/form-data. + filename: + File name that shows in telegram message (it is usefull when you + send file generated by temp module, for example). [Optional] duration: Duration of sent audio in seconds. [Optional] reply_to_message_id: @@ -496,6 +532,8 @@ class Bot(TelegramObject): data = {'chat_id': chat_id, 'voice': voice} + if filename: + data['filename'] = filename if duration: data['duration'] = duration diff --git a/telegram/inputfile.py b/telegram/inputfile.py index 0d27ff194..5d42f734b 100644 --- a/telegram/inputfile.py +++ b/telegram/inputfile.py @@ -67,7 +67,10 @@ class InputFile(object): if isinstance(self.input_file, file): self.input_file_content = self.input_file.read() - self.filename = os.path.basename(self.input_file.name) + if 'filename' in self.data: + self.filename = self.data.pop('filename') + else: + self.filename = os.path.basename(self.input_file.name) self.mimetype = mimetypes.guess_type(self.filename)[0] or \ DEFAULT_MIME_TYPE