في النسخة التجريبية 13.0.283318 من Telegram لنظام macOS الصادرة في 15 أكتوبر، ظهر عميل لعلامة تبويب جديدة: موجز المنشورات من القنوات، والذي يختاره Telegram بناءً على اهتمامات المستخدم، تحت اسم «For you»، وموجز ثانٍ — من القنوات التي اشترك فيها المستخدم بالفعل. في نفس النسخة التجريبية، تم تجميع شاشة حيث يمكن لصق ملصقات من الهدايا القابلة للتحصيل على بطاقة محفظة Telegram. لا يمكن استخدام أي من الميزتين حاليًا: يتم تفعيل كلتا الوظيفتين بواسطة الخادم، ولا توجد الطرق المطلوبة في مخطط API المفتوح.
ماذا ظهر في نسخة 15 أكتوبر
يتم توزيع النسخة التجريبية لنظام macOS عبر موجز التحديثات mac-updates.telegram.org، وكل نسخة تجريبية هي ملف zip عادي يحتوي على التطبيق. في النسخة 13.0.283309 الصادرة في 11 أكتوبر، لا يوجد موجز ولا ملصقات على البطاقة. في النسخة 13.0.283318 الصادرة في 15 أكتوبر، يظهر كلا المجموعتين على الفور: وحدة واجهة NewsUI، وثلاثة ملفات أساسية في مجلد TelegramEngine/Feed، وأوصاف لأنواع API الجديدة.
النواة الأساسية للعميل — TelegramCore — في Telegram لنظام macOS مشتركة مع iOS: يتم تضمينها من الشيفرة المصدرية لتطبيق iPhone. في مستودع Telegram-iOS المفتوح، لا يوجد مجلد TelegramEngine/Feed بعد، وفي عميل macOS المفتوح، لا توجد وحدة NewsUI. شيفرة الموجز موجودة فقط في النسخة التجريبية المترجمة.
كيف يعمل موجز «For you»
تحتوي الوحدة على موجزين في آن واحد. الأول، forYouFeed، هو مجموعة مختارة يجمعها الخادم. والثاني، في الشيفرة addedFeed، هو منشورات من القنوات التي اشترك فيها المستخدم، مع حالة فارغة «Posts from your channels appear here». لكل منهما قائمة خاصة به وتمرير خاص به، ويتم التبديل بينهما بواسطة عناصر تحكم مقسمة في أعلى الشاشة.
تبدأ المجموعة المختارة بسؤال «What are you interested in؟» وسلسلة من شرائح الاهتمامات، لكل منها رمز تعبيري. لا يخزن العميل قائمة الاهتمامات: يطلبها من الخادم باستخدام النوع interestCategories ويخزنها مؤقتًا — يحتوي النوع على خيار interestCategoriesNotModified، والذي يجيب به الخادم "لم تتغير القائمة". يرسل العميل الاهتمام المحدد مرة أخرى ويعرض تأكيدًا «Got it! More of this in For you».
الباقي مألوف من أي موجز. يتم تحميل المنشورات إلى الأسفل على شكل صفحات ويتم تحديثها بإيماءة pull-to-refresh؛ تظهر لوحة المنشورات الجديدة فوق القائمة؛ في المجموعة المختارة الفارغة، مكتوب «No posts for you yet»، وفي حالة الخطأ — «Couldn't load posts». يوجد زر «Mark All as Read»: يقوم الموجز بوضع علامة على المنشورات المقروءة على الخادم، ويرسل الخادم تحديث updateReadFeed إلى العميل — وهكذا تنتشر علامة القراءة عبر جميع أجهزة الحساب، تمامًا كما تنتشر قراءة الدردشات حاليًا.
تحتوي علامة التبويب على أيقونة متحركة خاصة بها tab_news. في موارد النسخة التجريبية، توجد بجانب أيقونات علامات التبويب الأربع الحالية — tab_contacts، tab_calls، tab_chats، و tab_settings — مما يعني أن الموجز مصمم ليكون علامة تبويب منفصلة في القائمة الرئيسية، وليس قسمًا داخل قائمة الدردشات.
لماذا لا يمكن تفعيل علامة التبويب لديك
لا يوجد في الملف الثنائي مفتاح تكوين خادم يقوم بتفعيل الموجز — بالنسبة لمعظم الوظائف، يوجد مثل هذا المفتاح كسلسلة، ومن خلاله يتضح أن الوظيفة يتم طرحها بعلامة. يتم التحكم في رؤية علامة التبويب بواسطة مؤشر داخلي showNewsTab، والذي يكون معطلاً عند التشغيل. يتم تفعيله، وفقًا لهيكل الشيفرة، فقط عندما يعيد الخادم موجزًا غير فارغ.
يتم جلب محتوى كلا الموجزين بواسطة طرق من مساحة الأسماء feed — getForYou والطرق المجاورة. يقرر الخادم ما إذا كان سيعيدها للحساب، وللذي لم يتم تفعيل الموجز لديه، يجيب بفارغ. لذلك، فإن تعديل التطبيق نفسه في أفضل الأحوال يعرض علامة التبويب مع النص «No posts for you yet»: الشاشة مرسومة، ولكن لا يوجد ما يملأها.
لا يحتوي مخطط API المفتوح لـ Telegram Desktop، الطبقة 230، على forYouFeed ولا feedMessages ولا interestCategories. عادةً ما تظهر الطرق الجديدة في المخططات المفتوحة مع إصدار الوظيفة، لذلك من خلال المخطط سيتضح متى سيخرج الموجز من مرحلة النسخة التجريبية.
ما هو معروف أيضًا عن أنواع الموجز
تحمل مساحة الأسماء feed في النسخة التجريبية الأنواع forYouFeed (المجموعة المختارة)، feedMessages و feedMessagesNotModified (صفحة المنشورات والرد "لا جديد")، feedItemMessage و feedPosition (عنصر الموجز والموضع الذي يجب متابعة التحميل منه)، interestCategory و interestCategories (الاهتمامات). يأتي التحديث updateReadFeed في تيار التحديثات العام للحساب. توجد شيفرة المجموعة المختارة في ملف ForYouFeedContext، وموجز الاشتراكات في AddedFeedContext، والاهتمامات في FeedInterests.
ملصقات الهدايا على بطاقة المحفظة
النتائج الثانية تتعلق بالمحفظة المدمجة في Telegram. تحتوي المحفظة على بطاقة — لوحة بها الرصيد والعنوان في أعلى الشاشة. في النسخة التجريبية 13.0.283318، تمت إضافة أنواع card و cardSticker إليها في مساحة الأسماء wallet والنوع المدخل inputWalletCardSticker: يمكن وضع الملصقات على البطاقة، ويحفظ العميل ترتيبها على الخادم. يوجد في الملصق عنصر قائمة «Remove from Card».
تُؤخذ الملصقات من الهدايا القابلة للتحصيل — تلك التي يتم إصدارها في Telegram كـ NFT. تعرض شاشة مجموعة المحفظة في النسخة التجريبية بلاطة الهدية مع شريط ورقم النسخة، وتحتوي البلاطة على حالة "مقشرة": يتم إزالة الهدية من البلاطة كملصق ونقلها إلى البطاقة. حصلت البطاقة نفسها على طبقة من اللمعان فوق الملصقات ونمط يتناسب مع الهدية، CardGiftStyle.
ما هو مسموح به، يتحقق منه الخادم — يتضح ذلك من الأخطاء التي يمكن للعميل عرضها. لا توجد تفسيرات لها في العميل، ويُفهم المعنى من الأسماء:
| الخطأ | المعنى حسب الاسم |
|---|---|
WALLET_NFT_NOT_OWNED | الهدية لا يملكها صاحب المحفظة |
WALLET_NFT_INVALID | الهدية غير موجودة أو غير مناسبة |
WALLET_STICKER_DUPLICATE | هذه الهدية ملصقة بالفعل |
WALLET_STICKER_LIMIT_EXCEEDED | لا يوجد مكان إضافي على البطاقة |
WALLET_STICKER_INVALID | الملصق لم يجتز التحقق |
WALLET_STICKER_SAVED_PROFILE | تتعلق بالهدايا المحفوظة في الملف الشخصي؛ ما الذي تمنعه بالضبط لا يمكن فهمه من الاسم |
كم عدد الملصقات التي تتسع لها البطاقة، غير مسجل في العميل: يحتفظ الخادم بالحد الأقصى ويبلغ عنه فقط عن طريق الخطأ. مثل الموجز، لا يتم تفعيل الملصقات على البطاقة عن طريق تعديل التطبيق — يتحقق الخادم من حفظ الترتيب، وفي مخطط الطبقة 230 المفتوح، توجد مساحة الأسماء wallet بالفعل، ولكن لا توجد فيها أنواع card و cardSticker.




