Как пользуясь vk_api ловить payload с одинаковым началом

Рейтинг: 0Ответов: 1Опубликовано: 17.04.2023

Есть две inline кнопки.У обоих payload начинается одинаково, но заканчивается всегда по разному.Конец берется из базы данных, поэтому может быть вообще любым.Нужно, чтобы один хендлер ловил обе эти кнопки, а уже в теле функции проверял, какая именно кнопка была нажата.В aiogram это реализовано у меня так

dp.register_callback_handler(test_callback,lambda x: x.data and x.data.startswith('button_prefix '))

Но сейчас необходимо писать код для вк на библиотеке vk_maria, а там payload это словарь, а не строка.И как фильтровать словарь нет никаких идей.Пробовал все, что пришло в голову, пытался написать кастомный фильтр, но что-то не вышло.Под капотом библиотеки нашел какой-то PayloadFilter, как им пользоваться не понял...

Ответы

▲ 0

То, что ты делаешь в aiogram можно сделать и в vk_maria, используя FunctionFilter. По умолчанию работает через f=... в хендлере.

@dp.message_handler(f=lambda x: ...)
def handler():
    ...