Donutgramплагины
На этой страницеВыбранный текст

Выбранный контекст

Текст сообщения, сведения о текущем чате и выбранном авторе.

Выбранный текст

api.selection.get() использует messages.selection.read / activeSelection и явный контекст пользователя.

const selected = await api.selection.get();
if (!selected) return;
const characters = selected.text.length;
await api.ui.toast(`Символов UTF-16: ${characters}`);

В меню сообщения возвращается текст всего выбранного сообщения, а не обязательно небольшое выделение. source показывает composer или message.

Структура результата

interface Selection {
  text: string;
  source: "composer" | "message";
  entities: JSONValue[];
  entitiesComplete: false;
}

Защищённые и служебные источники фильтруются нативной стороной. У плагина нет произвольного обхода истории.

Текущий чат

Для chats.metadata.read / selectedChats:

const chat = await api.chats.metadata();

Возвращаются безопасные handle, title и scope currentNativeChat. Не передавайте произвольный числовой chat ID: такой контракт не предусмотрен.

Выбранные авторы

Для peers.read / selectedPeers:

const peers = await api.peers.read();

Результат содержит ограниченные handles и названия выбранных авторов. Это не перечень контактов и не поиск аккаунтов по идентификатору.

Пустой результат

Пользователь может закрыть чат или изменить выбор. Обрабатывайте null, пустые массивы и отмену как обычные исходы, не заменяя их данными из прежнего контекста.