
Nous avions depuis longtemps une tâche dans notre backlog : afficher les avatars des utilisateurs, des groupes et des canaux dans le compte personnel et sur la page de victoire. Cela peut sembler un détail, mais c'est un détail qui m'a toujours dérangé.
Vous connaissez sûrement ces avatars Telegram standard - la première lettre du nom sur un joli fond dégradé. Mais lorsque vous les demandez via l'API, la réponse est null. Telegram ne les stocke tout simplement pas sur ses serveurs, l'application cliente les dessine elle-même.
C'est pourquoi nous avons depuis longtemps créé nos propres placeholders simples et nous avons vécu avec. Mais cela m'a toujours préoccupé - cela ne ressemblait pas à Telegram, donc ce n'était pas beau). Hier, j'ai enfin compris comment cela fonctionne - nous n'avons pas encore implémenté la solution, mais au moins nous savons quoi faire.
Je sais qu'il y a des builders de TMA sur la chaîne - cette astuce peut vous faire gagner du temps.
Telegram a un code source ouvert et tout ce dont vous avez besoin est littéralement codé en dur : 7 dégradés et une formule :
color_index = abs(peer_id) % 7
Prenez le peer_id, divisez-le par 7, prenez le reste - vous obtenez l'indice de couleur de 0 à 6 :
0 - 🔴 rouge-rose
1 - 🟠 orange-jaune
2 - 🟣 violet-bleu
3 - 🟢 vert
4 - 🩵 turquoise
5 - 🔵 bleu
6 - 🩷 violet-rose
Autre nuance : pour les supergroupes/canaux, l'API Bot renvoie le chat_id avec le préfixe -100, mais la couleur doit être calculée à partir du vrai peer_id sans ce préfixe. Sinon, la couleur ne sera pas celle que l'utilisateur voit dans l'application.
〰️〰️〰️
Si vous n'avez pas d'avatar, signalez-vous dans les commentaires 😄
Commentaires
0Aucun commentaire pour le moment.
Connectez-vous pour participer à la discussion.