sigma / tools /navigation.py
Aktraiser
docstrings
fb84cc7
"""
🧭 Outils de navigation et d'information sur les fichiers Figma
"""
import json
from .config import figma_config, make_figma_request
def get_figma_file_info(file_id: str = "") -> str:
"""
Récupère les informations détaillées d'un fichier Figma.
Args:
file_id (str): ID du fichier Figma (optionnel, utilise la configuration par défaut si vide)
Returns:
str: Informations du fichier au format JSON ou message d'erreur
"""
file_id = file_id or figma_config["file_id"]
if not file_id:
return "❌ ID du fichier requis. Utilisez configure_figma_file_id() d'abord."
result = make_figma_request(f"files/{file_id}")
if "error" in result:
return f"❌ Erreur : {result['error']}"
file_info = {
"nom": result.get("name", ""),
"derniere_modification": result.get("lastModified", ""),
"version": result.get("version", ""),
"pages": [page.get("name", "") for page in result.get("document", {}).get("children", [])]
}
return f"📄 **Fichier Figma :**\n{json.dumps(file_info, indent=2, ensure_ascii=False)}"
def get_figma_comments(file_id: str = "") -> str:
"""
Récupère tous les commentaires d'un fichier Figma.
Args:
file_id (str): ID du fichier Figma (optionnel, utilise la configuration par défaut si vide)
Returns:
str: Liste des commentaires ou message d'erreur
"""
file_id = file_id or figma_config["file_id"]
if not file_id:
return "❌ ID du fichier requis"
result = make_figma_request(f"files/{file_id}/comments")
if "error" in result:
return f"❌ Erreur : {result['error']}"
comments = result.get("comments", [])
if not comments:
return "📝 Aucun commentaire trouvé dans ce fichier"
comment_list = []
for comment in comments[:10]: # Limiter à 10 commentaires
user = comment.get("user", {}).get("handle", "Anonyme")
message = comment.get("message", "")
created_at = comment.get("created_at", "")
comment_list.append(f"👤 {user} ({created_at}): {message}")
return f"📝 **Commentaires récents :**\n" + "\n\n".join(comment_list)
def get_figma_user_info() -> str:
"""
Récupère les informations de l'utilisateur connecté.
Returns:
str: Informations utilisateur au format JSON ou message d'erreur
"""
result = make_figma_request("me")
if "error" in result:
return f"❌ Erreur : {result['error']}"
user_info = {
"nom": result.get("handle", ""),
"email": result.get("email", ""),
"id": result.get("id", "")
}
return f"👤 **Utilisateur connecté :**\n{json.dumps(user_info, indent=2, ensure_ascii=False)}"