Spaces:
Runtime error
Runtime error
File size: 2,966 Bytes
339f372 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
from aiogram import Router, F
from aiogram.types import Message, CallbackQuery
from aiogram.fsm.context import FSMContext
from app.database import requests as rq
from app.keyboards import user_keyboards as kb
from app.database.requests import check_user_registered, update_user_data, check_login_unique, own_login_check
from app.states import Other
router = Router()
@router.message(F.text == "Посмотреть сохраненные сведения о себе")
async def get_info(message: Message):
registration_status = await check_user_registered(message.from_user.id)
if registration_status:
user_info = await rq.get_user_registration_info(message.from_user.id)
await message.answer(user_info, reply_markup=kb.user_infocheck_back)
elif not registration_status:
await message.answer("Вы не зарегистрированы. Пожалуйста, зарегистрируйтесь, чтобы увидеть сохраненные сведения о себе.", reply_markup=kb.user_back)
return
@router.callback_query(F.data == 'data_correct')
async def correction_info(callback: CallbackQuery, state: FSMContext):
await state.set_state(Other.user_data_check)
await callback.message.answer('Вы правда хотите изменить регистрационные данные?', reply_markup=kb.yes_no_keyboard)
@router.message(Other.user_data_check)
async def register_check(message: Message, state: FSMContext):
if message.text == 'Да':
await state.set_state(Other.user_data_correct)
await message.answer('Упс :( Что Вы хотите исправить?', reply_markup=kb.register_correct_keyboard)
if message.text == 'Нет':
await message.answer('Хорошо! Если что-то изменится, Вы всегда можете обновить свои данные!', reply_markup=kb.user_back_wo_reg)
await state.clear()
@router.message(Other.user_data_correct)
async def correction_info(message: Message, state: FSMContext):
await state.update_data(correction=message.text)
print("check")
await state.set_state(Other.user_data_finish)
await message.answer('Какие данные Вы хотите внести?', reply_markup=kb.yes_no_keyboard)
@router.message(Other.user_data_finish)
async def correction_info_set(message: Message, state: FSMContext):
data = await state.get_data()
if data['correction'] == 'Логин':
if not await check_login_unique(message.text) and not own_login_check(message.from_user.id, message.text):
await message.answer('Этот логин уже занят. Пожалуйста, выберите другой.')
return
await update_user_data(message.from_user.id, data['correction'], message.text)
await state.clear()
await message.answer('Изменения внесены!', reply_markup=kb.user_back_wo_reg) |