Files
Roblox-Buyer/main.py
T
2026-07-20 08:58:10 +05:00

55 lines
1.6 KiB
Python

import asyncio
import logging
from datetime import datetime
from aiogram import Bot, Dispatcher
from aiogram.enums import ParseMode
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.client.default import DefaultBotProperties
from config import ADMIN_ID, BOT_TOKEN, LOG_BOT_TOKEN, SHOP_NAME
from db.storage import load_config, load_stats
from handlers import admin, start, upload, user
from runtime import set_bots
from utils.logging import log_admin
async def main() -> None:
defaults = DefaultBotProperties(parse_mode=ParseMode.HTML)
bot = Bot(token=BOT_TOKEN, default=defaults)
log_bot = Bot(token=LOG_BOT_TOKEN, default=defaults) if LOG_BOT_TOKEN else None
set_bots(bot, log_bot)
dispatcher = Dispatcher(storage=MemoryStorage())
dispatcher.include_router(start.router)
dispatcher.include_router(user.router)
dispatcher.include_router(admin.router)
dispatcher.include_router(upload.router)
load_config()
load_stats()
await log_admin(
bot,
ADMIN_ID,
f"🟢 <b>{SHOP_NAME}</b> запущен\n{datetime.now().strftime('%d.%m.%Y %H:%M:%S')}",
log_bot,
)
try:
await dispatcher.start_polling(bot)
finally:
if log_bot:
await log_bot.session.close()
await bot.session.close()
if __name__ == "__main__":
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s",
handlers=[
logging.FileHandler("bot.log", encoding="utf-8"),
logging.StreamHandler(),
],
)
asyncio.run(main())