Прикрепляю код для наглядности. Он не дописан и там много всего лишнего, прошу ответить только на главный вопрос.
import logging
from telegram.ext import Updater, CommandHandler
from telegram import InlineQueryResultArticle, InputTextMessageContent, ReplyKeyboardMarkup
from telegram.ext import MessageHandler, Filters, InlineQueryHandler
updater = Updater(token=TOKEN, use_context=True)
dispatcher = updater.dispatcher
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)
def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id,
text="Я бот, пожалуйста, поговори со мной!",
reply_markup=start_menu)
def getSetting(update, context):
context.bot.send_message(chat_id=update.effective_chat.id,
text="Выберите, какой параметр изменить",
reply_markup=settings)
# ~ def getWorkTime(update, context):
def echo(update, context):
text = 'ECHO: ' + update.message.text
context.bot.send_message(chat_id=update.effective_chat.id,
text=text)
def caps(update, context):
if context.args:
text_caps = ' '.join(context.args).upper()
context.bot.send_message(chat_id=update.effective_chat.id,
text=text_caps)
else:
context.bot.send_message(chat_id=update.effective_chat.id,
text='В команде нет аргументов')
context.bot.send_message(chat_id=update.effective_chat.id,
text='Правильный синтаксис: /caps аргументы через пробел')
def inline_caps(update, context):
query = update.inline_query.query
if not query:
return
results = list()
results.append(
InlineQueryResultArticle(
id=query.upper(),
title='Перевести слова в верхний регистр',
input_message_content=InputTextMessageContent(query.upper())
)
)
context.bot.answer_inline_query(update.inline_query.id, results)
def unknown(update, context):
context.bot.send_message(chat_id=update.effective_chat.id,
text="Sorry, I didn't understand that command.")
##### НАСТРОЙКИ ТАЙМЕРА #####
pomodoro = 10
shortBreak = 5
longBreak = 15
cycle = 0
pause = False
jumper = False
##### КНОПКИ #####
buttons_start_menu = [['Запустить таймер'], ['Настройки']]
start_menu = ReplyKeyboardMarkup(keyboard=buttons_start_menu, resize_keyboard=True)
buttons_settings = [['Время работы'], ['Короткий перерыв', 'Длинный перерыв'],
['Назад']]
settings = ReplyKeyboardMarkup(keyboard=buttons_settings,
resize_keyboard=True)
##### ОБРАБОТКА КОМАНД #####
start_handler = CommandHandler('start', start)
dispatcher.add_handler(start_handler)
back_handler = MessageHandler(Filters.text(['Назад']) &
(~Filters.command), start)
dispatcher.add_handler(back_handler)
settings_handler = MessageHandler(Filters.text(['Настройки']) &
(~Filters.command), getSetting)
dispatcher.add_handler(settings_handler)
echo_handler = MessageHandler(Filters.text & (~Filters.command), echo)
dispatcher.add_handler(echo_handler)
caps_handler = CommandHandler('caps', caps)
dispatcher.add_handler(caps_handler)
inline_caps_handler = InlineQueryHandler(inline_caps)
dispatcher.add_handler(inline_caps_handler)
unknown_handler = MessageHandler(Filters.command, unknown)
dispatcher.add_handler(unknown_handler)
##### КОНЕЦ #####
updater.start_polling()
updater.idle()