loop – is an optional event loop instance, asyncio.get_event_loop() is used if loop is not specified.
import enum
class UserStates(enum.IntEnum):
default = 0
polt_pressed = 1
user_states = {}
@dp.callback_query_handler()
async def plt(call: CallbackQuery):
user_id = call.from_user.id
if user_id not in user_states: #новый пользователь?
user_states[user_id] = UserStates.default #да, ставим ему состояние по умолчанию
if 'polt' in call.data: #обрабатываем сигнал polt
if user_states[user_id] == UserStates.default: #пользователь в состоянии по умолчанию?
user_states[user_id] = UserStates.polt_pressed # запоминаем что этот юзер нажал polt.
await call.message.edit_text('Красава', reply_markup=pltv)
else: #пользователь уже нажимал polt!
await call.message.edit_text('Второй раз нельзя!', reply_markup=pltv)
elif 'amf' in call.data:
if user_states[user_id] == UserStates.polt_pressed: #пользователь уже нажал polt?
await call.message.answer('Ура', reply_markup=btnp_all)
else:
await call.message.answer('Сначала нажми polt!', reply_markup=btnp_all)