Merge pull request #57 from ergoz/testing

Add ability for custom filename in send methods and InputFile
This commit is contained in:
Leandro Toledo 2015-09-08 15:22:58 -03:00
commit ed77afaab9
3 changed files with 43 additions and 1 deletions

View file

@ -10,6 +10,7 @@ The following wonderful people contributed directly or indirectly to this projec
- `Avanatiker <https://github.com/Avanatiker>`_
- `bimmlerd <https://github.com/bimmlerd>`_
- `ErgoZ Riftbit Vaper <https://github.com/ergoz>`_
- `franciscod <https://github.com/franciscod>`_
- `JASON0916 <https://github.com/JASON0916>`_
- `JRoot3D <https://github.com/JRoot3D>`_

View file

@ -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

View file

@ -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