diff --git a/README.md b/README.md index dae46a2..5863c8e 100644 --- a/README.md +++ b/README.md @@ -65,11 +65,11 @@ while True: - [x] getMe - [x] sendMessage - [x] forwardMessage -- [ ] sendPhoto -- [ ] sendAudio -- [ ] sendDocument -- [ ] sendSticker -- [ ] sendVideo +- [x] sendPhoto +- [x] sendAudio +- [x] sendDocument +- [x] sendSticker +- [x] sendVideo - [ ] sendLocation - [ ] sendChatAction - [ ] getUserProfilePhotos diff --git a/telebot/__init__.py b/telebot/__init__.py index cb2c141..33f2f4a 100644 --- a/telebot/__init__.py +++ b/telebot/__init__.py @@ -112,10 +112,25 @@ class TeleBot: def forward_message(self, chat_id, from_chat_id, message_id): """ - + Use this method to forward messages of any kind. :param chat_id: which chat to forward :param from_chat_id: which chat message from :param message_id: message id :return: """ return apihelper.forward_message(self.token, chat_id, from_chat_id, message_id) + + def send_photo(self, chat_id, photo, caption=None, reply_to_message_id=None, reply_markup=None): + return apihelper.send_photo(self.token, chat_id, photo, caption, reply_to_message_id, reply_markup) + + def send_audio(self, chat_id, data, reply_to_message_id=None, reply_markup=None): + return apihelper.send_data(self.token, chat_id, data, 'audio', reply_to_message_id, reply_markup) + + def send_document(self, chat_id, data, reply_to_message_id=None, reply_markup=None): + return apihelper.send_data(self.token, chat_id, data, 'document', reply_to_message_id, reply_markup) + + def send_sticker(self, chat_id, data, reply_to_message_id=None, reply_markup=None): + return apihelper.send_data(self.token, chat_id, data, 'sticker', reply_to_message_id, reply_markup) + + def send_video(self, chat_id, data, reply_to_message_id=None, reply_markup=None): + return apihelper.send_data(self.token, chat_id, data, 'video', reply_to_message_id, reply_markup) diff --git a/telebot/apihelper.py b/telebot/apihelper.py index 93720f9..0ced9ac 100644 --- a/telebot/apihelper.py +++ b/telebot/apihelper.py @@ -52,3 +52,42 @@ def forward_message(token, chat_id, from_chat_id, message_id): payload = {'chat_id': chat_id, 'from_chat_id': from_chat_id, 'message_id': message_id} req = requests.get(request_url, params=payload) return req.json() + + +def send_photo(token, chat_id, photo, caption=None, reply_to_message_id=None, reply_markup=None): + api_url = telebot.API_URL + method_url = r'sendPhoto' + request_url = api_url + 'bot' + token + '/' + method_url + payload = {'chat_id': chat_id} + files = {'photo': photo} + if caption: + payload['caption'] = caption + if reply_to_message_id: + payload['reply_to_message_id'] = reply_to_message_id + if reply_markup: + payload['reply_markup'] = reply_markup + req = requests.post(request_url, params=payload, files=files) + return req.json() + +def send_data(token, chat_id, data, type, reply_to_message_id=None, reply_markup=None): + api_url = telebot.API_URL + method_url = get_method_by_type(type) + request_url = api_url + 'bot' + token + '/' + method_url + payload = {'chat_id': chat_id} + files = {type: data} + if reply_to_message_id: + payload['reply_to_message_id'] = reply_to_message_id + if reply_markup: + payload['reply_markup'] = reply_markup + req = requests.post(request_url, params=payload, files=files) + return req.json() + +def get_method_by_type(type): + if type == 'audio': + return 'sendAudio' + if type == 'document': + return 'sendDocument' + if type == 'sticker': + return 'sendSticker' + if type == 'video': + return 'sendVideo'