Files
demo_spa_bot/app/handlers/profile.py
T

35 lines
1.3 KiB
Python

"""User profile handler - auto-registers if missing."""
from aiogram import Router, F
from aiogram.types import Message
from aiogram.fsm.context import FSMContext
from app.db.postgres import PostgresDB
from app.config import USE_POSTGRES
from app.logger import logger
router = Router()
@router.message(F.text == "\U0001f464 \u041f\u0440\u043e\u0444\u0438\u043b\u044c")
async def profile(message: Message, state: FSMContext):
await state.clear()
user_id = message.from_user.id
name = message.from_user.full_name or "\u0413\u043e\u0441\u0442\u044c"
if USE_POSTGRES:
user = await PostgresDB.get_user(user_id)
if not user:
logger.info("Auto-registering user {uid} in PG", uid=user_id)
await PostgresDB.set_user(user_id, name)
user = await PostgresDB.get_user(user_id)
user_name = user.get("name") or user.get("full_name", "\u0413\u043e\u0441\u0442\u044c")
else:
from app.db.memory import get_user, set_user
user = get_user(user_id)
if not user:
set_user(user_id, {"name": name})
user = get_user(user_id)
user_name = user.get("name", "\u0413\u043e\u0441\u0442\u044c")
await message.answer(f"\U0001f464 \u041f\u0440\u043e\u0444\u0438\u043b\u044c\n\n\U0001f464 \u0418\u043c\u044f: {user_name}")