class PromoCodesState(StatesGroup):
waiting_for_promocode = State()
promocodes_list = ['Промокод']
@dp.message_handler(Text(equals='➕Промокод', ignore_case=True))
async def offer_promocode(message: types.Message):
await message.answer("Введите промокод:")
await PromoCodesState.waiting_for_promocode.set()
@dp.message_handler(state=PromoCodesState.waiting_for_promocode)
async def check_promocode(message: types.Message, state: FSMContext):
uid = message.from_user.id
c.execute('SELECT * FROM balances WHERE id = ?', (uid,))
row = c.fetchone()
if row is None:
c.execute('INSERT INTO balances VALUES (?, ?, ?, ?, ?)', (uid, 0, "", 0, 0))
conn.commit()
search_results = []
for promo_code in promocodes_list:
similarity = fuzz.ratio(promo_code.lower(), message.text.lower()) # Вычисляем схожесть
if similarity > 100: # Задаём порог схожести
search_results.append(promo_code)
if search_results:
if 'Промокод' in search_results:
await message.answer('✅Промокод найден! +10 к балансу', reply_markup=kb)
c.execute('UPDATE balances SET balance = balance + 10 WHERE id = ?', (uid,))
conn.commit()
await state.finish()
else:
await message.answer('Ничего не найдено')
await state.finish()
И бот просто игнорит после введения промокода((
помогите!