1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00
Files
AdministrationItDepartmens/backend/app/bot.py
MoonTestUse1 e81df4c87e Initial commit
2024-12-23 19:27:44 +06:00

82 lines
3.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# from logging import getLogger
# from aiogram import Bot, Dispatcher, types
# from aiogram.filters import CommandStart
# from sqlalchemy.orm import Session
# from .database import get_db
# from .crud import requests
# from .utils.telegram import STATUS_LABELS, create_status_keyboard, format_request_message
# # Initialize logger
# logger = getLogger(__name__)
# # Initialize bot and dispatcher
# bot = Bot(token="7677506032:AAHEqNUr1lIUfNVbLwaWIaPeKKShsCyz3eo")
# dp = Dispatcher()
# @dp.callback_query(lambda c: c.data and c.data.startswith('status_'))
# async def process_status_update(callback: types.CallbackQuery):
# """Handle status update button clicks"""
# try:
# # Parse callback data using underscore as separator
# parts = callback.data.split('_')
# logger.info(f"Parsed callback parts: {parts}")
# if len(parts) < 3:
# logger.warning(f"Invalid callback data format: {parts}")
# return
# request_id = int(parts[1])
# # Handle 'in_progress' case where we have an extra underscore
# new_status = '_'.join(parts[2:]) if len(parts) > 3 else parts[2]
# logger.info(f"Processing status update: request_id={request_id}, new_status={new_status}")
# # Get database session
# db = next(get_db())
# try:
# # Update request status in database
# updated_request = requests.update_request_status(db, request_id, new_status)
# if not updated_request:
# logger.warning(f"Request not found: {request_id}")
# await callback.answer("Заявка не найдена", show_alert=True)
# return
# # Update message with new status
# new_message = format_request_message(updated_request)
# new_keyboard = create_status_keyboard(request_id, new_status)
# await callback.message.edit_text(
# text=new_message,
# parse_mode="HTML",
# reply_markup=new_keyboard
# )
# await callback.answer(f"Статус обновлен: {STATUS_LABELS[new_status]}")
# logger.info(f"Successfully updated request {request_id} to status {new_status}")
# except ValueError as e:
# logger.error(f"Value error while updating status: {e}")
# await callback.answer(str(e), show_alert=True)
# finally:
# db.close()
# except Exception as e:
# logger.error(f"Error processing callback: {e}", exc_info=True)
# await callback.answer("Произошла ошибка при обновлении статуса", show_alert=True)
# @dp.message(CommandStart())
# async def start_command(message: types.Message):
# """Handle /start command"""
# await message.answer(
# "👋 Привет! Я бот технической поддержки.\n"
# "Я буду отправлять уведомления о новых заявках и позволю менять их статус."
# )
# async def start_bot():
# """Start the bot"""
# try:
# await dp.start_polling(bot)
# finally:
# await bot.session.close()