35 lines
1.3 KiB
Python
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}")
|