""" QR Code Generator Telegram Bot Asosiy ishga tushirish fayli """ import asyncio import logging import sys from aiogram import Bot, Dispatcher from aiogram.fsm.storage.memory import MemoryStorage from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode from config import BOT_TOKEN from services.db import init_db # Handlerlar from handlers import start, generate, read_qr, settings, batch, history, inline, admin async def main(): """Botni ishga tushirish""" # Logging sozlash logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", stream=sys.stdout, ) logger = logging.getLogger(__name__) # Database yaratish await init_db() logger.info("[OK] Database tayyor") # Bot va Dispatcher bot = Bot( token=BOT_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML), ) dp = Dispatcher(storage=MemoryStorage()) dp.include_router(admin.router) dp.include_router(start.router) dp.include_router(generate.router) dp.include_router(settings.router) dp.include_router(batch.router) dp.include_router(history.router) dp.include_router(inline.router) dp.include_router(read_qr.router) # Oxirida — rasm handler boshqalarga xalaqit bermasligi uchun logger.info("[Start] Bot ishga tushmoqda...") # Eski xabarlarni o'tkazib yuborish await bot.delete_webhook(drop_pending_updates=True) # Polling boshlash try: await dp.start_polling(bot) finally: await bot.session.close() if __name__ == "__main__": asyncio.run(main())