| """ |
| 🧭 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]: |
| 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)}" |