Сборка themes
Темы оформления
Пять методов: список тем с палитрами и файлом .attheme, тема по slug, темы чатов по эмодзи и установка темы чата.
- +
getThemes— список тем оформления с пагинациейoffsetиlimit(1…100, по умолчанию 100). У каждой темыtheme_id,slug,title,emoticon,installs_count, файл.atthemeвdocumentиsettingsс палитрой. - +
getTheme— одна тема поslugилиtheme_id, достаточно одного из двух. Встроенные темы ищутся раньше сохранённых, как и в клиенте. - +
getChatThemes— темы чатов, те, что в клиенте выбираются эмодзи. Ключ у нихemoticon, а не slug, и палитра приходит отдельно для светлого и тёмного режима. - +
getChatTheme— тема, установленная в конкретном чате:chat_id,emoticon,settingsиgift_slug, если тема пришла из подарка. - +
setChatTheme— установить тему чата поemoticonизgetChatThemes. Пустая строка снимает тему. Нужно правоcan_change_info.
В settings: base_theme (classic, day, night, tinted, arctic), accent_color, необязательный outbox_accent_color, до четырёх message_colors для градиента пузыря и wallpaper с цветами фона, intensity и rotation. Цвета — целые числа 0xRRGGBB, не строки.
Палитры берутся из того же источника, что и MTProto: числа в ответе Bot API и цвета, которые рисует клиент, — одни и те же. Файл темы отдаётся обычным file_id, так что его скачивает getFile.
setChatTheme работает в группах, супергруппах и каналах. В личном чате тему выбирает человек, боту она недоступна. После смены темы в чат уходит служебное сообщение — так же, как при смене темы из клиента.