Git Product home page Git Product logo

lua_vk_modulebot's Introduction

Lua_VK_ModuleBot

⚠️ Внимание ⚠️

На данный момент бот заброшен, и больше не поддерживается

Описание

Это модульный бот для 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

  • Скопируйте ваш токен из адресной строки (никому его не показывайте) alt text

Настройка бота

Для настройки бота необходимо редактировать файл 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

lua_vk_modulebot's People

Contributors

fgff avatar flittis avatar igor725 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

furingleb

lua_vk_modulebot's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.