add user_hello dialog

This commit is contained in:
2025-09-23 14:19:50 +03:00
parent 656c8ac2c4
commit f043d5a0a7
8 changed files with 82 additions and 4 deletions

2
.gitignore vendored
View File

@@ -1,4 +1,4 @@
__pycache__/*
__pycache__
.venv
.env
*.db

View File

@@ -0,0 +1,24 @@
import asyncio
from aiogram import Bot, Dispatcher
from aiogram_dialog import setup_dialogs
from bestconfig import Config
from app.dialogs import dialogs_router
from app.handlers import handlers_router
cfg = Config()
bot = Bot(token=cfg.get("bot_token"))
dp = Dispatcher()
async def main():
dp.include_router(handlers_router)
dp.include_router(dialogs_router)
setup_dialogs(dp)
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())

6
app/dialogs/__init__.py Normal file
View File

@@ -0,0 +1,6 @@
from aiogram import Router
from .user_dialog import router as user_router
dialogs_router = Router(name="dialogs")
dialogs_router.include_router(user_router)

View File

@@ -0,0 +1,22 @@
from aiogram import Router
from aiogram.fsm.state import State, StatesGroup
from aiogram_dialog import Dialog, DialogManager, StartMode, Window
from aiogram_dialog.widgets.text import Format
from app.utils.getters import username_getter
class StartSG(StatesGroup):
start = State()
start_dialog = Dialog(
Window(
Format("Hello, {username}"),
getter=username_getter,
state=StartSG.start
)
)
router = Router(name="user_dialogs")
router.include_router(start_dialog)

6
app/handlers/__init__.py Normal file
View File

@@ -0,0 +1,6 @@
from aiogram import Router
from .user_handlers import router as user_router
handlers_router = Router(name="handlers")
handlers_router.include_router(user_router)

View File

@@ -0,0 +1,12 @@
from aiogram import Router
from aiogram.filters import CommandStart
from aiogram.types import Message
from aiogram_dialog import DialogManager
from app.dialogs.user_dialog import StartSG
router = Router(name="user_handlers")
@router.message(CommandStart())
async def command_start_process(message: Message, dialog_manager: DialogManager):
await dialog_manager.start(state=StartSG.start)

8
app/utils/getters.py Normal file
View File

@@ -0,0 +1,8 @@
from aiogram.types import User
from aiogram_dialog import DialogManager
async def username_getter(
dialog_manager: DialogManager, event_from_user: User, **kwargs
):
return {"username": event_from_user.username}

6
uv.lock generated
View File

@@ -459,7 +459,7 @@ wheels = [
[[package]]
name = "pydantic"
version = "2.11.7"
version = "2.11.9"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "annotated-types" },
@@ -467,9 +467,9 @@ dependencies = [
{ name = "typing-extensions" },
{ name = "typing-inspection" },
]
sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350, upload-time = "2025-06-14T08:33:17.137Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ff/5d/09a551ba512d7ca404d785072700d3f6727a02f6f3c24ecfd081c7cf0aa8/pydantic-2.11.9.tar.gz", hash = "sha256:6b8ffda597a14812a7975c90b82a8a2e777d9257aba3453f973acd3c032a18e2", size = 788495, upload-time = "2025-09-13T11:26:39.325Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782, upload-time = "2025-06-14T08:33:14.905Z" },
{ url = "https://files.pythonhosted.org/packages/3e/d3/108f2006987c58e76691d5ae5d200dd3e0f532cb4e5fa3560751c3a1feba/pydantic-2.11.9-py3-none-any.whl", hash = "sha256:c42dd626f5cfc1c6950ce6205ea58c93efa406da65f479dcb4029d5934857da2", size = 444855, upload-time = "2025-09-13T11:26:36.909Z" },
]
[[package]]