add user_hello dialog
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,4 @@
|
||||
__pycache__/*
|
||||
__pycache__
|
||||
.venv
|
||||
.env
|
||||
*.db
|
||||
24
app/bot.py
24
app/bot.py
@@ -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
6
app/dialogs/__init__.py
Normal 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)
|
||||
@@ -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
6
app/handlers/__init__.py
Normal 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)
|
||||
12
app/handlers/user_handlers.py
Normal file
12
app/handlers/user_handlers.py
Normal 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
8
app/utils/getters.py
Normal 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
6
uv.lock
generated
@@ -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]]
|
||||
|
||||
Reference in New Issue
Block a user