Reworked the logic for retrieving data from Zabbix API to make it more efficient and filter-aware. Message generation for Telegram bot was refactored and decoupled from data retrieval logic to improve structure, readability, and reuse. Signed-off-by: UdoChudo <stream@udochudo.ru>
24 lines
1.0 KiB
Python
24 lines
1.0 KiB
Python
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton
|
||
|
||
def create_groups_keyboard(groups, region_id):
|
||
"""
|
||
Формирует InlineKeyboardMarkup для выбора группы хостов.
|
||
|
||
:param groups: список словарей с группами, у каждой есть 'name' и 'groupid'
|
||
:param region_id: id региона, нужен для callback_data кнопки "Все группы региона"
|
||
:return: telebot.types.InlineKeyboardMarkup
|
||
"""
|
||
markup = InlineKeyboardMarkup()
|
||
for group in groups:
|
||
markup.add(InlineKeyboardButton(
|
||
text=group['name'],
|
||
callback_data=f"group_{group['groupid']}"
|
||
))
|
||
markup.add(InlineKeyboardButton(
|
||
text="Все группы региона\n(Долгое выполнение)",
|
||
callback_data=f"all_groups_{region_id}"
|
||
))
|
||
cancel_button = InlineKeyboardButton("Отмена", callback_data="cancel_input")
|
||
markup.add(cancel_button)
|
||
return markup
|