На данный момент бот заброшен, и больше не поддерживается
Это модульный бот для VK на Lua. Он отличается лёгкой масштабируемостью путем добавления в папку modules. Вы с лёгкостью можете отредактировать модули, написать свои, или же отключить готовые просто удаляя файл из папки
Настройка бота осуществляется через файл config.lua, который автоматически генерируется в зависимости от установленных модулей
Работоспособность бота проверена на Debian/Ubuntu. На других ОС корректная работа не гарантируется
Во-первых, нужно установить LUAJIT и LuaRocks
- Если у вас уже установлен Lua5.3 и LuaRocks – нужно удалить:
~# rm -rf /var/cache/luarocks /usr/local/include/lua.hpp /usr/local/include/lua.h /usr/local/etc/luarocks /usr/local/bin/luarocks-admin /usr/local/bin/luarocks /usr/local/bin/lua /usr/local/lib/luarocks /usr/local/lib/lua/5.3 /usr/local/share/lua
- Устанавливаем инструменты для разработки:
~# sudo apt update && sudo apt upgrade
~# sudo apt install build-essential libreadline-dev curl libcurl4 libcurl4-openssl-dev
~# sudo ln -s /usr/include/x86_64-linux-gnu/curl /usr/include/curl
- Устанавливаем LUAJIT:
~# git clone https://luajit.org/git/luajit-2.0.git
~# cd luajit-2.0
~# git checkout v2.1
~# sudo make install
~# ln -sf luajit-2.1.0-beta3 /usr/local/bin/luajit
- Устанавливаем LuaRocks:
~# wget https://luarocks.org/releases/luarocks-3.3.1.tar.gz
~# tar zxpf luarocks-3.3.1.tar.gz
~# cd luarocks-3.3.1
~# ./configure
~# make build
~# sudo make install
- Устанавливаем библиотеки:
~# luarocks install luautf8
~# luarocks install dkjson
- После установки клонируем репозиторий:
~# git clone https://github.com/Flittis/Lua_VK_ModuleBot.git
~# cd Lua_VK_ModuleBot
- Запустите скрипт (при первом запуске будет создан файл конфига с значениями по умолчанию)
~# luajit index.lua
[ERROR] Please fill `config.lua` file in script directory
После этого проверьте папку со скриптом на наличие config.lua.
- Для удобного управления и отслеживания работы скрипта можно использовать менеджер процессов PM2 Необходим установленный npm!
~# sudo apt update && sudo apt install npm
~# npm install pm2 -g
- Добавляем скрипт в PM2
~# pm2 start index.lua --name=LuaBot --interpreter=luajit
Подробно ознакомиться с функционалом пакетного менеджера, узнать как настроить автозапуск, смотреть логи и т.д. вы можете в официальной документации. https://vk.cc/awUBaH
-
Перейдите по ссылке для получения токена с правами на сообщения: https://vkhost.github.io Для правильной работы бота в фантом-чатах рекомендуется получить токен от VK Me Токеном является часть после access_token= до &expires_in
-
Скопируйте ваш токен из адресной строки (никому его не показывайте)
Для настройки бота необходимо редактировать файл config.lua, Его объем зависит от количества установленных модулей
- Токен
accessToken = '<тут будет ваш токен>', -- это ваш токен, который вы указали в шаге выше
- Удаление сообщений (delmessages.lua)
Удаляет несколько ваших сообщений для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ после отправки сообщения с указанным текстом
delete = {
trigger = 'ой', -- удаление предыдущих сообщений ("ой <количество>" если не указать количество - будет удалено только одно сообщение)
triggerAll = '/delall', -- удаление сообщений в промежутке последних 150-и сообщений в чат
editTo = 'ᅠ', -- символ, на которое будет отредактировано сообщение, если указать минус после слова для удаления ("ой-", "ой-5"). Стандартно там установлен невидимый символ, то есть сообщение станет пустым перед удалением
},
- Ответ стикером при написании ключевого слова в чатах (trigger.lua)
Отправляет стикер, если кто-то в указанном чате отправит сообщение с указанным текстом
stickerReply = {
addChatTrigger = '!chat', -- добавление/удаление чата, в который было отправлено сообщение, в которых будет работать триггер стикером
addStickerTrigger = '!sticker', -- добавление/удаление стикеров, которые будут отправляться
words = {'пинг', 'тест'}, -- слова через запятую, на которых будет реагировать бот
stickers = {1, 2, 3}, -- айди стикеров через запятую, которые будут отправляться
chats = {1, 2, 3}, -- чаты в которых бот будет работать
timeout = 5, -- таймаут между отправлениями стикеров
},
- Розыгрыши (giveaways.lua)
Запуск розыгрыша, в котором для участия нужно будет написать ключевое слово После завершения, скрипт случайно выбирает победителя
giveaway = {
trigger = '!розыгрыш', -- текст сообщения, при котором будет начинатся розыгрыш ("!розыгрыш <время в минутах> <ключевое слово>" если не указывать время или ключевое слово – будут использовани стандартные значения)
stopTrigger = '!stop', -- текст сообщения, при котором розыгрыш будет немедленно окончен
defaultWord = 'Ку', -- стандартное значения ключевого слова для розыгрыша
defaultTime = 5, -- стандартное значения времени в минутах для розыгрыша
minPlayers = 2, -- минимальное количество участников в розыгрыше
}
- Голосовые сообщения (audiomessages.lua)
Отправка голосовых сообщений после отправки имени файла ("!<название голосового>" - отправит голосовое из папки /audios с именем файла который вы указали)
Пример:
"!voice" - отправит голосовое voice.ogg
А также сохранение чужих голосовых сообщений ("!гс <название голосового>" – сохранит голосовое которое вы переслали с этим сообщением под именем которое вы указали)
Пример:
"!гс voice" – сохранит пересланное голосовое под именем voice.ogg в папку /audios
audio = {
add = '!гс', -- текст сообщения, при котором пересланное голосовое сообщение будет сохранено в базу под указаным именем ("!гс тест" -> "!тест" отправит голосовое)
update = '!гсапдейт', -- триггер, при котором будет обновляться база голосовых сообщений из папки /audios
}
Для корректной работы файлы должны соответствовать требованиям: sample rate 16kHz, variable bitrate 16 kbit/s, длительность не более 5 минут, моно. Конвертировать в такой формат вы можете здесь: https://flts.cc/convertgit
- Генератор смеха (laugh.lua)
Просто генерирует смех из указанных символов, с указанной длиной
laugh = {
trigger = '!смех', -- текст сообщения, при котором будет генерироваться смех
length = {5, 20}, -- минимальная и максимальная длина генерируемого смеха через запятую
letters = {'А', 'Х', 'В'}, -- символы, из которых будет генерироваться смех
}
- Логгер сообщений (logger.lua)
Сохраняет историю сообщений из указанного чата, и отправляет по указанной команде
log = {
addChatTrigger = '!логчат', -- триггер, для включения логгера в чате, в который отправлено сообщение
trigger = '!лог', -- триггер, после которого будет отправлен лог чата
chats = {1, 2, 3}, -- айди чатов, в которых будет работать логгер
maxRecords = 15, -- максимальное количество записей в логгере на один чат
}
- Конвертер в азбуку морзе (morse.lua)
Конвертирует текст в азбуку морзе и наоборот
Использование:
"!морзянка <текст или шифр>" или "!морзянка" с ответом на сообщение, которое нужно конвертировать.
morse = {
trigger = '!морзянка', -- триггер для конвертирования сообщения
}
При наличии вопросов по работе бота можете написать мне в VK: https://vk.me/flitov