import telebot
from telebot import types
bot = telebot.TeleBot('token')
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.send_message(message.from_user.id, 'Вас приветствует NotifyBot(бот-напоминание)\n'
'Бот предназначен для создания напоминаний.')
bot.send_message(message.from_user.id, 'Чтобы начать введите /notify или /n')
bot.register_next_step_handler(message,notify_step)
def notify_step(message):
ed_iden='Выберите единицу времени:'
keyboard = types.InlineKeyboardMarkup()
key_hour = types.InlineKeyboardButton(text='Часы', callback_data='hour')
keyboard.add(key_hour)
key_min = types.InlineKeyboardButton(text='Минуты', callback_data='min')
keyboard.add(key_min)
key_day = types.InlineKeyboardButton(text='Дни', callback_data='days')
keyboard.add(key_day)
bot.send_message(message.from_user.id, text=ed_iden, reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
if call.data == 'hour':
bot.register_next_step_handler(call,hour(call))
elif call.data == "min":
pass
def hour(call):
bot.send_message(call.message.chat.id,'Введите целое количество часов.')
kolvo_hour=call.message.text
kolvo_hour=int(kolvo_hour)
bot.send_message(call.message.chat.id, kolvo_hour)
bot.infinity_polling()
Я новичек в разработке телеграм ботов на питоне, нужна помощь. Как мне обработать данные о количестве часов. то есть пользователь сначала выбирает единицу времени а потом чтобы он выбрал количество,к примеру, часов.
вот ошибка
2022-04-06 20:44:18,466 (__init__.py:615 MainThread) ERROR - TeleBot: "Infinity polling exception: invalid literal for int() with base 10: 'Выберите единицу времени:'"
2022-04-06 20:44:18,470 (__init__.py:617 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
File "C:\Users\Maxim\PycharmProjects\pythonProject\venv\lib\site-packages\telebot\__init__.py", line 611, in infinity_polling
self.polling(none_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
File "C:\Users\Maxim\PycharmProjects\pythonProject\venv\lib\site-packages\telebot\__init__.py", line 658, in polling
self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "C:\Users\Maxim\PycharmProjects\pythonProject\venv\lib\site-packages\telebot\__init__.py", line 720, in __threaded_polling
raise e
File "C:\Users\Maxim\PycharmProjects\pythonProject\venv\lib\site-packages\telebot\__init__.py", line 680, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\Maxim\PycharmProjects\pythonProject\venv\lib\site-packages\telebot\util.py", line 135, in raise_exceptions
raise self.exception_info
File "C:\Users\Maxim\PycharmProjects\pythonProject\venv\lib\site-packages\telebot\util.py", line 87, in run
task(*args, **kwargs)
File "C:\Users\Maxim\PycharmProjects\pythonProject\main.py", line 25, in callback_worker
bot.register_next_step_handler(call,hour(call))
File "C:\Users\Maxim\PycharmProjects\pythonProject\main.py", line 31, in hour
kolvo_hour=int(kolvo_hour)
ValueError: invalid literal for int() with base 10: 'Выберите единицу времени:'
"