Созданный: 2026/07/02 19:41:27 America/Chicago
К: admin
Изменено: 2026/07/03 16:24:56 America/Chicago
К: admin

Эта библиотека собирает скрипты Lua, написанные для хабов Verlihub. Каждый скрипт добавляет одну небольшую функцию хаба без изменения исходного кода Verlihub C++ или компиляции собственного плагина.

Используйте эти статьи для ботов отображения, вспомогательных команд, синхронизированных сообщений, записей в списках пользователей, помощников проверки и небольшой автоматизации. Оставляйте тяжелую работу за пределами процесса хаба и используйте Lua только для поведения хаба, которое должно выполняться внутри Verlihub.

Цель этой библиотеки

Библиотека существует для того, чтобы владелец хаба мог просмотреть скрипт, понять, что он меняет, скопировать его в ожидаемый каталог, настроить документированные настройки, загрузить, протестировать и снова отключить без догадок.

В каждой статье сценария должно быть указано:

  • Что делает скрипт.
  • Какую Verlihub функцию он меняет или добавляет.
  • Создает ли он бота, команду, таймер, перехватчик, запись в списке пользователей или помощник проверки.
  • Куда следует поместить файл сценария.
  • Как скрипт загружается, перезагружается, выгружается или отключается.
  • Какие настройки безопасно редактировать.
  • От какого разрешения плагина или хаба Verlihub зависит скрипт.
  • Известные ограничения, примечания к версии и производственные предупреждения.

Скрипты в этой библиотеке должны оставаться небольшими, читаемыми и иметь контроль версий. Один файл Lua должен выполнять одну работу. Не смешивайте бот-часы, команду правил, проверку на спам и очистку базы данных в одном файле, если в статье не объясняется, почему эти действия должны осуществляться вместе.

  • Используйте одну основную цель для каждого сценария.
  • Размещайте четкие комментарии в верхней части файла.
  • Сгруппируйте настраиваемые значения вверху.
  • Не указывайте жестко кодированные частные пути, если они не объяснены в статье.
  • Избегайте ненужной записи в базу данных.
  • Избегайте блокировки сетевых вызовов из событий хаба.
  • Избегайте тяжелых циклов внутри перехватчиков входа в систему, чата или списка пользователей.
  • Проясните поведение при запуске и завершении работы.
  • Документируйте команды загрузки, перезагрузки и выгрузки.

Для производственных хабов обычно легче отлаживать, отключать и заменять сценарии меньшего размера, чем один большой файл, управляющий несвязанным поведением хаба.

Предлагаемый заголовок сценария

Начинайте каждый скрипт с короткого блока комментариев. Заголовок должен сообщить следующему оператору, что это за файл, прежде чем скрипт коснется активного хаба.

-- Script: time.lua
-- Purpose: Displays a clock-like bot entry in the Verlihub user list.
-- Scope: User-list display only.
-- Author: PWiAM
-- Notes: Test on a private hub before production use.

Рекомендуемый формат статьи сценария

Каждая дочерняя статья в этом разделе должна иметь одинаковую форму, чтобы сценарии можно было быстро сравнивать и просматривать.

  1. Обзор.
  2. Требования.
  3. Установка.
  4. Конфигурация.
  5. Загрузка скрипта.
  6. Тестирование.
  7. Выгрузка или отключение.
  8. Поиск неисправностей.
  9. Полный сценарий.
  10. Связанные страницы.

Установка скриптов

Точное местоположение зависит от пути установки Verlihub, но пользовательские файлы Lua должны находиться в каталоге, принадлежащем пользователю службы, запускающему хаб.

sudo mkdir -p /usr/local/etc/verlihub/lua
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod 750 /usr/local/etc/verlihub/lua

Затем поместите каждый скрипт в этот каталог:

/usr/local/etc/verlihub/lua/time.lua

Если ваша служба работает под другим пользователем, измените владельца этой учетной записи. Не используйте chmod 777 /usr/local/etc/verlihub/lua. Файлы Lua запускаются внутри процесса хаба, поэтому доступ на запись принадлежит только доверенным администраторам.

Загрузка и перезагрузка скриптов

