upd get_callable_str async
This commit is contained in:
@@ -8,6 +8,7 @@ from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
from ...main import QBotApp
|
||||
from ...model.settings import Settings
|
||||
from ...model.language import LanguageBase
|
||||
from ...model.user import UserBase
|
||||
from ...utils.main import clear_state
|
||||
|
||||
|
||||
@@ -16,9 +17,24 @@ router = Router()
|
||||
|
||||
|
||||
@router.message(CommandStart())
|
||||
async def start(
|
||||
message: Message, db_session: AsyncSession, app: QBotApp, state: FSMContext
|
||||
):
|
||||
async def start(message: Message, **kwargs):
|
||||
app: QBotApp = kwargs["app"]
|
||||
|
||||
if app.start_handler:
|
||||
await app.start_handler(
|
||||
default_start_handler, message, **kwargs
|
||||
)
|
||||
else:
|
||||
await default_start_handler(message, **kwargs)
|
||||
|
||||
|
||||
async def default_start_handler[UserType: UserBase](
|
||||
message: Message,
|
||||
db_session: AsyncSession,
|
||||
app: QBotApp,
|
||||
state: FSMContext,
|
||||
**kwargs,
|
||||
) -> tuple[UserType, bool]:
|
||||
state_data = await state.get_data()
|
||||
clear_state(state_data=state_data, clear_nav=True)
|
||||
|
||||
@@ -27,6 +43,7 @@ async def start(
|
||||
user = await User.get(session=db_session, id=message.from_user.id)
|
||||
|
||||
if not user:
|
||||
is_new = True
|
||||
msg_text = (await Settings.get(Settings.APP_STRINGS_WELCOME_P_NAME)).format(
|
||||
name=message.from_user.full_name
|
||||
)
|
||||
@@ -61,6 +78,7 @@ async def start(
|
||||
return
|
||||
|
||||
else:
|
||||
is_new = False
|
||||
if user.is_active:
|
||||
msg_text = (
|
||||
await Settings.get(Settings.APP_STRINGS_GREETING_P_NAME)
|
||||
@@ -71,3 +89,5 @@ async def start(
|
||||
).format(name=user.name)
|
||||
|
||||
await message.answer(msg_text)
|
||||
|
||||
return user, is_new
|
||||
|
||||
Reference in New Issue
Block a user