2.0.1 • Published 4 years ago

@henta/common-bot v2.0.1

Weekly downloads
1
License
-
Repository
-
Last release
4 years ago

HENTA Плагин: common/bot

Связующее ядро для вашего бота

const botPlugin = henta.getPlugin('common/bot');

Создание своего обработчика

Зарегистрируйте свой обработчик с помощью вызова функции setHandler

init(henta) {
  const botPlugin = henta.getPlugin('common/bot');
  botPlugin.setHandler('my-handler', (ctx, next) => {
    ctx.answer('Hello world!');
    return next();
  });
}

А после вы можете добавить обработчик в config/bot.json.

Свойства и методы MessageContext (ctx)

Ссылка на botPlugin

  const botPlugin = ctx.bot;

Ссылка на henta

  const henta = ctx.henta;

Ссылка на VK

  const vk = ctx.vk;

Ссылка на VK API

  const vkApi = ctx.api;

Ответить на пользовательское сообщение

  ctx.answer('Hi');
  // Или
  ctx.answer([
    'Hi!',
    'Next line'
  ]);
  // Или
  ctx.answer({
    message: 'Hi!',
    attachment: 'https://vk.com'
  });

Отправить сообщение пользователю

  ctx.send('Hi');
  // Подходит всё, как в answer

Создать MessageBuilder

  const messageBuilder = ctx.builder();
  // Созданный таким методом builder имеет функцию answer

Получить плагин

  const myPlugin = ctx.getPlugin('bot/my');

Получить значение из payload, если оно есть

  const command = ctx.getPayloadValue('command');
  // Вернёт "тест", если payload будет { "command": "тест" }

Свойства и методы MessageBuilder

Установить вспомогательные значения

  builder.setContext({
    peerId: 0,
    vk: henta.vk,
    henta: henta
  });

Отправить сообщение

  builder.send(messageData);

Отправить сообщение нескольким получателям

  builder.multiSend(peerIds);

Добавить к сообщению "\nTEXT" (Если сообщения нет, то \n не поставится)

  builder.line('Hi');

Добавить к сообщению несколько линий

  builder.lines(['Hi', 'next line']);

Добавить к сообщению текст без переносов

  builder.text('Hi');

Манипуляция текстом

  builder.manageText(str => str ? 'тут был текст' : 'тут нет текста');

Добавить клавиатуру

  builder.keyboard(vkIoKeyboard);

Прикрепить что-нибудь

  builder.attach('photo-131358170_457239073');

Прикрепить аудио-сообщение

  builder.audioMessage('http://mp3-fast.ru/mp3_2/fastmp3-org-e330-zvyozdy-55331555.mp3');

Прикрепить фотографию

  builder.photo('https://sun9-72.userapi.com/c850428/v850428268/53e47/QMJ1z5oFFuc.jpg');

Прикрепить кэшированную фотографию (требуется плагин common/imageCache)

  builder.cachedPhoto('my-cool-photo', () => {
    // Тут можно сгенерировать canvas или сделать ещё что-нибудь.
    // Но я просто верну фотографию с котиком
    return 'https://sun9-24.userapi.com/c824411/v824411719/bdfe/n-ng8CKs_00.jpg';
  });

  // А ещё можно так
  builder.cachedPhoto('https://sun9-24.userapi.com/c824411/v824411719/bdfe/n-ng8CKs_00.jpg');

Получить клавиатуру (вернёт undefinded, если клавиатура не определена)

  const keyboard = builder.getKeyboard();
  keyboard.textButton({ label: 'Пиу пах..', payload: { command: 'тест' } });
  keyboard.oneTime();
2.0.1

4 years ago