Скрипты Lua требуют, чтобы сначала был установлен и включен плагин Lua. Если плагин не загружен, просмотрите родительскую статью по настройке Lua перед загрузкой файлов сценариев.

Полезные проверки плагинов включают в себя:

  • !pluglist
  • !lstplug

Используйте рабочий процесс с небольшими изменениями при редактировании живого сценария:

  1. Сохраните резервную копию текущего рабочего файла.
  2. Измените одну настройку или одну функцию.
  3. Перезагрузите только этот скрипт, если ваша сборка его поддерживает.
  4. Проверьте вывод хаба и журналы Verlihub.
  5. Быстро вернитесь, если пользователи видят ошибки, дубликаты ботов или повторяющиеся сообщения чата.

Если команды перезагрузки скрипта недоступны в вашей сборке Verlihub, перезапустите или перезагрузите плагин Lua в соответствии с командами управления плагинами вашего сервера.

Безопасное тестирование сценариев

Протестируйте сценарии Lua в частном хабе или в окне тихого обслуживания, прежде чем использовать их в рабочей среде.

  • Убедитесь, что скрипт загружается без синтаксических ошибок.
  • Убедитесь, что это не заполняет основной чат.
  • Убедитесь, что он не создает дубликатов ботов или повторяющихся записей в списке пользователей.
  • Убедитесь, что после перезагрузки он ведет себя правильно.
  • Убедитесь, что после перезапуска хаба все работает правильно.
  • Подтвердите, что операторы могут быстро отключить его.
  • Для командных сценариев протестируйте обычные пользователи и учетные записи операторов.
  • Для синхронизированных сообщений или записей в списке пользователей проверьте интервал, чтобы сценарий не создавал шума или нагрузки.

Указания по производственной безопасности

Код Lua выполняется внутри процесса хаба. Плохой скрипт может повлиять на чат, вход в систему, обновление списка пользователей или отключение плагина.

Избегать:

  • Бесконечные циклы.
  • Длительный сон внутри обработчиков событий.
  • Чтение больших файлов во время пользовательских событий.
  • Блокировка внешних HTTP-запросов.
  • Тяжелые запросы к базе данных из чата или перехватчиков входа в систему.
  • Повторные широковещательные сообщения без ограничений.
  • Скрипты, которые невозможно выгрузить чисто.

Предпочитать:

  • Небольшие обработчики событий.
  • Очистите значения конфигурации.
  • Консервативные таймеры.
  • Простая логика команд.
  • Ведение журнала только тогда, когда оно дает оператору полезную информацию.
  • Легкий откат.

Если задача выполняется долго, переместите ее за пределы Verlihub и позвольте Lua запустить или отобразить результат.

Контроль версий

По возможности сохраняйте пользовательские скрипты в Git. Небольшого репозитория в каталоге скриптов достаточно для многих хабов.

cd /usr/local/etc/verlihub/lua
git init
git add .
git commit -m "Initial Verlihub Lua scripts"

Прежде чем редактировать производственный скрипт, проверьте, что уже изменено:

git status
git diff

После тестирования изменений:

git add time.lua
git commit -m "Update time.lua clock display"

Это дает следующему оператору историю изменений и возможность быстрого отката.

Доступные сценарии

time.lua Verlihub скрипт часов списка пользователей создает небольшую запись в списке пользователей, похожую на бота, которая отображает текущее время.

Используйте его, когда хабу требуется видимая запись часов без запуска отдельного процесса бота или внешней службы. Это первый поддерживаемый пример в этой библиотеке, и его можно использовать в качестве образца для других сценариев, ориентированных на отображение.

Добавление дополнительных скриптов

Новые сценарии следует добавлять в качестве дочерних статей в этом разделе, а не вставлять на эту индексную страницу. К хорошим кандидатам относятся:

  • Скрипт приветственного сообщения.
  • Скрипт напоминания правил.
  • Командный сценарий помощника оператора.
  • Скрипт планового анонса.
  • Скрипт отображения количества пользователей.
  • Скрипт-помощник по борьбе со спамом.
  • Командный сценарий информации о хабе.
  • Скрипт уведомления о режиме обслуживания.

Каждая новая статья должна включать примечания по установке, значения конфигурации, этапы тестирования, этапы выгрузки и полный список сценариев.

Related Pages

Родительская Страница