shopbot/bot/commands/command.py

47 lines
1.5 KiB
Python
Raw Permalink Normal View History

2024-12-24 18:08:03 +00:00
import logging
from aiogram import Router
2024-12-25 01:30:33 +00:00
from aiogram.filters import Command, CommandStart
2024-12-24 18:08:03 +00:00
from aiogram.types import Message
from aiogram_dialog import DialogManager, StartMode
2024-12-25 01:30:33 +00:00
from environs import Env
2024-12-24 18:08:03 +00:00
from sqlalchemy.exc import SQLAlchemyError
2024-12-25 01:30:33 +00:00
from shopbot.bot.database import register_user
from shopbot.bot.states import AdminSG, StartSG
2024-12-24 18:08:03 +00:00
router = Router()
env = Env()
env.read_env()
ADMIN_ID = env("ADMIN")
@router.message(CommandStart())
async def command_start_process(message: Message, dialog_manager: DialogManager):
try:
if not message.from_user or not message.from_user.id:
logging.warning("User id not found.")
return
user_id = message.from_user.id
username = message.from_user.username
2024-12-25 01:30:33 +00:00
await register_user(tg_id=user_id, username=username)
2024-12-24 18:08:03 +00:00
await dialog_manager.start(state=StartSG.start, mode=StartMode.RESET_STACK)
except SQLAlchemyError as e:
logging.error(f"Database error during user registration: {e}", exc_info=True)
except Exception as e:
logging.error(f"An unexpected error occurred: {e}", exc_info=True)
2024-12-25 01:30:33 +00:00
2024-12-24 18:08:03 +00:00
@router.message(Command("admin_panel"))
async def command_admin_panel(message: Message, dialog_manager: DialogManager):
if not message.from_user or not message.from_user.id:
logging.warning("User id not found.")
return
if str(message.from_user.id) == ADMIN_ID:
await dialog_manager.start(state=AdminSG.panel)
else:
2024-12-25 01:30:33 +00:00
logging.warning(f"User with tg_id {message.from_user.id} is not admin")