Чат-бот для ВКонтакте, написанный на языке Nim.
Этот бот может работать как и от имени пользователя (авторизация от имени приложения ВКонтакте на iPhone), так и от группы. Бот поддерживает работу через User Long Poll API, Callback API.
- Приветствие (Приветствует пользователя) -
привет
- Случайные мемы -
мемы
- Случайные загадки -
загадка
- Случайные факты -
факт
- Функции случайных чисел (случайные числа, оценки, шар предсказаний, случайная дата)
- Курс валют (Отображение курсов основных валют) -
курс
- Время (Показывает текущую дату и время) -
время
- Блокнот (Может запоминать и вспоминать строки) -
напомни
изапомни
- Рассказать шутку (берёт случайную цитату с https://bash.im) -
пошути
- Выключение (Выключает бота, если команду послал администратор бота) -
выключись
- Калькулятор -
посчитай 1+1
- Операции с текстом (перевернуть текст, зачеркнуть текст, сгенерировать смех)
- Получение погоды -
погода в Москве завтра
- Получение краткого описания (первого абзаца) с Википедии
- Хелперы (сокращение ссылки, ID пользователя по пересланному сообщению)
- Перевод текста через API Яндекс.Переводчика -
переведи на китайский Привет!
- Диалог с пользователем (с помощью Dialogflow)
- Автообновление статуса
- Пересылка сообщений другому пользователю
- Озвучивание текста через голосовые сообщения
В данном списке могут отстутствовать какие-либо модули и команды, которые есть в боте. Просмотрите файлы в папке src/modules для более точной информации
- Полная асинхронность
- Работа от имени группы
- Конфигурация
- Обработка ошибок
- Логгирование событий в консоль
- Возможность задать несколько команд для одного модуля
- Система модулей
- Упрощённое создание модулей с помощью метапрограммирования (DSL)
- Автоматическое распознавание неправильной раскладки
- Работа от имени пользователя (через авторизацию под именем Android приложения ВК)
- Возможность создавать и изменять префиксы бота
- Автоматическое использование execute для ускорения работы бота под высокой нагрузкой
- Конфигурация модулей
- Возможность изменения команд через файлы конфигурации
- Хранилище данных
- Тестирование производительности и оптимизация (если необходимо)
В папке src/modules
есть пример модуля в файле example.nim, который отвечает на команду тест
Там есть и другие модули, код которых можно изучить для понимания того, что можно реализовать с помощью бота.
Модули могут работать со всеми методами API ВКонтакте (от имени группы - только те, которые можно выполнять от имени группы).
Пример простейшего модуля, который отвечает на команду пользователя "привет":
include base
module "Приветствие":
command "привет":
usage = "привет - поприветствовать пользователя"
answer "Привет!"