Skip to content

Yet another bot for VK social network. Done as a part of Node.js exploration.

Notifications You must be signed in to change notification settings

nuc134r/elizabeth2

Repository files navigation

Вторая версия бота для VK. Первая тут.

Настройка

В пустой папке, в bash или git bash:

$ git clone https://github.com/nuc134r/elizabeth2.git .
$ npm install

Для работы требуется токен от VK API с доступом к сообщениям, подойдёт как обычный, так и групповой токен. Нужно создать файл config.json в корневой папке и скопировать в него следующее:

{
  "access_token" : "тут_токен"
}

В конфиге также можно указать следующие параметры(со значением "true" или "false"):

  • log_requests - логирование HTTP-запросов
  • online_status - нужно ли обеспечивать статус "онлайн" (только для пользователей)
  • diagnostics - диагностическая информация каждые 15 минут (выводится в консоль)

По умоланию все настройки отключены.

Запуск

Работает на Node.js версии >= 5.5.0

$ node app.js

После этого пользователю/группе можно писать сообщения, на них будет отвечать бот.

Как работает?

Модуль commands.js экспортирует объект любой степени вложенности list:

module.exports.list = {
  default: 'Unknown command',         // строка
  'weather': {
      default: getWeatherToday,       // функция
      'today': getWeatherToday,       // функция
      'tomorrow': getWeatherTomorrow, // функция
      'yesterday': 'Not avliable'     // строка
    }
}

Когда бот резолвит команду, полученную через личные сообщения, он идёт по строке и рекурсивно ищет ключевые слова в объекте. Например, при команде "weather tomorrow" он найдёт слово "weather" на первом уровне list и примется за второй, где найдёт "tomorrow". В результате он вернёт результат функции getWeatherTomorrow.

Команда "weather" вернёт значение default из объекта weather. Значение по умолчанию берётся также и при отсутствии знакомых ключевых слов, например "weather monday". Эту логику можно посмотреть в файле bot.js.

Незнакомая команда будет обработана корневым полем default, причём если онo будет null, то на незнакомые команды бот не будет отвечать.

About

Yet another bot for VK social network. Done as a part of Node.js exploration.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published