add user_hello dialog
This commit is contained in:
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}
|
||||
Reference in New Issue
Block a user