mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
Merge branch 'develop'
This commit is contained in:
commit
5505d0e2a9
56
README.md
56
README.md
@ -60,17 +60,61 @@ while True:
|
||||
time.sleep(20)
|
||||
```
|
||||
|
||||
## TeleBot API usage
|
||||
|
||||
***NOTICE*** : Message type only support text now.
|
||||
|
||||
```python
|
||||
import telebot
|
||||
import time
|
||||
|
||||
TOKEN = '<token_string>'
|
||||
tb = telebot.TeleBot(TOKEN) #create new Telegram Bot object
|
||||
|
||||
# getMe
|
||||
user = tb.get_me()
|
||||
|
||||
# sendMessage
|
||||
tb.send_message(chatid, text)
|
||||
|
||||
# forwardMessage
|
||||
# tb.forward_message(10894,926,3)
|
||||
tb.forward_message(to_chat_id, from_chat_id, message_id)
|
||||
|
||||
# sendPhoto
|
||||
photo = open('/tmp/photo.png', 'rb')
|
||||
tb.send_photo(chat_id, photo)
|
||||
|
||||
# sendAudio
|
||||
audio = open('/tmp/audio.ogg', 'rb')
|
||||
tb.send_audio(chat_id, audio)
|
||||
|
||||
# sendDocument
|
||||
doc = open('/tmp/file.txt', 'rb')
|
||||
tb.send_document(chat_id, doc)
|
||||
|
||||
# sendSticker
|
||||
sti = open('/tmp/sti.webp', 'rb')
|
||||
tb.send_sticker(chat_id, sti)
|
||||
|
||||
# sendVideo
|
||||
video = open('/tmp/video.mp4', 'rb')
|
||||
tb.send_video(chat_id, video)
|
||||
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] Let message not only support text.
|
||||
- [x] getMe
|
||||
- [x] sendMessage
|
||||
- [x] forwardMessage
|
||||
- [ ] sendPhoto
|
||||
- [ ] sendAudio
|
||||
- [ ] sendDocument
|
||||
- [ ] sendSticker
|
||||
- [ ] sendVideo
|
||||
- [x] sendPhoto
|
||||
- [x] sendAudio
|
||||
- [x] sendDocument
|
||||
- [x] sendSticker
|
||||
- [x] sendVideo
|
||||
- [ ] sendLocation
|
||||
- [ ] sendChatAction
|
||||
- [ ] getUserProfilePhotos
|
||||
- [x] getUpdates
|
||||
- [ ] getUpdates (Only text message support now.)
|
||||
|
@ -83,6 +83,7 @@ class TeleBot:
|
||||
time.sleep(interval + 1)
|
||||
self.__stop_polling = False
|
||||
self.polling_thread = threading.Thread(target=self.__polling, args=())
|
||||
self.polling_thread.daemon = True
|
||||
self.polling_thread.start()
|
||||
|
||||
def __polling(self):
|
||||
@ -112,10 +113,67 @@ 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):
|
||||
"""
|
||||
Use this method to send photos.
|
||||
:param chat_id:
|
||||
:param photo:
|
||||
:param caption:
|
||||
:param reply_to_message_id:
|
||||
:param reply_markup:
|
||||
:return:
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
Use this method to send audio files, if you want Telegram clients to display the file as a playable
|
||||
voice message. For this to work, your audio must be in an .ogg file encoded with OPUS
|
||||
:param chat_id:
|
||||
:param data:
|
||||
:param reply_to_message_id:
|
||||
:param reply_markup:
|
||||
:return:
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
Use this method to send general files.
|
||||
:param chat_id:
|
||||
:param data:
|
||||
:param reply_to_message_id:
|
||||
:param reply_markup:
|
||||
:return:
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
Use this method to send .webp stickers.
|
||||
:param chat_id:
|
||||
:param data:
|
||||
:param reply_to_message_id:
|
||||
:param reply_markup:
|
||||
:return:
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
Use this method to send video files, Telegram clients support mp4 videos.
|
||||
:param chat_id:
|
||||
:param data:
|
||||
:param reply_to_message_id:
|
||||
:param reply_markup:
|
||||
:return:
|
||||
"""
|
||||
return apihelper.send_data(self.token, chat_id, data, 'video', reply_to_message_id, reply_markup)
|
||||
|
@ -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, data_type, reply_to_message_id=None, reply_markup=None):
|
||||
api_url = telebot.API_URL
|
||||
method_url = get_method_by_type(data_type)
|
||||
request_url = api_url + 'bot' + token + '/' + method_url
|
||||
payload = {'chat_id': chat_id}
|
||||
files = {data_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(data_type):
|
||||
if data_type == 'audio':
|
||||
return 'sendAudio'
|
||||
if data_type == 'document':
|
||||
return 'sendDocument'
|
||||
if data_type == 'sticker':
|
||||
return 'sendSticker'
|
||||
if data_type == 'video':
|
||||
return 'sendVideo'
|
||||
|
Loading…
Reference in New Issue
Block a user