@henta/common-bot v2.0.1
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();
4 years ago