qrkodbot / bot.py
ibrohm's picture
Upload folder using huggingface_hub
833e15d verified
"""
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())