|
13 | 13 | from aiogram import Bot, Dispatcher, F, Router |
14 | 14 | from aiogram.client.default import DefaultBotProperties |
15 | 15 | from aiogram.enums import ParseMode |
16 | | -from aiogram.types import CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup, Message |
| 16 | +from aiogram.types import ( |
| 17 | + CallbackQuery, |
| 18 | + InlineKeyboardButton, |
| 19 | + InlineKeyboardMarkup, |
| 20 | + Message, |
| 21 | +) |
17 | 22 |
|
18 | 23 | from src.agent import DevOpsAgent |
19 | 24 | from src.config import settings |
@@ -308,7 +313,9 @@ async def _handle_health(self, message: Message) -> None: |
308 | 313 | # Use agent to check health via SSH |
309 | 314 | result = await self._agent.run( |
310 | 315 | user_id=user_id, |
311 | | - query="Покажи состояние системы: CPU, память, диск (df -h, free -m, uptime)", |
| 316 | + query=( |
| 317 | + "Покажи состояние системы: CPU, память, диск (df -h, free -m, uptime)" |
| 318 | + ), |
312 | 319 | model=model_id, |
313 | 320 | ) |
314 | 321 |
|
@@ -348,7 +355,10 @@ async def _handle_logs(self, message: Message) -> None: |
348 | 355 | # Use agent to read logs via SSH |
349 | 356 | result = await self._agent.run( |
350 | 357 | user_id=user_id, |
351 | | - query=f"Покажи последние 50 строк логов сервиса {service} (journalctl -u {service} -n 50)", |
| 358 | + query=( |
| 359 | + f"Покажи последние 50 строк логов сервиса {service}" |
| 360 | + f" (journalctl -u {service} -n 50)" |
| 361 | + ), |
352 | 362 | model=model_id, |
353 | 363 | ) |
354 | 364 |
|
@@ -446,10 +456,13 @@ async def _handle_model(self, message: Message) -> None: |
446 | 456 |
|
447 | 457 | # Build inline keyboard |
448 | 458 | buttons = [] |
449 | | - for key, (model_id, name) in MODELS.items(): |
| 459 | + for key, (_model_id, name) in MODELS.items(): |
450 | 460 | marker = " ✓" if key == current_key else "" |
451 | 461 | buttons.append( |
452 | | - InlineKeyboardButton(text=f"{name}{marker}", callback_data=f"model:{key}") |
| 462 | + InlineKeyboardButton( |
| 463 | + text=f"{name}{marker}", |
| 464 | + callback_data=f"model:{key}", |
| 465 | + ) |
453 | 466 | ) |
454 | 467 |
|
455 | 468 | keyboard = InlineKeyboardMarkup(inline_keyboard=[buttons]) |
@@ -487,18 +500,22 @@ async def _handle_model_callback(self, callback: CallbackQuery) -> None: |
487 | 500 |
|
488 | 501 | # Update keyboard with new selection |
489 | 502 | buttons = [] |
490 | | - for key, (model_id, name) in MODELS.items(): |
| 503 | + for key, (_model_id, name) in MODELS.items(): |
491 | 504 | marker = " ✓" if key == model_key else "" |
492 | 505 | buttons.append( |
493 | | - InlineKeyboardButton(text=f"{name}{marker}", callback_data=f"model:{key}") |
| 506 | + InlineKeyboardButton( |
| 507 | + text=f"{name}{marker}", |
| 508 | + callback_data=f"model:{key}", |
| 509 | + ) |
494 | 510 | ) |
495 | 511 |
|
496 | 512 | keyboard = InlineKeyboardMarkup(inline_keyboard=[buttons]) |
497 | 513 |
|
498 | | - await callback.message.edit_text( |
499 | | - f"<b>Выбор модели Claude</b>\n\nТекущая: {model_name}", |
500 | | - reply_markup=keyboard, |
501 | | - ) |
| 514 | + if callback.message and hasattr(callback.message, "edit_text"): |
| 515 | + await callback.message.edit_text( |
| 516 | + f"<b>Выбор модели Claude</b>\n\nТекущая: {model_name}", |
| 517 | + reply_markup=keyboard, |
| 518 | + ) |
502 | 519 | await callback.answer(f"Модель: {model_name}") |
503 | 520 |
|
504 | 521 | async def _handle_message(self, message: Message) -> None: |
|
0 commit comments