Первый коммит

This commit is contained in:
admin
2025-08-30 07:39:44 +07:00
commit d0baf76f8f
86 changed files with 7362 additions and 0 deletions

56
main.py Normal file
View File

@@ -0,0 +1,56 @@
from asyncio import run
from bot import BotInfo, bot, dp, router
from bot.core import server
from bot.middlewares import setup_middlewares
from database import db
from configs import Webhook
from middleware.loggers import setup_logging, loggers
async def main() -> None:
"""
Входная точка проекта.
Настройка и запуск бота в режиме webhook или polling.
"""
try:
# Логирование
setup_logging()
# Cоздание базы данных
await db.init_db()
# Проверка соединения
if not await db.check_connection():
print("Не удалось подключиться к БД!")
return
await db.init_default_roles()
# Настройка информации о боте
await BotInfo.setup(bots=bot)
# Настройка middleware
setup_middlewares(
dp=dp,
bot=bot,
channel_ids=[] # пустой список каналов (можно добавить потом)
)
# Подключение маршрутов (роутеров)
dp.include_router(router)
# Выбор режима работы: webhook или polling
if Webhook.WEBHOOK:
loggers.info(f"Запуск бота @{BotInfo.username} в режиме вебхука...\n")
await server.serve()
else:
loggers.info(f"Бот @{BotInfo.username} запущен в режиме polling...\n")
await dp.start_polling(bot)
except Exception as e:
loggers.error(f"🔥 Критическая ошибка при запуске: {e}")
raise
if __name__ == "__main__":
run(main())