Написал на досуге модуль для wb-rules, который прикидывается Телеграм-ботом:
понимает, кто ему пишет, поэтому может общаться сразу с несколькими пользователями в личке или в общем чате;
выполняет любые команды, логику вы прописываете сами;
ведёт очередь команд — это полезно, если бот не мог связаться с сервером, а команды продолжали поступать;
понимает несколько команд в одном сообщении и их аргументы;
может отправлять форматированные сообщения, документы и фото.
В боте нет логики обработки команд — это ваша задача: он просто публикует в топик Cmd виртуального устройства JSON-сообщение с командой из очереди, вы её обрабатываете и кладёте ответ в топик Msg.
Бот сделан модулем, поэтому вы можете запустить сколько угодно экземпляров одновременно и назвать каждый по своему.
Подробное описание и пощупать на Гитхабе, там же есть рабочий пример со скриншота. Писалось для себя, отвечать ни за что не хочу, поддержки нет, доработки приветствуются.
update 25052022 (v.2.3.1)
Добавил автоматическое восстановление соединения с сервером при пропадании связи с интернет.
Теперь можно отправлять необработанные сообщения — полезно, если нужно отправить что-то большее, чем текст или документ.
Добавил отправку клавиатур и приём данных от Inline Keyboard в топик Callback.
Теперь все сообщения из приватного чата будут считаться командами — это позволит реализовать интересные сценарии: ввод чисел, текстовые ответы на вопросы и т.д.
Да, увеличение времени опроса снизит нагрузку на процессор. Однако, очень странно, что она такая высокая — у меня работает несколько скриптов и бот, нагрузка около 7–9 % (wb 6.7.2 512Mb, testing)
Ну вот это я и имел ввиду, попробуйте оптимизировать выполнение новых команд, если дело в них. Ну и увеличение времени опроса должно положительно сказаться.
Я пару недель назад добавлял клавиатуры, там можно делать многоуровневые: в Callback обрабатывается сообщение от кнопки и перерисовываете клавиатуру в сообщении (через rawMsg и метод редактирования). С пиктограммами не пробовал, но там разве не обычные эмодзи в тексте?