from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton from app.bot.keyboards.groups import create_groups_keyboard from app.bot.keyboards.main_menu import get_main_menu from app.bot.utils.tg_formatter import format_trigger_for_tg from app.bot.utils.zabbix_alt import ( get_region_groups, get_all_groups_for_region, fetch_triggers_data) 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 = create_groups_keyboard(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_triggers_data(group_id) if not triggers: bot.send_message(chat_id, "Нет активных событий.") return for trigger in triggers: text, url = format_trigger_for_tg(trigger) markup = InlineKeyboardMarkup() markup.add(InlineKeyboardButton(text="Открыть график", url=url)) bot.send_message(chat_id, text, reply_markup=markup, parse_mode="HTML") 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_triggers_data(group['groupid']) if triggers: all_triggers.extend(triggers) except Exception: continue if not all_triggers: bot.send_message(chat_id, "Нет активных событий.") return for trigger in all_triggers: text, url = format_trigger_for_tg(trigger) markup = InlineKeyboardMarkup() markup.add(InlineKeyboardButton(text="Открыть график", url=url)) bot.send_message(chat_id, text, reply_markup=markup, parse_mode="HTML") except Exception as e: bot.send_message(chat_id, f"Ошибка при получении данных: {str(e)}")