Как стать автором
Обновить

Telegram Bot на Kotlin: Шпаргалка

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7K

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

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

Оглавление

С чего бы начать...

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

  • Заменяем во всём проекте project_group на свою группу

  • Заменяем во всём проекте project_name на своё название проекта

  • Копируем sample.json как local.config.json

Проект настроен так, что файлы local.* и папки local не попадают в гит индекс (см. .gitignore), поэтому созданный local.config.json не уйдёт в гит без явного указания

Что в конфиге твоём

Базовый конфиг - это json , который имеет несколько основных секций:

  • database - опциональный пункт с настройкой базы данных. Все параметры в нем опциональны, но желательно заполнить хотя бы два из них: driver и url . Подробнее про все параметры:

    • url - JDBC URL для соединения с базой данных. Например, jdbc:sqlite:file:test.sqlite будет использовать sqlite драйвер для хранения бд в файле test.sqlite

    • driver - JDBC драйвер. Например, org.sqlite.JDBC - используем sqlite JDBC драйвер

    • username - имя пользователя для доступа к бд. Может использоваться, например, в postgresql

    • password - пароль пользователя для доступа к бд. Может использоваться, например, в postgresql

    • reconnectOptions - json объект с полями attempts и delay , отвечающий за первое подключение к бд. При запуске в докере база данных может какое-то время инициализироваться и для проверки может понадобиться больше попыток

  • botToken - токен для работы вашего бота

  • plugins - массив, состоящий из полных имен плагинов. Например, таким именем будет dev.inmo.plagubot.plugins.commands.CommandsPlugin

Расширяем функционал

В шаблоне есть модуль replier , который был специально подготовлен как шаблон для плагинов. Как создать свой плагин в проекте:

  • Копируем папку replier с новым именем

  • В папке заменяем replier на название плагина

  • В папке заменяем Replier на название плагина с большой буквы

В модуле у вас будут: плагин, конфиг и build.gradle . Далее в плагине можно будет начать писать логику, конфиг наполнять параметрами плагина, а build.gradle настраивать в плане правил сборки gradle модуля. Подробнее можно прочитать в главе Введение.

Запускаем

Для запуска вам нужно будет актуализировать ваш local.config.json и запустить следующую команду в терминале:

./gradlew run --args="/полный/путь/до/local.config.json"

Далее вы увидите логи запуска бота. Если вы запускаете проект из Intellij IDEA, можно добавить конфигурацию для запуска через Edit configurations -> + -> Gradle с настройкой запуска. Единственное важное замечание для запуска в IDEA - в поле команды у вас должно быть run --args="/полный/путь/до/local.config.json" .

Деплоим

Для деплоя в проекте присутствует Dockerfile и deploy.sh. При этом в поледнем можно настроить адрес, куда докер образ будет выгружаться через указание нужного значения в переменной server . Наиболее интересные варианты:

В остальном весь деплой будет сводиться к запуску ./deploy.sh . Подробнее про деплой можно почитать в главе ...и в продакшн.

Итог

Этот шаблон позволяет быстро начинать разработку нового проекта на базе ботов. Я буду рад предложениям и замечениям как по шаблону, так и по дополнениям статьи :)

Теги:
Хабы:
Всего голосов 3: ↑3 и ↓0+4
Комментарии2

Публикации

Ближайшие события