
Uzun süredir backlog'umuzda bir görev vardı - kişisel hesapta ve kazanma sayfasında kullanıcıların, grupların ve kanalların avatar resimlerini göstermek. Küçük bir şey gibi görünüyor, ama gözüme hep batan bir ayrıntıydı.
Muhtemelen Telegram'ın standart avatarlarını biliyorsunuzdur - güzel bir gradyan arka plan üzerinde ismin ilk harfi. Ancak bunları API üzerinden sorguladığınızda yanıt olarak null gelir. Telegram bunları sunucularında saklamaz, istemci uygulaması kendisi çizer.
Bu yüzden uzun zaman önce kendi basit yedeklerimizi yaptık ve onlarla yaşadık. Ama bu beni hep rahatsız etti - Telegram gibi görünmüyordu, yani güzel değildi). Dün sonunda nasıl çalıştığını anladım - henüz uygulamayı yapmadık, ama en azından ne yapacağımız belli oldu.
Kanalda TMA geliştiricileri olduğunu biliyorum - bu ipucu size zaman kazandırabilir.
Telegram'ın kaynak kodu açık ve içinde ihtiyacınız olan her şey adeta sabit kodlanmış: 7 gradyan ve bir formül:
color_index = abs(peer_id) % 7
peer_id'yi al, 7'ye böl, kalanı al - 0'dan 6'ya bir renk indeksi elde edersin:
0 - 🔴 kırmızı-pembe
1 - 🟠 turuncu-sarı
2 - 🟣 mor-mavi
3 - 🟢 yeşil
4 - 🩵 turkuaz
5 - 🔵 mavi
6 - 🩷 mor-pembe
Bir başka nüans: süpergruplar/kanallar için Bot API, chat_id'yi -100 önekiyle verir, ancak renk gerçek peer_id'den hesaplanmalıdır. Aksi takdirde renk, kullanıcının uygulamada gördüğüyle aynı olmaz.
〰️〰️〰️
Avatarınız yoksa yorumlarda belirtin 😄
Yorumlar
0Henüz yorum yok.