Files
Travel-Agent/app/bot.py
T

49 lines
1.2 KiB
Python

__all__ = ("main",)
from typing import Optional
from aiogram import Bot, Dispatcher
from aiogram.enums import ParseMode
from aiogram.fsm.storage.redis import RedisStorage
from app.callbacks import menu, profile, travels
from app.config import Config
from app.handlers import (
create_travel_command,
help_command,
menu_command,
profile_command,
start_command,
travels_command,
)
from app.middlewares.throttling import ThrottlingMiddleware
async def main() -> None:
bot_token: Optional[str] = Config.BOT_TOKEN
if bot_token is None:
exit("BOT_TOKEN is not set")
storage = RedisStorage.from_url(Config.REDIS_URL)
dp = Dispatcher(storage=storage)
bot = Bot(bot_token, parse_mode=ParseMode.HTML)
dp.message.middleware(ThrottlingMiddleware(0.5))
dp.include_routers(
start_command.router,
help_command.router,
menu_command.router,
profile_command.router,
create_travel_command.router,
travels_command.router,
menu.router, # type: ignore
profile.router, # type: ignore
travels.router, # type: ignore
)
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot)