diff --git a/backend/app/bot.py b/backend/app/bot.py index 501b26e..8cdea92 100644 --- a/backend/app/bot.py +++ b/backend/app/bot.py @@ -1,13 +1,19 @@ from aiogram import Bot, Dispatcher, types from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton +from aiogram.filters import Command from sqlalchemy.orm import Session from ..database import get_db from .. import models -# Создаем обработчик нажатия кнопки -@dp.callback_query_handler(lambda c: c.data.startswith('status_')) +# Создаем роутер для обработки callback'ов +from aiogram import Router +router = Router() + +# Обработчик нажатия кнопки +@router.callback_query(lambda c: c.data.startswith('status_')) async def process_status_button(callback_query: types.CallbackQuery): try: + print(f"Hello world: {callback_query.data}") # Получаем ID заявки и новый статус из callback_data _, request_id, new_status = callback_query.data.split('_') request_id = int(request_id) @@ -37,18 +43,26 @@ async def process_status_button(callback_query: types.CallbackQuery): await callback_query.answer("Произошла ошибка при обновлении статуса", show_alert=True) def get_updated_keyboard(request_id: int, current_status: str) -> InlineKeyboardMarkup: - keyboard = InlineKeyboardMarkup() + keyboard = InlineKeyboardMarkup(inline_keyboard=[]) if current_status != "in_progress": - keyboard.add(InlineKeyboardButton( - "В работе", - callback_data=f"status_{request_id}_in_progress" - )) + keyboard.inline_keyboard.append([ + InlineKeyboardButton( + text="В работе", + callback_data=f"status_{request_id}_in_progress" + ) + ]) if current_status != "completed": - keyboard.add(InlineKeyboardButton( - "Завершено", - callback_data=f"status_{request_id}_completed" - )) + keyboard.inline_keyboard.append([ + InlineKeyboardButton( + text="Завершено", + callback_data=f"status_{request_id}_completed" + ) + ]) - return keyboard \ No newline at end of file + return keyboard + +# В основном файле бота (где создается диспетчер) +dp = Dispatcher() +dp.include_router(router) \ No newline at end of file diff --git a/backend/app/bot/__init__.py b/backend/app/bot/__init__.py index 1d1b0fd..40dcf64 100644 --- a/backend/app/bot/__init__.py +++ b/backend/app/bot/__init__.py @@ -1 +1,11 @@ -from .bot import dp, start_bot +from aiogram import Bot, Dispatcher +from .config import BOT_TOKEN + +bot = Bot(token="7677506032:AAHduD5EePz3bE23DKlo35KoOp2_9lZuS34") +dp = Dispatcher() + +async def start_bot(): + # Импортируем здесь, чтобы избежать циклических импортов + from .bot import router + dp.include_router(router) + await dp.start_polling(bot, skip_updates=True) \ No newline at end of file