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)
|
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
|
## TODO
|
||||||
|
|
||||||
|
- [ ] Let message not only support text.
|
||||||
- [x] getMe
|
- [x] getMe
|
||||||
- [x] sendMessage
|
- [x] sendMessage
|
||||||
- [x] forwardMessage
|
- [x] forwardMessage
|
||||||
- [ ] sendPhoto
|
- [x] sendPhoto
|
||||||
- [ ] sendAudio
|
- [x] sendAudio
|
||||||
- [ ] sendDocument
|
- [x] sendDocument
|
||||||
- [ ] sendSticker
|
- [x] sendSticker
|
||||||
- [ ] sendVideo
|
- [x] sendVideo
|
||||||
- [ ] sendLocation
|
- [ ] sendLocation
|
||||||
- [ ] sendChatAction
|
- [ ] sendChatAction
|
||||||
- [ ] getUserProfilePhotos
|
- [ ] getUserProfilePhotos
|
||||||
- [x] getUpdates
|
- [ ] getUpdates (Only text message support now.)
|
||||||
|
@ -83,6 +83,7 @@ class TeleBot:
|
|||||||
time.sleep(interval + 1)
|
time.sleep(interval + 1)
|
||||||
self.__stop_polling = False
|
self.__stop_polling = False
|
||||||
self.polling_thread = threading.Thread(target=self.__polling, args=())
|
self.polling_thread = threading.Thread(target=self.__polling, args=())
|
||||||
|
self.polling_thread.daemon = True
|
||||||
self.polling_thread.start()
|
self.polling_thread.start()
|
||||||
|
|
||||||
def __polling(self):
|
def __polling(self):
|
||||||
@ -112,10 +113,67 @@ class TeleBot:
|
|||||||
|
|
||||||
def forward_message(self, chat_id, from_chat_id, message_id):
|
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 chat_id: which chat to forward
|
||||||
:param from_chat_id: which chat message from
|
:param from_chat_id: which chat message from
|
||||||
:param message_id: message id
|
:param message_id: message id
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
return apihelper.forward_message(self.token, chat_id, from_chat_id, message_id)
|
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}
|
payload = {'chat_id': chat_id, 'from_chat_id': from_chat_id, 'message_id': message_id}
|
||||||
req = requests.get(request_url, params=payload)
|
req = requests.get(request_url, params=payload)
|
||||||
return req.json()
|
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