"""
Инструменты для работы с узлами n8n.
"""
from typing import Dict, List, Any
def list_node_categories() -> List[Dict[str, Any]]:
"""
Возвращает список категорий доступных узлов n8n.
Returns:
List[Dict[str, Any]]: Список категорий с информацией о количестве узлов.
"""
try:
from nodes_module import get_node_categories
return get_node_categories()
except Exception as e:
raise Exception(f"Ошибка получения категорий узлов: {str(e)}")
def get_nodes_by_category(category_id: str) -> List[Dict[str, Any]]:
"""
Возвращает список узлов для указанной категории.
Args:
category_id: ID категории узлов
Returns:
List[Dict[str, Any]]: Список узлов в категории.
"""
try:
from nodes_module import get_nodes_by_category
return list(get_nodes_by_category(category_id))
except Exception as e:
raise Exception(f"Ошибка получения узлов категории '{category_id}': {str(e)}")
def get_node_info(node_type: str) -> Dict[str, Any]:
"""
Возвращает подробную информацию об узле по его типу.
Args:
node_type: Тип узла (например, "n8n-nodes-base.set")
Returns:
Dict[str, Any]: Информация об узле.
"""
try:
from nodes_module import get_node_by_type
return get_node_by_type(node_type)
except Exception as e:
raise Exception(f"Ошибка получения информации об узле '{node_type}': {str(e)}")
def search_nodes(query: str) -> List[Dict[str, Any]]:
"""
Поиск узлов по названию или описанию.
Args:
query: Поисковый запрос
Returns:
List[Dict[str, Any]]: Список найденных узлов.
"""
try:
from nodes_module import search_nodes
return search_nodes(query)
except Exception as e:
raise Exception(f"Ошибка поиска узлов по запросу '{query}': {str(e)}")