Краткое описание
Скрипт предназначен для использования на HUB-серверах RusHub, Verlihub, PtokaX 0.4.x.x и Eximius. Требуется наличие LUA 5.1.x. При желании можно добавлять любое количество нужных локализаций для любых других серверов. Для этого скрипт использует собственный API, который обрабатывается соответствующими файлами локализации. Имеется встроенный движок поддержки плагинов (расширений), которыми реализовывается основной функционал бота и с помощью которых он может расширяться. Дополнения, замечания, пожелания и поддержка приветствуются. Для использования на таких разных платформах в скрипте предусмотрена соответствующая настройка локализации.
Приветствуется использование скрипта на OpenSource операционных системах (Linux, BSD и т.д.).
ЗАПРЕЩАЕТСЯ использовать скрипт для пропаганды алкоголя, табака, наркотиков, извращений и разврата, религии, искажения Наследия Руси и её изначальной Культуры! А также для потакания подобной пропаганде и поощерения. Действия, препятствующие адекватным просветительским инициативам ЗАПРЕЩЕНЫ.
Основные возможности и функции движка:
- Исключения (таблица ников-исключений);
- Перезапуск при ошибке;
- Лог последних сообщений общего чата с отправкой пользователям;
- Горячая перезагрузка бота;
- Информационное приветствие (параметры);
- Текстовые файлы (имитация команд);
- Незаметная заглушка (замаскированный GAG);
- Shell и LUA консоль;
- Псевдонимы команд;
- Разрешённые символы ников;
- Время и дата в списке пользователей;
- Дата первого запуска;
- Возможность составлять собственное меню;
- Система плагинов, подключаемых к скрипту с возможностью расширения;
- Возможность отправки меню Бота и Хаба по требованию;
- Возможность добавлять свой код для выполнения до или после загрузки плагинов при запуске бота (удобно для замены значения констант, переменных, функций и прочих составляющих Бота без изменений кода в самих файлах);
- Возможность менять стандартные команды в файле Commands.lua.
Входящие в дистрибутив плагины:
- Uvedomlenie o komandah.CmdSpy - Уведомления об используемых командах. Эта функция позволяет пользователям, чей класс не ниже разрешённого в настройках функции, получать от бота уведомления о командах, которые вводят пользователи. Функция индивидуальная по желанию. Есть возможность заносить команды, которые не должны подлежать просмотру уведомителем, в специальный список исключений. Получать уведомления можно лишь о командах тех пользователей, которые не выше Вас по рангу. Также можно отключить получение уведомлений;
- Log chata.ChatLog - Лог чата, приватных сообщений, входа/выхода (подключений). Ведёт запись сообщений в общем чате и привате с указанием времени, ника и IP-адреса (и адресата для приватных сообщений). Также ведёт лог входа/выхода пользователей и их шары. Каждые сутки создаётся новый файл лога. Логи общего чата записываются в папку CHATLOG, приватные в папку PMLOG, а входа/выхода в папку IOLOG в папке скрипта. Можно задавать ники-исключения, логи которых не будут записываться, или ники пользователей для обязательной записи логов. Если активна функция лога приватных сообщений, то пользователю при входе на Хаб выдаётся соответствующее предупреждение. Для чтения логов с необходимым содержимым можно задавать фильтр чтения;
- Avtoregistracia i akkaunt.Autoregistration and account - Авторегистрация и управление аккаунтом. У Бота имеется возможность для пользователей производить автоматическую регистрацию на Хабе. Если функция автоматической регистрации отключена, то запрос на регистрацию от пользователя поступает в ОпЧат администрации Хаба. Пароль проверяется на содержание недопустимых символов и длину. Класс для регистрации определяется автоматически. Также имеется возможность сменить свой ник (или ник произвольного зарегистрированного пользователя) или пароль без удаления регистрации. Есть функция проверки регистрирующихся на "человечность" (защита от роботов, CAPTCHA). Имеется возможность задавать минимальную шару пользователей для авторегистрации;
- BASIC - Базовый плагин:
- вкл/выкл общий чат - Операторы могут выключать и включать снова возможность пользователям писать в общий чат;
- создание и удаление текстовых файлов - Можно создавать и удалять текстовые файлы, которые хранятся в папке txt бота;
- проверка ников - Эта функция включает проверку ников пользователей на соответствие правилам. Режимы от 0 до 7;
- чат только для зарегистрированных - Эта функция служит для запрещения незарегистрированным пользователям пользоваться общим чатом до тех пор, пока они не зарегистрируются;
- приват только для зарегистрированных - Эта функция служит для запрещения незарегистрированным пользователям пользоваться приватными сообщениями до тех пор, пока они не зарегистрируются;
- скачивание только для зарегистрированных - Эта функция служит для запрещения незарегистрированным пользователям пользоваться скачиванием файлов (принятие сервером поисковых запросов и запросов на соединение);
- проверка незарегистрированных пользователей в чате на роботов - Эта функция служит для проверки незарегистрированных пользователей на "человечность". При первой попытке воспользоваться чатом бот просит ввести пароль, который изображён на картинке. В случае правильного ответа дальнейшее пользование чатом разрешается;
- проверка незарегистрированных пользователей в привате на роботов - Эта функция служит для проверки незарегистрированных пользователей на "человечность". При первой попытке воспользоваться приватными сообщениями бот просит ввести пароль, который изображён на картинке. В случае правильногоответа дальнейшее пользование приватом разрешается;
- плохие ники - Эта функция служит для проверки ников пользователей на соответствие шаблонам, заданным в списке плохих ников. Если ник пользователя соответствует одному из имеющихся в списке плохих ников шаблону, то он не может войти на Хаб, пока не поменяет свой ник;
- обязательное содержимое ника - Эта функция служит для проверки ников пользователей на наличие в них необходимых шаблонов содержимого ника (противоположная функции плохих ников);
- минимальный объём шары пользователя для скачивания - Эта функция служит для запрета скачивания файлов (поисковые запросы и запросы на соединение) пользователям, чей объём файлов меньше минимально установленного;
- запрет одинаковых приватных сообщений - Функция служит для запрета отпexceeds the limitравки одинаковых приватных сообщений чаще разрешённого количества в минуту;
- разрешённое число получателей приватных сообщений в минуту - Функция служит для установки ограничения по числу получателей приватных сообщений в минуту от одного пользователя.
- Antireklama.AntiAD - Антиреклама. Сообщения в общий чат, личные в приват, поисковые запросы или описания пользователей просматриваются функцией антирекламы по шаблонам, занесённым в список рекламы (если она активна). В случае обнаружения в сообщении соответствия шаблону в массиве списка рекламы, если этот текст не соответствует шаблонам-исключениям, текст не пропускается или нарушитель наказывается баном, в зависимости от режима антирекламы. Есть функция проверки описаний пользователей на рекламу. Всего режимов 4. Можно загружать текстовые шаблоны из текстовых файлов простых шаблонов для всех типов антирекламы. Есть возможность задавать для каждого шаблона непроверяемый класс;
- Triggery i anticapslok.Triggers and anticapslock - Триггеры, Бот-Триггеры, ЛС-Триггеры, роботы, антикапслок. Триггеры реагируют на текст в чате или привате и имеют широкий ассортимент реакций. С помощью триггеров можно создавать простые реакции бота на текст в чате и привате с ответом, создавать команды с различными функциями вплоть до получения и форматирования web-страниц из интернета, записи файлов и многое другое. Событие (текст), на который должна происходить реакция, задаётся с помощью кратких шаблонов. Бот-триггеры похожи на триггеры, только привязаны к определённому роботу. ЛС-триггеры похожи на триггеры, только специализированны на личных (приватных) сообщениях. Роботы представляют собой ботов, которые видны в списке пользователей. Созданным роботам можно присваивать бот-триггеры. Это удобно, когда необходимо сделать сервис, который может принимать информацию в виде приватных сообщений. Антикапслок служит для автоматического преобразования символов в нижний регистр, если
пользователь злоупотребляет прописными буквами. Может как просто предупреждать пользователя в чате (выполняются ответы из зарезервированного триггера с индексом 1) или просто автоматически меняет регистр;
- Avtozameny.Autoreplaces - Автозамены и антифлуд. Эта функция служит для автоматической замены текста в чате по списку заданных шаблонов;
- Konfigurator Menu.MenuConfig - Редактор файлов меню. Файлы меню бота (BotMenu.lua), Хаба (HubMenu.lua) или плагинов (Menu.lua) можно конфигурировать через диалоговый конфигуратор файлов меню этого плагина. Диалог с пользователем осуществляется через ЛС Экзекутора (приват);
- Antimat - Антимат. При нахождении в тексте сообщения чата слов, соответствующих шаблонам антимата, этот участок текста заменяется на один из вариантов ответа таблицы sMatCutter. Функция антимата не распространяется на пользователей, которые занесены в исключения. Есть функция бана за превышение разрешённого лимита матных слов за заданный период;
- Seti.Nets - Сети, правила подсетей, префиксы. Это функция для проверки IP-адреса или хоста на наличие его подсети в таблице сетей. Бот сообщит в чат о принадлежности адреса к той или иной сети. Также есть функция проверки IP-адреса у подключающихся пользователей и ограничения доступа согласно списку сетей. Также можно посмотреть список пользователей, чей IP не находится в списке сетей. Также имеется функция проверки префиксов ников у пользователей на соответствие заданным префиксам для диапазонов подсетей. Если у пользователя обнаружен префикс (в начале ника внутри квадратных скобок), то его IP-адрес проверяется на принадлежность списку сетей и заданным для неё префиксам. Если данный префикс не допускается для этого диапазона (и префиксы для него заданы), то пользователь не может войти. Если у пользователя имеется префикс, который задан для какого-либо диапазона, которому не принадлежит IP пользователя, то пользователь не может войти. Имеется возможность (при наличии плагина
дополнительных описаний) добавлять префикс подсети пользователя в его описание. Также имеется функция ограничения запросов на поиск и соединения по сетям;
- Shpiony.SpyFinder - Поиск шпионов. Уведомления о входе. Этот плагин служит для уведомления операторов при входе на Хаб пользователя с IP-адресом, заранее занесённым в специальный список шпионов с пояснением. Производится поиск пользователей с IP-адресами из списка с уведомлением операторов о результатах поиска;
- Kalkuliator.Calkulator - Калькулятор. Плагин представляет из себя простой калькулятор, который умеет выполнять основные действия с двумя числами или вычислять результат простых выражений;
- Proverka ogranichenia skorosti.CheckSpeedLimit - Проверка ограничения скорости, правила для слотов. Эта функция не ограничения скорости у пользователей, а функция просмотра тегов пользователей на факт ограничения ими скорости отдачи. Можно установить минимально допустимое ограничение скорости, ниже которого пользователь будет наказан временным баном. Также можно проверять на отсутствие ограничения (если наличие ограничения скорости является обязательным). Можно установить обязательное минимальное ограничение скорости, ниже которого пользователь будет наказан временным баном. Есть правила для количества слотов;
- Typi akkauntov i chistka bazy.AccountsType and cleaning - Типы аккаунтов, чистка базы регистраций. Функция типов аккаунтов позволяет задать для своего аккаунта статический или динамический тип. При регистрации на Хабе автоматически создаётся аккаунт с динамическим типом. Если перевести свой аккаунт на статический, то при входе на Хаб будет производится сверка зарегистрированного IP-адреса с текущим. Если они не совпадают, пользователь не пропускается на Хаб. Таким образом, пользователи со статическим IP-адресом при желании исключить возможность входа под их ником с другого адреса, могут перевести свой аккаунт на статический тип. Функция очистки базы регистраций служит для удаления зарегистрированных пользователей, которые не заходили на Хаб определённый промежуток времени ("аккаунты-призраки" или "мёртвые души"). При этом имеется возможность задать период неактивности пользователя перед удалением его аккаунта, возможность добавления пользователей в "неочищаемый" список. Плагин также
сохраняет язык зарегистрированных пользователей;
- Obiavleniya.Announcements - Объявления и публикации. Система объявлений служит для вывода сообщений из списка объявлений в чат с заданной для каждого объявления периодичностью;
- Dinamicheckie topiki.DynTopics - Динамические топики. Топики - это система динамических топиков, которые выводятся в строке заголовка окна программы-клиента, сменяясь один раз в заданный период;
- Zhaloby.Complaints - Жалобы. Этот плагин служит для автоматического наказания нарушителей порядка на Хабе, на которых поступают жалобы от пользователей. Когда на определённого пользователя поступает заданное количество жалоб, пользователь временно банится, а счётчик жалоб на него обнуляется;
- Dopolnitelnye opisaniya.AddDescription - Дополнительные описания и метки. Эта функция служит для добавления в начало описания пользователей дополнительного описания, которое задаётся либо в соответствии с классом пользователей, для каждого класса отдельно, либо заданные оператором. Если функция активна, то один раз в минуту будет производится отправка дополнительных описаний пользователям Хаба. Также можно задавать для пользователей другое описание (заменять оригинальное);
- Skrytie polzovateli.HiddenUsers - Скрытые пользователи. Данная функция предназначена для скрытия своего ника из списка пользователей Хаба. Возможно скрытие и любого пользователя по желанию оператора. Раз в минуту пользователи из списка автоматически скрываются;
- Poisk IP.IPFinder - Поиск пользователей по IP-адресу. Функция поиска пользователей на Хабе с указанным IP-адресом или шаблоном;
- Skazat useru v chat.SayToUser - Сказать пользователю в чат персонально. Эта функция позволяет написать в общий чат так, чтобы Ваше сообщение было видно только указанному пользователю;
- Komnaty.Rooms - Комнаты. Плагин для создания комнат (чатов) с разными параметрами. Имеется возможность создавать персональные комнаты пользователями. Система "тюрьмы" позволяет запирать некоторых пользователей в комнатах;
- Limit poiska po TTH.TTH search limit - Лимит поиска по TTH. Ограничение поиска по TTH на Хабе. Устанавливается время, в течение которого разрешается один поисковый запрос (в минутах);
- Zapret dvoynikov IP.SingleIPs - Запрет нескольких пользователей с одним IP-адресом. Этот плагин служит для запрета входа на хаб нескольким пользователям с одного IP-адреса. Также есть возможность проверять лишь определённые IP-адреса. Есть возможность добавлять пользователей в исключения. Можно отключить проверку, если нужно проверять лишь определённые IP-адреса;
- Obnovlenie i novosti Ekzekutor.News and Updates - Проверка обновлений. Получает по требованию информацию с официального сайта проекта и показывает текущую версию скрипта, доступную для скачивания, обновления плагинов и новые плагины, новости с сайта;
- Konvertacija profiley.Profiles convertation - Конвертация профилей. Этот плагин служит для преобразования профилей в командах меню в соответствии с заданными параметрами преобразования. Возможно преобразовать сразу все файлы меню, применяя заданные администратором параметры преобразования (Бот попросит ввести профили, которые должны соответствовать текущим профилям после преобразования), а также задать разрешённые профили для любой команды отдельно;
- Rekordy.Hub records - База рекордов Хаба. Плагин служит для фиксирования и сохранения данных о рекордах по ряду параметров. Это: максимум пользователей на Хабе; максимальное среднее значение пользователей за сутки; максимальная шара Хаба; максимальная шара пользователей и некоторые другие. При этом сохраняются данные о значении рекорда, данные о пользователе, времени и прочие данные. Также есть функция выгрузки данных о рекордах в файл по шаблону (например, для WEB);
- Poddelki.FakeList - Известные подделки (фэйки). Плагин служит для собирания базы обнаруженных поддельных файлов с поддельным названием (когда, например, фильм называется не так, как на самом деле). Такие обнаруженные подделки заносятся в список и пользователи, качающие такие файлы, предупреждаются об этом. Также можно проверить интересующий магнит (или TTH) на наличие в базе подделок. О всех найденных подделках можно уведомлять операторов Хаба через специальный сервис. Имеется возможность выгружать информацию о подделках в файл по шаблону (например, в HTML файл для размещения на WEB сервере);
- Privetstviya.Greetings - Приветствия и прощания (сообщения в чат). Этот плагин служит для вывода в чат текста публичного приветствия или прощания, когда входит или выходит пользователь, для которого оно установлено, или активно приветствие или прощание для его класса;
- Pechkin.Postman - Почта Хаба (оффлайн-сообщения). Плагин предназначен для отправки сообщений (писем) пользователям, который нет на Хабе. При входе на Хаб пользователь получит сообщение. Также можно отправлять письма всем пользователям или конкретным группам по классам;
- Napominanija.Memories - Напоминания: таймер и будильник. Плагин служит для создания напоминаний на какое-либо время. Это может быть как таймер с заданным периодом в минутах, так и "будильник", с заданным временем в формате чч:мм. По истечении времени таймера (или подходе времени будильника) пользователю приходит сообщение с текстом, который он задал в качестве напоминания для этого события;
- Golosovanija.Votings - Голосования. Плагин служит для создания на хабе голосований по заданным темам с заданными вариантами ответов. Пользователи могут единожды проголосовать за один из них;
- Stavki na kolichestvo polzovateley.Users count stakes - Игра "Ставки на количество пользователей". Плагин представляет собой игровую систему ставок на количество пользователей на Хабе в заданный момент времени. Приём ставок начинается в заданное время на заданный период. В определённый заданный момент времени подводятся итоги ставок и пользователь (или пользователи), которые были ближе всего к правильному ответу, получают очки и считаются победителями данного розыгрыша. Этот процесс автоматический, по заданному расписанию, но можно вручную продлить (перезапустить) приём ставок на желаемый период;
- Igra Soberi slovo.Collect word game - Игра "Собери слово" (Анаграммы). В этой игре игрокам предлагается составить слово из анаграммы с периодическими подсказками. Первый правильно ответивший получает очки (в зависимости от количества подсказок и длины слова);
- Igra XO.Game XO - Игра "Крестики-нолики". В этой игре игрокам предлагается сыграть в крестики-нолики с компьютером или друг-с-другом;
- Igra Chto-Gde-Kogda.What-Where-When game - Игра "Что? Где? Когда?" (Викторина). Это игра, где игрокам задаются по очереди вопросы с подсказками. Первый правильно ответивший получает от 3 до 1 очка (в зависимости от количества подсказок);
- Igra Morskoy Boy.Game Sea War - Игра "Морской бой". В этой игре игрокам предлагается сыграть в морской бой с компьютером или друг-с-другом;
- WebInform - Веб-сервисы (WebInform) или триггеры по таймеру. Этот плагин является дополнением к плагину триггеров. Представляет собой сервис с выполнением по таймеру (или расписанию) заданной строки триггера. Имеется возможность принимать индивидуальные подписки на получение информации от пользователей. Плагин назван так, потому что вэб-сервисы наиболее подходящая функция для этого плагина. Но по сути это лишь выполнение строки триггера по расписанию или таймеру. И действия могут быть практически любыми, тоесть всё, что можно сделать с помощью триггеров. Имеется возможность проверять текст плагином антимата (при его наличии);
- Seti po classam.Nets by classes - Ограничения по классам для подсетей (приложение к плагину сетей). Этот плагин служит для установления разного рода ограничений по профилям для пользователей, чьи IP-адреса принадлежат диапазонам из списка подсетей плагина сетей. Ограничениями могут быть: подключение к Хабу, общий чат, личные сообщения, запросы поиска и соединения (скачивание);
- Koljady Dar - Коляды Дар. Славянский календарь. Именинники. Плагин является конвертером григорианских дат чужеземного календаря в исконные Славянские даты по древнему Славянскому летоисчислению. УБЕДИТЕЛЬНАЯ ПРОСЬБА не отключать этот плагин! Также плагин совмещает функции базы именинников (дней рождений пользователей);
- Universalnaja Doska.Universal Board - Универсальная доска объявлений. Плагин представляет собой универсальную конфигурируемую систему объявлений по категориям. Категории настраиваются, можно создавать категории, подкатегории и удалять их. Есть возможность присваивать тем или иным категориям модераторов из числа пользователей. Таким образом, область применения плагина довольно широка. Помимо обычных объявлений по категориям, плагин можно применять как микрофорум, систему микроблогов, анонсов новинок и т.д. Есть возможность активировать выгрузку контента доски объявлений в файлы по шаблонам (например для публикации на web-сервере). Есть система поиска объявлений по ключевым параметрам и система автоматического удаления устаревших объявлений;
- Ankety.Questionnaires - Анкеты. Анкеты хранят различную информацию о пользователях. У администрации имеется возможность поместить анкету пользователя в чёрный список. При этом анкета будет доступна для просмотра только автору и администрации до устранения причин запрета. Имеется поиск анкет по различным параметрам и система рейтингов. Также есть чистка базы анкет от незарегистрированных аккаунтов;
- Universalnyj perevodchik.Universal translator - Универсальные сервисы перевода. Плагин позволяет создавать комнаты для автоматического перевода с языка участников комнаты на язык комнаты, либо на язык каждого из участников. Комната может быть простым переводчиком с языка пользователя на язык комнаты. Есть возможность автоматически переводить текст в чате с языка пользователя на язык по умолчанию и обращения других пользователей к нему. Имеется возможность задавать любые выбранные направления перевода;
- Zapret proxy.Socks5 forbid - Запрет соединения с хабом пользователей через прокси Socks5. Плагин просматривает тэги пользователей и запрещает вход пользователям с типом соединения Socks5. Время бана и разрешаемые профили настраиваются;
- Zapret TTH v share.Forbidden TTH share content - Поиск запрещённого содержимого в шарах пользователей по списку TTH. Плагин производит поиск файлов по списку TTH и кикает пользователей, у которых найдены эти файлы. Время бана и параметры поиска настраиваются. Имеется возможность загружать список TTH из файла и сохранять текущую базу в файл. Имеется возможность вести лог найденных TTH.
- Connect.BlackList - Чёрный список подключений. Плагин запрещает подключение к хабу с заданных IP-адресов или IP-диапазонов так, словно хаб отключен.
- Zapret zakachek.Download forbiddance - Запрет файлообмена пользователям. Плагин служит для запрета файлообмена (запросы на соединение и поиск) для указанных ников или IP-адресов.
И прочие функции…
Плагины возможно отключать, задавать им нужный приоритет (очередь обработки). Возможно добавлять практически любые плагины. Это очень просто. К тому же плагины работают несколько быстрее, чем аналогичные отдельные скрипты, так как все плагины уже получают обработанные данные от движка плагинов Бота. Так можно передать обработку на внешние сервисы, например PHP, .NET и т.п. Про то, как самому писать плагины, будет рассказано ниже.