Сервер Telegram отдаёт список тем для будущей ленты рекомендаций — их девять: ИИ, крипта, биотех, игры, спорт, здоровье, психология, политика и вдохновение. Ответ одинаковый на основном и тестовом серверах. Пользователям лента пока недоступна: 16 октября Telegram сам отключил её в коде клиента для iOS, а методы ленты убрал из сборки флагом компиляции.

Девять тем

Список приходит в ответ на метод feed.getInterestCategories. На основном сервере его зафиксировали 25 октября в 08:04 UTC, на тестовом — в ту же минуту, и ответы совпадают:

№ЗначокТема
1🤖AI
2💎Crypto
3🧬Biotech
4🕹Games
5⚽️Sport
6❤️Health
7🧠Psychology
8🏛Politics
9✨Inspiration

Ещё 16 октября этот же список получили с сервера, восстановив у себя схему слоя API 232, — то есть сервер отвечал на запрос тем как минимум с середины месяца.

У каждой темы есть номер, значок и название. В схеме у темы предусмотрено ещё одно поле — ссылка на кастомный эмодзи, так что обычные значки позже можно заменить анимированными.

Как устроена лента

Целиком механику показывает открытый код Telegram для iOS: 22 октября в публичный репозиторий попали коммиты с движком ленты, написанные 13–16 октября.

  • Вкладка 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».

Почему ленты пока нет

16 октября разработчики iOS-клиента записали, что лента «припаркована» на стороне сервера, и подготовили релиз на слое API 232 без методов ленты, а вкладку News скрыли. Прячет её флаг сборки TELEGRAM_NEWS_FEED_API, который в релизе не задан. Серверный ключ news_feed_enabled ленту только гасит, а без него она считается включённой; в конфигах основного и тестового серверов этого ключа нет. В схемах Telegram Desktop и TDLib методов ленты тоже нет.

Сервер, судя по ответу на запрос тем, к ленте уже готовится: список тем отдают оба сервера. Отвечает ли он на запрос самой ленты рекомендаций, пока не видно.

Что изменилось с 15 октября

Экран выбора интересов и вкладку «For you» в середине октября нашли только в бете Telegram для macOS — в собранной программе, без исходного кода, и тогда не были известны ни список тем, ни сигнатуры методов. Теперь известны и темы, и методы, и какие оценки клиент предлагает читателю.