Телеграмм бот по сбору информации от пользователей

Есть код.

import asyncio
import json
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware

API_TOKEN = 'токен'

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())


@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    await message.answer("Пожалуйста, введите свое имя:")


@dp.message_handler(lambda message: True)
async def get_name(message: types.Message):
    name = message.text
    await message.answer("Пожалуйста, введите свой номер телефона:")


@dp.message_handler()
async def get_phone_number(message: types.Message):
    phone_number = message.text
    await message.answer("Пожалуйста, введите свой адрес местоположения:")


@dp.message_handler()
async def get_location_address(message: types.Message):
    location_address = message.text
    await message.answer("Пожалуйста, предоставьте информацию о продукте:")


@dp.message_handler()
async def get_product_information(message: types.Message):
    product_info = message.text
    await message.answer("Пожалуйста, предоставьте название компании:")


@dp.message_handler()
async def save_info(message: types.Message):
    user_info = {
        'name': get_name(),
        # 'phone_number': get_phone_number(),
        'location_address': get_location_address(),
        'product_info': get_product_information(),
        'company_name': message.text
    }
    with open('user_info.json', 'a') as file:
        json.dump(user_info, file)
        file.write('\n')
    await message.answer("Информация сохранена.")


async def main():
    await dp.start_polling()
    await asyncio.sleep(5)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.create_task(main())
    loop.run_forever()

Код отрабатывает первую функцию затем просит номер телефона и после ввода опять номер просит и так бесконечно.


Ответы (1 шт):

Автор решения: Bi Diaz
@dp.message_handler(lambda message: message.text and not message.text.startswith('/'))

декораторы меняй на этот

→ Ссылка