@eldenhard2

Как добавить обработчик на несколько кнопок в телеграм боте aiogram?

Всем есть который выполняет регистрацию пользователя, смог сделать 2 кнопки, но не могу понять как сделать обработчик на вторую кнопку чтобы бот что-либо отвечал на неё, а не просто бездействовал
from cgitb import text
import logging
from msvcrt import kbhit
import re
from aiogram import Bot, Dispatcher, executor, types
import markups as nav
from db import Database

TOKEN = "#"

bot = Bot(token=TOKEN)
dp = Dispatcher(bot)

db = Database('MotorinDB.db')

last_commands = []


@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    if(not db.user_exists(message.from_user.id)):
        db.add_user(message.from_user.id)
        await bot.send_message(message.from_user.id,"Добро пожаловать в форму регистрации! \nПожалуйста, выберите необходимое поле", reply_markup=nav.allCategoryUser)
        last_commands.append({"command":"status_request","data":message})

    else:
        await bot.send_message(message.from_user.id,"Здравствуйте!\nВы уже зарегестированы и можете пользоваться возможностями бота.", reply_markup=nav.mainHelp)

@dp.message_handler()
async def bot_message(message: types.Message):
    if message.chat.type == 'private':
        if message.text == 'ПРОФИЛЬ':
            user = db.get_user(message.from_user.id)
            user_status = user[2]
            user_name = user[3]
            user_lastname = user [4]
            user_street = user [5]
            user_house = user [6]
            user_entrance = user [7]
            user_room = user [8]
            if user_status and user_name and user_lastname:
                await bot.send_message(message.from_user.id, 'Ваш статус "{}"\nВаше имя "{}"\nВаша фамилия "{}"\nВаша улица "{}"\nВаш дом "{}"\nВаш подъезд "{}"\nВаша квартира "{}"'.format(user_status, user_name, user_lastname, user_street, user_house, user_entrance, user_room))
            else:
                await bot.send_message(message.from_user.id,"Укажите ваш никнейм")
                last_commands.append({"command":"status_request","data":message})

        elif last_commands[-1]["command"] == 'room_request':
            last_commands.append({"command":"","data":message})
            db.put_user(message.from_user.id,message.text,'room')
            await bot.send_message(message.from_user.id,"Поздравляем \nВы  зарегистрированы!", reply_markup=nav.mainMenu)

        elif last_commands[-1]["command"] == 'entrance_requesat':
            last_commands.append({"command":"room_request", "data":message})
            db.put_user(message.from_user.id,message.text,'entrance')
            await bot.send_message(message.from_user.id,"Укажите вашу квартиру")

        elif last_commands[-1]["command"] == 'house_request':
            last_commands.append({"command":"entrance_request", "data":message})
            db.put_user(message.from_user.id,message.text,'house')
            await bot.send_message(message.from_user.id,"Укажите ваш подъезд")

        elif last_commands[-1]["command"] == 'street_request':
            last_commands.append({"command":"house_request", "data":message})
            db.put_user(message.from_user.id,message.text,'street')
            await bot.send_message(message.from_user.id,"Укажите ваш дом\nВыберите из списка", reply_markup=nav.allHome)

        elif last_commands[-1]["command"] == 'lastname_request':
            # обновить никнейм пользователя с id
            last_commands.append({"command":"street_request","data":message})
            db.put_user(message.from_user.id,message.text,'lastname')
            await bot.send_message(message.from_user.id,"Укажите вашу улицу\nВыберите из списка", reply_markup=nav.allStreet)

        elif last_commands[-1]['command'] == 'name_request':
            # обновить имя пользваотеля с таким то id
            last_commands.append({"command":"lastname_request","data":message})
            db.put_user(message.from_user.id,message.text,'name')
            await bot.send_message(message.from_user.id,"Укажите вашу фамилию")

        elif last_commands[-1]["command"] == 'status_request':
            # обновить никнейм пользователя с id
            last_commands.append({"command":"name_request","data":message})
            db.put_user(message.from_user.id,message.text,'status')
            await bot.send_message(message.from_user.id,"Укажите ваше имя")



if __name__== "__main__":
    executor.start_polling(dp, skip_updates = True)


# Навигация
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

btnProfile = KeyboardButton('ПРОФИЛЬ')
btnHelp = KeyboardButton('Нужна помощь')
btnCategoryUser1 = KeyboardButton('Собственник')
btnCategoryUser2 = KeyboardButton('Арендатор')
btnCategoryUser3 = KeyboardButton('Сожитель')

btnInformation = KeyboardButton('Иформация о боте')

btnStreet = KeyboardButton('Береговой проезд')

btnAllHomeBeregovoi1 = KeyboardButton('5к1')
btnAllHomeBeregovoi2 = KeyboardButton('5к2')
btnAllHomeBeregovoi3 = KeyboardButton('5к3')


mainMenu = ReplyKeyboardMarkup(resize_keyboard = True)
mainMenu.add(btnProfile, btnHelp)

mainHelp = ReplyKeyboardMarkup(resize_keyboard=True)
mainHelp.add(btnHelp)

allCategoryUser = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
allCategoryUser.add(btnCategoryUser1, btnCategoryUser2, btnCategoryUser3, btnInformation)

allStreet = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
allStreet.add(btnStreet)

allHome = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
allHome.add(btnAllHomeBeregovoi1, btnAllHomeBeregovoi2, btnAllHomeBeregovoi3)
  • Вопрос задан
  • 641 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы