@bot.message_handler(commands=['selection'])
def bujet(message):
is_age = False
if not is_age:
bot.send_message(message.chat.id, "Ваш бюджет:")
age = 0;
@bot.message_handler(content_types=['text'])
def selection(message):
try:
age = int(message.text) #проверяем, что возраст введен корректно
bot.send_message(message.from_user.id, age)
is_age = True
except Exception:
bot.send_message(message.from_user.id, 'Цифрами, пожалуйста')
task_cb = CallbackData("task_menu", "task_type", "task_num")
# array = [{name: 'task_name_1', type: 'c', num: 123456}]
def task_keyboard(array):
markup = InlineKeyboardMarkup(row_width=2)
for task in array:
markup.insert(InlineKeyboardButton(text=task.get('name'),
callback_data=task_cb.new(task_type=task.get("type"),
task_num= task.get("num"))))
return markup
# Ловим колбэк
@dp.callback_query_handler(task_cb.filter())
async def show_task(callback: types.CallbackQuery, callback_data: dict):
type = callback_data.get("task_type")
num = callback_data.get("task_num")
type = callback[:1]
num= callback[1:]
await callback.message.delete_reply_markup()
async with state.proxy() as data:
вот такой конструкцией четно говоря для хранения данных не пользовался. Пойдите по пути который описан в стандартных мануалах.await state.update_data(name=message.text)
state_data = await state.get_data()
name = state_data.get('name')
@bot.message_handler(content_types=["text"])
def lalala(message):
text = message.text
answer = requests.get('api')
if 'amazon' in text:
try:
product_id = text.split('/', 6)[5]
bot.send_message(message.chat.id, f'Amazon - json.loads(answer.text)[0]['title']')
except Exception:
bot.send_message(message.chat.id, 'Не верная ссылка')
text = message.text # Вот это не понятная строчка, но наверное смысл есть, но он глубок
@dp.message_handler(Command("start"), state='*')
async def show_menu(message: types.Message, state: FSMContext):
await state.finish()
await States.first.set()
.........
@dp.callback_query_handler(callback_data.filter(), state=States.first)
async def first_step(callback: types.CallbackQuery, state: FSMContext):
.....