Записи, связанные с тегом «скрипт»

Автоматизация запуска бота на VDS

На сей раз я расскажу о собственном опыте автоматического запуска бота на сервере с установленным Debian, о чем мы говорили в прошлой статье.

В чем состоит проблема?

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

Я решил эти вопросы с помощью небольшого скрипта, который привожу ниже:

Запуск скриптов происходит в нескольких, специально предназначенных для этого местах. Исходя из этого различается и назначение скриптов. В версии 0.4 с помощью скриптов есть возможность выполнять следующие функции:

  • Функции перед запуском бота, и перед его остановкой. Называются соответственно: "./services/имя_сервиса/scripts/start.bsh", "./services/имя_сервиса/scripts/stop.bsh".
  • Скрипт, полностью реализующий всю логику обработки команд вашего бота (анекбот, автоответчик, электронный магазин, болтун, викторина и т.п.). Называется соответственно: "./services/имя_сервиса/scripts/main.bsh".
  • Расширения команд для чат-бота. Каждый скрипт реализует отдельную команду. Находятся в папке: "./services/имя_сервиса/scripts/command/*.bsh". Распознаются и устанавливаются в качестве обработчиков команд при запуске бота.
  • Обработка сообщений чата и их изменение. Скрипт вызывается перед попаданием строки в общий чат, и может модифицировать сообщения. Находится в папке "./services/имя_сервиса/scripts/messages.bsh"
  • Обработка http-запросов. Можно создавать свои веб-странички, или веб-сервисы для обработки запросов от внешних систем. Скрипты находятся в папке: "./scripts/http/*.bsh". Каждый скрипт вызывается по своему имени в http-запросе. Например, для скрипта test.bsh достаточно набрать "http:\\localhost:8888\test".

Все скрипты читаются "на лету". Кешируются в памяти. При модификации файла на диске происходит его повторное чтение. Таким образом, возможно обновление функционала бота в режиме on-line без остановки и перезагрузки (разумеется за исключением тех скриптов, которые выполняются только один раз - при запуске бота).

Что такое скрипт?

Как говорит наша любимая педивикия: скри́птовый язы́к (англ. scripting language, в русскоязычной литературе принято название язык сценариев) -- язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Сценарии обычно интерпретируются, а не компилируются.

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

В качестве языка для написания скриптов используется библиотека BeanShell, тонкости работы с которой можно посмотреть на ихнем сайте.

Пишем свой первый скрипт. Итог.

И так. В прошлой статье мы разобрали исходные тексты бота и определили как проще всего создать свой скрипт "списав" его с конкретного примера в исходниках. Приступим.

Пишем свой первый скрипт. Начало.

 С чего нужно начинать написание скрипта? На мой взгляд, любой кто решил написать скрипт должен четко понимать следующее:
  • Что он делает. Каков будет конечный результат.
  • Ясно понимать что делает каждая строчка написанного им скрипта.
  • Поискать решение аналогичных задач в исходниках или других проектах.
  • Возможно, переписать все по-своему :)
1
Loading

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

Хостинг для чата

Рейтинг@Mail.ru службы мониторинга серверов