2016-01-05 09:58:19 +03:00
|
|
|
# This example show how to write an inline mode telegramt bot use pyTelegramBotAPI.
|
|
|
|
import telebot
|
|
|
|
import time
|
|
|
|
import sys
|
2016-01-05 16:54:47 +03:00
|
|
|
import logging
|
2016-01-05 09:58:19 +03:00
|
|
|
from telebot import types
|
|
|
|
|
|
|
|
API_TOKEN = '<api_token>'
|
|
|
|
|
|
|
|
bot = telebot.TeleBot(API_TOKEN)
|
2016-01-05 16:54:47 +03:00
|
|
|
telebot.logger.setLevel(logging.DEBUG)
|
2016-01-05 09:58:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
@bot.inline_handler(lambda query: query.query == 'text')
|
2016-01-05 16:54:47 +03:00
|
|
|
def query_text(inline_query):
|
2016-01-05 09:58:19 +03:00
|
|
|
try:
|
|
|
|
r = types.InlineQueryResultArticle('1', 'Result', inline_query.query)
|
2016-01-05 16:54:47 +03:00
|
|
|
r2 = types.InlineQueryResultArticle('2', 'Result2', inline_query.query)
|
|
|
|
bot.answer_inline_query(inline_query.id, [r, r2])
|
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
|
|
|
|
|
|
|
|
|
|
|
@bot.inline_handler(lambda query: query.query == 'photo')
|
|
|
|
def query_photo(inline_query):
|
|
|
|
try:
|
|
|
|
r = types.InlineQueryResultPhoto('1',
|
|
|
|
'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/kitten.jpg',
|
2016-01-05 17:23:00 +03:00
|
|
|
'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/kitten.jpg')
|
2016-01-05 16:54:47 +03:00
|
|
|
r2 = types.InlineQueryResultPhoto('2',
|
|
|
|
'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/rooster.jpg',
|
2016-01-05 17:23:00 +03:00
|
|
|
'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/rooster.jpg')
|
2016-01-05 16:54:47 +03:00
|
|
|
bot.answer_inline_query(inline_query.id, [r, r2])
|
2016-01-05 09:58:19 +03:00
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
|
|
|
|
|
|
|
|
2016-01-05 17:23:00 +03:00
|
|
|
@bot.inline_handler(lambda query: query.query == 'video')
|
|
|
|
def query_video(inline_query):
|
|
|
|
try:
|
|
|
|
r = types.InlineQueryResultVideo('1',
|
|
|
|
'https://github.com/eternnoir/pyTelegramBotAPI/blob/master/tests/test_data/test_video.mp4?raw=true',
|
|
|
|
'video/mp4', 'Video',
|
|
|
|
'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/rooster.jpg',
|
|
|
|
'Title'
|
|
|
|
)
|
|
|
|
bot.answer_inline_query(inline_query.id, [r])
|
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
|
|
|
|
|
|
|
|
2016-01-05 09:58:19 +03:00
|
|
|
@bot.inline_handler(lambda query: len(query.query) is 0)
|
|
|
|
def default_query(inline_query):
|
|
|
|
try:
|
|
|
|
r = types.InlineQueryResultArticle('1', 'default', 'default')
|
|
|
|
bot.answer_inline_query(inline_query.id, [r])
|
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
|
|
|
|
|
|
|
|
|
|
|
def main_loop():
|
|
|
|
bot.polling(True)
|
|
|
|
while 1:
|
|
|
|
time.sleep(3)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
try:
|
|
|
|
main_loop()
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
print >> sys.stderr, '\nExiting by user request.\n'
|
|
|
|
sys.exit(0)
|