59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
# Aiogram
|
|
import aiogram.types as types
|
|
from aiogram.fsm.context import FSMContext
|
|
from aiogram.filters import CommandStart, StateFilter
|
|
from aiogram import Router, F
|
|
|
|
# Utils
|
|
from utils.text_tools import to_html
|
|
|
|
# Const
|
|
from create_bot import orm
|
|
|
|
# Keyboards
|
|
from keyboards.reply_keyboards import get_client_main_kb
|
|
|
|
# States
|
|
from states.client_states import MainStates
|
|
|
|
# Another
|
|
from datetime import datetime, timezone
|
|
|
|
|
|
# Init
|
|
start_router = Router()
|
|
|
|
|
|
@start_router.message(CommandStart(), StateFilter("*"))
|
|
async def cmd_start(message: types.Message, state: FSMContext):
|
|
|
|
if message.chat.type != "private":
|
|
return
|
|
|
|
user_id = message.from_user.id
|
|
username = (
|
|
"@" + message.from_user.username
|
|
if message.from_user.username is not None
|
|
else None
|
|
)
|
|
fullname = to_html(message.from_user.full_name)
|
|
|
|
await orm.create_user(
|
|
user_id=user_id,
|
|
username=username,
|
|
fullname=fullname,
|
|
register_date=datetime.now(timezone.utc),
|
|
)
|
|
|
|
msg_text = (
|
|
f"👋 Привет, {fullname}!\n\n"
|
|
"Я бот шаурмечной <b>Горыч</b>.\n"
|
|
"Подскажу по меню, доставке, режиму работы и помогу подобрать блюдо.\n\n"
|
|
"✨ Выберите популярный вопрос ниже или просто напишите свой."
|
|
)
|
|
|
|
await message.answer(text=msg_text, reply_markup=get_client_main_kb())
|
|
|
|
await state.update_data(rag_history=[])
|
|
await state.set_state(MainStates.main)
|