"""App launcher"""
import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from app.core.handlers.pick_colour import register_colour
from app.core.handlers.admin_console import register_admin
from app.core.handlers.meta import register_meta
from app.core.handlers.debugging import register_debugging
from app.core.handlers.user_settings import register_settings
from app.settings import config as _config
async def main() -> None:
"""Starts app & polling."""
# Настройка логирования в stdout
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(levelname)s - %(name)s - %(message)s"
)
# Парсинг файла конфигурации
# config = load_config("config/bot.ini")
config: _config.Config = _config.load_config()
bot = Bot(config.bot.token)
# Объявление и инициализация объектов бота и диспетчера
dp = Dispatcher(bot, storage=MemoryStorage())
# Регистрация хэндлеров
register_meta(dp)
register_colour(dp)
register_admin(dp)
register_debugging(dp)
register_settings(dp)
# Установка команд бота
# await set_commands(bot)
# Запуск поллинга
await dp.skip_updates()
await dp.start_polling()
if __name__ == "__main__":
try:
asyncio.run(main())
except (KeyboardInterrupt, SystemExit):
# Log this is pointless
pass