File size: 2,823 Bytes
a4d9764
 
 
 
 
 
 
fb84cc7
 
 
 
 
 
 
 
 
a4d9764
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb84cc7
 
 
 
 
 
 
 
 
a4d9764
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb84cc7
 
 
 
 
 
a4d9764
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
"""
🧭 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)}"