
Di backlog kami sudah lama ada tugas - menampilkan avatar pengguna, grup, dan saluran di akun pribadi dan di halaman kemenangan. Kedengarannya sepele, tetapi hal sepele yang selalu mengganggu mata saya.
Anda pasti tahu avatar standar Telegram ini - huruf pertama nama dengan latar belakang gradien yang indah. Namun saat Anda memintanya melalui API - yang dikembalikan adalah null. Telegram tidak menyimpannya di server, aplikasi klien menggambarnya sendiri.
Karena itu, kami sudah lama membuat placeholder sederhana sendiri dan hidup dengannya. Tapi ini selalu mengganggu saya - tidak terlihat seperti Telegram, jadi tidak cantik). Kemarin akhirnya saya paham cara kerjanya - implementasinya belum kami buat, tapi setidaknya sudah jelas apa yang harus dilakukan.
Saya tahu di saluran ini ada pembangun TMA - petunjuk ini bisa menghemat waktu Anda.
Telegram memiliki kode sumber terbuka dan di dalamnya semua yang diperlukan sudah di-hardcode: 7 gradien dan satu rumus:
color_index = abs(peer_id) % 7
Ambil peer_id, bagi dengan 7, ambil sisanya - Anda mendapatkan indeks warna dari 0 hingga 6:
0 - 🔴 merah-merah muda
1 - 🟠 oranye-kuning
2 - 🟣 ungu-biru
3 - 🟢 hijau
4 - 🩵 pirus
5 - 🔵 biru
6 - 🩷 ungu-merah muda
Satu nuansa lagi: untuk supergrup/saluran, Bot API mengembalikan chat_id dengan awalan -100, tetapi warna harus dihitung dari peer_id asli tanpa awalan tersebut. Tanpa ini, warnanya tidak akan sama dengan yang dilihat pengguna di aplikasi.
〰️〰️〰️
Jika Anda tidak memiliki avatar - tandai di komentar 😄
Comments
0No comments yet.
Sign in to join the discussion.