Spaces:
Sleeping
Sleeping
| from aiogram import Bot, Dispatcher | |
| from aiogram.enums import ParseMode | |
| from aiogram.client.default import DefaultBotProperties | |
| from aiogram.types import Update | |
| from aiogram.filters import Command | |
| from aiogram.types import WebAppInfo, InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardMarkup, KeyboardButton | |
| from aiohttp import web | |
| from config import config | |
| from database import connect_db, close_db | |
| from handlers import user, admin | |
| WEBHOOK_HOST = "https://ibrohm-textilestore.hf.space" | |
| WEBHOOK_PATH = "/webhook" | |
| WEBAPP_URL = "https://ibrohm-textile-shop.hf.space" | |
| bot = Bot( | |
| token=config.BOT_TOKEN, | |
| default=DefaultBotProperties(parse_mode=ParseMode.HTML) | |
| ) | |
| dp = Dispatcher() | |
| dp.include_routers(user.router, admin.router) | |
| async def on_startup(): | |
| await connect_db() | |
| await bot.set_webhook(f"{WEBHOOK_HOST}{WEBHOOK_PATH}") | |
| async def on_shutdown(): | |
| await bot.delete_webhook() | |
| await close_db() | |
| async def handle_update(request): | |
| try: | |
| data = await request.json() | |
| update = Update.model_validate(data) | |
| await dp.feed_update(bot, update) | |
| return web.Response(text="ok") | |
| except Exception as e: | |
| print(f"Update error: {e}") | |
| return web.Response(text="error") | |
| async def health_check(request): | |
| return web.Response(text="ok") | |
| if __name__ == "__main__": | |
| dp.startup.register(on_startup) | |
| dp.shutdown.register(on_shutdown) | |
| app = web.Application() | |
| app.router.add_post(WEBHOOK_PATH, handle_update) | |
| app.router.add_get("/", health_check) | |
| web.run_app(app, host="0.0.0.0", port=7860) | |