Spaces:
Runtime error
Runtime error
from aiogram import Router, F | |
from aiogram.types import Message | |
from aiogram.fsm.context import FSMContext | |
from app.database import requests as rq | |
from app.keyboards import user_keyboards as kb | |
from app.states import LeadMagnetStates | |
router = Router() | |
async def start_leadmagnet_input(message: Message, state: FSMContext): | |
await state.set_state(LeadMagnetStates.waiting_for_keyword) | |
await message.answer( | |
"Пожалуйста, введите кодовое слово.\n" | |
"Для возврата в меню напишите 'отмена'", | |
reply_markup=kb.user_back | |
) | |
async def process_leadmagnet(message: Message, state: FSMContext): | |
if message.text.lower() == 'отмена': | |
await state.clear() | |
await message.answer( | |
"Возвращаемся в главное меню", | |
reply_markup=kb.user_main | |
) | |
return | |
leadmagnet = await rq.get_leadmagnet_info(message.text) | |
if not leadmagnet: | |
await message.answer( | |
"К сожалению, такое кодовое слово не найдено.\n" | |
"Проверьте правильность написания или попробуйте другое слово.\n" | |
"Для возврата в меню напишите 'отмена'" | |
) | |
return | |
if not leadmagnet.is_active: | |
await message.answer( | |
"К сожалению, это кодовое слово больше не активно.\n" | |
"Попробуйте другое слово или вернитесь в меню, написав 'отмена'" | |
) | |
return | |
# Send leadmagnet content | |
await message.answer(leadmagnet.content) | |
# Clear state and offer registration if user is not registered | |
await state.clear() | |
user = await rq.get_user_info(message.from_user.id) | |
if not user or not user.contact: | |
await message.answer( | |
"Хотите получать больше полезных материалов?\n" | |
"Зарегистрируйтесь, чтобы не пропустить новые акции и предложения!", | |
reply_markup=await kb.get_registration_keyboard() | |
) | |
else: | |
await message.answer( | |
"Можете ввести другое кодовое слово или вернуться в меню", | |
reply_markup=kb.leadmagnet_keyboard | |
) | |
async def return_to_main_menu(message: Message, state: FSMContext): | |
await state.clear() | |
await message.answer( | |
"Возвращаемся в главное меню", | |
reply_markup=kb.user_main | |
) |