15-oktabrdagi Telegram for macOS 13.0.283318 beta versiyasida yangi tabning klienti paydo bo'ldi: Telegram foydalanuvchi qiziqishlariga ko'ra tanlab oladigan «For you» nomli kanallardagi postlar lentasi va ikkinchi lenta — foydalanuvchi allaqachon obuna bo'lgan kanallardan. Xuddi shu versiyada Telegram hamyon kartasiga kolleksion sovg'alardan stikerlarni yopishtirish mumkin bo'lgan ekran ham jamlangan. Hozircha ikkalasidan ham foydalanib bo'lmaydi: ikkala funksiyani ham server yoqadi, ochiq API sxemasida esa kerakli metodlar mavjud emas.
15-oktabrdagi versiyada nimalar paydo bo'ldi
macOS beta versiyasi mac-updates.telegram.org yangilanishlar fidi orqali tarqatiladi, har bir versiya — ilovaga ega oddiy zip fayl. 11-oktabrdagi 13.0.283309 versiyada na lenta, na kartadagi stikerlar mavjud emas. 15-oktabrdagi 13.0.283318 versiyada esa ikkala to'plam ham birdaniga paydo bo'ladi: NewsUI interfeys moduli, TelegramEngine/Feed papkasidagi uchta yadro fayli va yangi API turlarining tavsiflari.
Telegram for macOS uchun klientning yadrosi — TelegramCore — iOS bilan umumiy: u iPhone ilovasi manba kodlaridan ulanadi. Telegram-iOS ochiq repozitoriyasida TelegramEngine/Feed papkasi hozircha yo'q, macOS uchun ochiq klientda esa NewsUI moduli mavjud emas. Lenta kodi faqat kompilyatsiya qilingan beta versiyada mavjud.
«For you» lentasi qanday ishlaydi
Modul bir vaqtning o'zida ikkita lentani boshqaradi. Birinchisi, forYouFeed, — server tomonidan tuzilgan tanlov. Ikkinchisi, kodda addedFeed deb nomlangan, — foydalanuvchi obuna bo'lgan kanallardagi postlar bo'lib, bo'sh holatda «Posts from your channels appear here» yozuvi ko'rinadi. Har birining o'z ro'yxati va o'z skrolli bor, ular ekran yuqorisidagi segmentlar orqali almashtiriladi.
Tanlov «What are you interested in?» savoli va bir qator qiziqish chiplari bilan boshlanadi, har birida — emodzi mavjud. Klient qiziqishlar ro'yxatini saqlamaydi: u uni interestCategories turi orqali serverdan so'raydi va keshlaydi — bu turda interestCategoriesNotModified varianti mavjud bo'lib, server "ro'yxat o'zgarmadi" deb javob beradi. Tanlangan qiziqishni klient qaytarib yuboradi va «Got it! More of this in For you» tasdiqlashini ko'rsatadi.
Qolganlari har qanday lentadan tanish. Postlar pastga sahifalar bo'ylab yuklanadi va pull-to-refresh harakati bilan yangilanadi; ro'yxat ustida yangi postlar plashkasi paydo bo'ladi; bo'sh tanlovda «No posts for you yet» yozuvi, xatolikda esa «Couldn't load posts» yozuvi turadi. «Mark All as Read» tugmasi mavjud: o'qilganlarni lenta serverda belgilaydi, server esa klientga updateReadFeed yangilanishini yuboradi — shunday qilib, o'qilganlik belgisi chatlarning o'qilganligi kabi akkauntning barcha qurilmalariga tarqaladi.
Tabning o'z animatsiyali tab_news ikonasi bor. Versiya resurslarida u hozirgi to'rtta tabning ikonasi — tab_contacts, tab_calls, tab_chats va tab_settings — yonida joylashgan, ya'ni lenta asosiy menyuda alohida tab sifatida, chatlar ro'yxati ichidagi bo'lim sifatida emas, balki alohida tab sifatida o'ylangan.
Nima uchun tabni o'zingiz yoqa olmaysiz
Binar faylda lentani yoqadigan server konfiguratsiya kaliti mavjud emas — ko'pgina funksiyalar uchun bunday kalit satr sifatida joylashgan bo'lib, u orqali funksiyaning flag orqali tarqatilayotganini ko'rish mumkin. Tabning ko'rinishini showNewsTab ichki belgisi boshqaradi, u ishga tushirilganda o'chirilgan bo'ladi. Kodning tuzilishiga ko'ra, u faqat server bo'sh bo'lmagan lentani qaytarganida yoqiladi.
Ikkala lentaning mazmuni feed nomlar fazosidagi getForYou va unga yaqin metodlar orqali keladi. Server ularni akkauntga berish-bermaslikni hal qiladi, va lentasi yoqilmaganlarga bo'sh javob qaytaradi. Shuning uchun ilovaning o'zini tahrirlash eng yaxshi holatda «No posts for you yet» yozuvi bilan tabni ko'rsatadi: ekran chizilgan, lekin uni to'ldirish uchun hech narsa yo'q.
Telegram Desktopning ochiq API sxemasi, 230-qavat, na forYouFeed, na feedMessages, na interestCategoriesni o'z ichiga olmaydi. Odatda yangi metodlar funksiya chiqqanida ochiq sxemalarda paydo bo'ladi, shuning uchun lenta beta bosqichidan chiqqanini aynan sxema orqali bilish mumkin bo'ladi.
Lenta turlari haqida yana nimalar ma'lum
Versiyadagi feed nomlar fazosi forYouFeed (tanlov), feedMessages va feedMessagesNotModified (postlar sahifasi va "hech narsa yangilanmadi" javobi), feedItemMessage va feedPosition (lenta elementi va yuklashni davom ettirish pozitsiyasi), interestCategory va interestCategories (qiziqishlar) turlarini o'z ichiga oladi. updateReadFeed yangilanishi akkaunt yangilanishlarining umumiy oqimida keladi. Tanlov kodi ForYouFeedContext faylida, obunalar lentasi — AddedFeedContextda, qiziqishlar — FeedInterestsda joylashgan.
Hamyon kartasidagi sovg'alardan stikerlar
Ikkinchi topilma Telegramga o'rnatilgan hamyonga tegishli. Hamyonning kartasi bor — ekran yuqorisida balans va manzil ko'rsatilgan panel. 13.0.283318 versiyada unga wallet nomlar fazosida card va cardSticker turlari hamda inputWalletCardSticker kirish turi qo'shilgan: kartaga stikerlarni joylashtirish mumkin, klient esa ularning joylashuvini serverda saqlaydi. Stikerda «Remove from Card» menyu bandi mavjud.
Stikerlar kolleksion sovg'alardan olinadi — Telegramda NFT sifatida rasmiylashtirilgan sovg'alardan. Beta versiyadagi hamyon kolleksiyasi ekrani sovg'a plitkasini lenta va nusxa raqami bilan chizadi, plitkada esa "ko'chirilgan" holat mavjud: sovg'a plitkadan stiker kabi olinadi va kartaga o'tkaziladi. Kartaning o'zi stikerlar ustida yaltiroq qatlam va sovg'a uchun CardGiftStyle uslubini oldi.
Nimalarga ruxsat berilganini server tekshiradi — buni klient ko'rsata oladigan xatolardan ko'rish mumkin. Klientda ularning izohlari yo'q, ma'nosi nomlaridan o'qiladi:
| Xatolik | Nomiga ko'ra ma'nosi |
|---|---|
WALLET_NFT_NOT_OWNED | sovg'a hamyon egasiga tegishli emas |
WALLET_NFT_INVALID | sovg'a topilmadi yoki mos kelmadi |
WALLET_STICKER_DUPLICATE | bu sovg'a allaqachon yopishtirilgan |
WALLET_STICKER_LIMIT_EXCEEDED | kartada boshqa joy yo'q |
WALLET_STICKER_INVALID | stiker tekshiruvdan o'tmadi |
WALLET_STICKER_SAVED_PROFILE | profilga saqlangan sovg'alar bilan bog'liq; aynan nimani taqiqlashini nomidan tushunib bo'lmaydi |
Kartaga nechta stiker sig'ishi klientda yozilmagan: limitni server boshqaradi va u haqida faqat xatolik orqali xabar beradi. Lenta kabi, kartadagi stikerlar ham ilovani tahrirlash orqali yoqilmaydi — joylashuvni saqlashni server tekshiradi, ochiq 230-qavat sxemasida esa wallet nomlar fazosi allaqachon mavjud, lekin unda card va cardSticker turlari yo'q.




