from telebot import types from app.bot.keyboards.main_menu import get_main_menu from app.bot.utils.zabbix import get_region_groups, get_all_groups_for_region, fetch_filtered_triggers from app.bot.utils.tg_formatter import format_trigger_message # ⬅️ добавлено def process_region_selection(bot,chat_id, region_id): try: groups = get_region_groups(region_id) if not groups: return bot.send_message(chat_id, "Нет групп хостов для этого региона.") markup = types.InlineKeyboardMarkup() for group in groups: markup.add(types.InlineKeyboardButton(text=group['name'], callback_data=f"group_{group['groupid']}")) markup.add(types.InlineKeyboardButton(text="Все группы региона\n(Долгое выполнение)", callback_data=f"all_groups_{region_id}")) bot.send_message(chat_id, "Выберите группу хостов:", reply_markup=markup) except Exception as e: bot.send_message(chat_id, f"Ошибка при получении групп: {str(e)}", reply_markup=get_main_menu()) def process_group_selection(bot, chat_id, group_id): try: triggers = fetch_filtered_triggers(group_id) if not triggers: bot.send_message(chat_id, "Нет активных событий.") else: send_trigger_messages(chat_id, triggers) except Exception as e: bot.send_message(chat_id, f"Ошибка при получении событий: {str(e)}") def process_all_groups_request(bot, chat_id, region_id): try: all_triggers = [] groups = get_all_groups_for_region(region_id) for group in groups: try: triggers = fetch_filtered_triggers(group['groupid']) if triggers: all_triggers.extend(triggers) except Exception: continue if all_triggers: send_trigger_messages(chat_id, all_triggers) else: bot.send_message(chat_id, "Нет активных событий.") except Exception as e: bot.send_message(chat_id, f"Ошибка при получении данных: {str(e)}") def send_trigger_messages(chat_id, triggers): for trigger in triggers: text = format_trigger_message(trigger) bot.send_message(chat_id, text, parse_mode="MarkdownV2")