سرور تلگرام لیستی از نُه موضوع را برای فید توصیه‌های آینده ارائه می‌دهد: AI، Crypto، Biotech، Games، Sport، Health، Psychology، Politics و Inspiration. پاسخ در سرور اصلی و سرور آزمایشی یکسان است. این فید هنوز برای کاربران در دسترس نیست؛ تلگرام در تاریخ ۱۶ اکتبر، خودش آن را در کد کلاینت iOS غیرفعال کرد و متدهای مربوط به فید را با استفاده از یک پرچم کامپایل (build flag) از بیلد حذف کرد.

نُه موضوع

این لیست در پاسخ به متد feed.getInterestCategories دریافت می‌شود. در سرور اصلی، این موضوع در تاریخ ۲۵ اکتبر در ساعت ۰۸:۰۴ UTC ثبت شد، و در سرور آزمایشی در همان دقیقه ثبت شد، و پاسخ‌ها یکسان هستند:

ردیفآیکونموضوع
1🤖AI
2💎Crypto
3🧬Biotech
4🕹Games
5⚽️Sport
6❤️Health
7🧠Psychology
8🏛Politics
9✨Inspiration

پیش از این، در تاریخ ۱۶ اکتبر، همین لیست با بازیابی طرح‌واره لایه API 232 از سرور دریافت شده بود؛ این بدان معناست که سرور حداقل از اواسط ماه به درخواست موضوعات پاسخ می‌داد.

هر موضوع دارای یک شماره، یک آیکون و یک نام است. در طرح‌واره، یک فیلد دیگر نیز برای موضوع در نظر گرفته شده است — لینکی به یک ایموجی سفارشی (custom emoji)، بنابراین آیکون‌های معمولی می‌توانند بعداً با ایموجی‌های متحرک جایگزین شوند.

نحوه عملکرد فید

مکانیسم کامل توسط کد متن‌باز Telegram برای iOS نشان داده می‌شود: در تاریخ ۲۲ اکتبر، کامیت‌های مربوط به موتور فید که در تاریخ ۱۳ تا ۱۶ اکتبر نوشته شده بودند، وارد مخزن عمومی شدند.

  • تب News. این تب بین چت‌ها و تنظیمات قرار می‌گیرد و به دو بخش تقسیم می‌شود: «For you» — توصیه‌ها، و «Added» — پست‌های کانال‌هایی که خودتان به فید اضافه کرده‌اید.
  • انتخاب علایق. صفحه «What are you interested in?» شماره موضوعات انتخاب شده را با متد feed.setInterestCategories به سرور ارسال می‌کند — این متد در طرح‌واره API کلاینت توضیح داده شده است. سرور می‌تواند چنین بلوک انتخابی را مستقیماً در فید، بین پست‌ها قرار دهد.
  • ارزیابی پست‌ها. یک پست را می‌توان به عنوان «Interesting» یا «Not Interested» رد کرد. پس از پنهان کردن، کلاینت دلیل را می‌پرسد: عدم نمایش پست‌های این کانال، عدم نمایش پست‌های مشابه، یا حذف کانال از News.
  • کانال‌ها برای فید. برای پیوستن به یک کانال، یک پرچم جداگانه اضافه شده است — کانال را می‌توان به طور خاص به News اضافه کرد، کلاینت این موضوع را با پیام «added to News tab» اطلاع می‌دهد.

پست‌ها در فید به صورت تکی یا آلبوم دریافت می‌شوند. شمارنده پیام‌های خوانده نشده توسط سرور ارسال می‌شود، یک نوار «New posts» بالای فید ظاهر می‌شود و در منو گزینه «Mark All as Read» وجود دارد.

چرا فید هنوز در دسترس نیست

در تاریخ ۱۶ اکتبر، توسعه‌دهندگان کلاینت iOS ثبت کردند که فید در سمت سرور «پارک شده» است و یک نسخه بر اساس لایه API 232 بدون متدهای فید آماده کردند و تب News را پنهان کردند. پرچم بیلد TELEGRAM_NEWS_FEED_API که در نسخه نهایی تنظیم نشده است، آن را پنهان می‌کند. کلید سرور news_feed_enabled فقط فید را غیرفعال می‌کند، و بدون آن، فید فعال در نظر گرفته می‌شود؛ این کلید در تنظیمات سرور اصلی و آزمایشی وجود ندارد. در طرح‌واره‌های Telegram Desktop و TDLib نیز متدهای فید وجود ندارند.

سرور، با توجه به پاسخ به درخواست موضوعات، در حال آماده‌سازی برای فید است: لیست موضوعات توسط هر دو سرور ارائه می‌شود. اینکه آیا به درخواست خود فید توصیه‌ها پاسخ می‌دهد، هنوز مشخص نیست.

چه چیزی از ۱۵ اکتبر تغییر کرده است

صفحه انتخاب علایق و تب «For you» در اواسط اکتبر فقط در نسخه بتا Telegram برای macOS یافت شد — در یک برنامه کامپایل شده، بدون کد منبع، و در آن زمان نه لیست موضوعات و نه امضای متدها مشخص نبود. اکنون هم موضوعات و هم متدها و همچنین ارزیابی‌هایی که کلاینت به خواننده پیشنهاد می‌دهد، مشخص شده‌اند.