Стоп команда для телеграм бот aiogram?

Есть код бота, не получается реализовать кнопку для остановки while True.

    await message.answer(f'Приветствую вас, {message.from_user.username}!', reply_markup=menu_kb)


async def end_point(message: types.Message):
    await message.answer(f'Пока, {message.from_user.username}!')


async def moscow_set_price(message: types.Message):
    await message.answer('Введите желаемую стоимость билета (Москва)')
    await MoscowState.price_m.set()


async def spb_set_price(message: types.Message, state: FSMContext):
    price_msc = message.text
    await state.update_data(price_m=price_msc)
    await message.answer('Введите желаемую стоимость билета (Питер)')
    await SpbState.price_s.set()


async def results(message: types.Message, state: FSMContext):
    price_spb = message.text
    await state.update_data(price_s=price_spb)
    data = await state.get_data()
    price_m = data['price_m']
    price_s = data['price_s']
    await state.finish()
    price_list.append(price_m)
    price_list.append(price_s)
    i_markup = InlineKeyboardMarkup(row_width=1)
    i_button = InlineKeyboardButton(text='Начать', callback_data='start')
    i_markup.add(i_button)

    await message.answer('Начать поиск?', reply_markup=i_markup)


@dp.callback_query_handler(lambda callback_query: callback_query.data == 'start')
async def search(call: CallbackQuery, state: FSMContext):
    price_m = price_list[0]
    price_s = price_list[1]
    await state.finish()
    telegram = get_notifier('telegram')
    await call.message.answer('Обработка запроса ⌛')
    time.sleep(5)
    while True:
        stop = call.message.text
        if stop == '/restart':
            break
        else:
            for i in range(7):
                date_m = MONDAY[i]
                date_f = FRIDAY[i]


                result_list_msc = parser_msc(date_m, int(price_m))
                result_list_spb = parser_spb(date_f, int(price_s))
                date_monday = datetime.datetime(int(date_m[:4]), int(date_m[4:6]), int(date_m[6:])).strftime('%d.%m.%Y')
                date_friday = datetime.datetime(int(date_f[:4]), int(date_f[4:6]), int(date_f[6:])).strftime('%d.%m.%Y')

                if result_list_msc == []:
                    message_no_results = f'Подходящих рейсов из Москвы на {date_monday}  по этой стоимости не нашлось'
                    logging.append(message_no_results)
                    pass
                    # telegram.notify(token=TOKEN, chat_id=chat_id, message=message_no_results)
                else:
                    for j in result_list_msc:
                        messages = f'Рейс из Москвы на {date_monday}: {j} ниже указанной стоимости! Спешите купить билет!'
                        logging.append(messages)
                        telegram.notify(token=TOKEN, chat_id=chat_id, message=messages)

                if result_list_spb == []:
                    message_no_results = f'Подходящих рейсов из Питера на {date_friday} по этой стоимости не нашлось'
                    logging.append(message_no_results)
                    pass
                else:
                    for a in result_list_spb:
                        messages = f'Рейс из Питера на {date_friday}: {a} ниже указанной стоимости! Спешите купить билет!'
                        logging.append(messages)
                        telegram.notify(token=TOKEN, chat_id=chat_id, message=messages)

        await call.message.answer(f'Logs - {logging}')
        time.sleep(10)


def register_handlers_main(dp: Dispatcher):
    dp.register_message_handler(start_point, commands=['start'])
    dp.register_message_handler(end_point, commands=['end'])
    dp.register_message_handler(moscow_set_price, commands=['Поиск'])
    dp.register_message_handler(spb_set_price, state=MoscowState.price_m)
    dp.register_message_handler(results, state=SpbState.price_s, run_task=search)
    dp.register_message_handler(start_point, commands=['restart'])

Проблема в том, что не получается перехватить сообщение с командой /restart


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