На днях наконец-то решил добраться до такой хайповой темы как Docker:
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами. Изначально использовал возможности LXC, с 2015 года применял собственную библиотеку, абстрагирующую виртуализационные возможности ядра Linux — libcontainer.
После того, как бот был написан, прокачан и опубликован (на vscale или на heroku, например) возникает вопрос отслеживания того, как пользователи с ним общаются. Для этих целей можно воспользоваться, например, решением botan.io от Yandex. Botan - обёртка над AppMetric - версии Метрики для мобильных приложений. Платформа позволяет собирать большинство событий бота и отображать их в панели Метрики (со всеми доступными отчётами). Сейчас ботан умеет работать только с ботами для Telegram, но мне этого вполне достаточно.
В предыдущих частях был разработан и улучшен бот, помогающий найти заклинания для Dungeon and Dragons. Теперь требуется разместить бота на какой-либо платформе. Рассмотрим два варианта: vscale.ru и heroku.
vscale.ru Плюсы Простота развёртывания для новичка Отдельный VDS со всеми преимуществами (устанавливай всё, что требуется) Удобная панель для управления Минимальный сервер - 200 рублей в месяц Реферальная программа (при регистрации по реферальной ссылке вам на счёт упадёт 400 рублей) Документация на русском Минусы Платный (от 200 рублей в месяц (на текущий момент)) Отдельный VDS со всеми недостатками (самостоятельное администрирование) На сегодняшний день сервера доступны только в Москве и Санкт-Петербурге Развёртывание Надеюсь, проблем с регистрацией на vscale не возникнет и сразу перейду к главному - к публикации бота.
В предыдущей части был написан бот, который по заданному имени или части имени находит подходящие и показывает пользователю в отдельных сообщениях. В этот раз немного улучшим его: улучшим форматирование, добавим inline- режим и реализуем пару команд.
Улучшаем форматирование Скажу сразу, что Telegram умеет в HTML и Markdown. Но, к сожалению, очень ограничено: если посмотреть документацию, то поддерживается только полужирное начертание, курсив, моноширинный шрифт и ссылки: Markdown:
*полужирный* _курсив_ [ссылка](http://www.example.com/) `строчный моноширинный` ```text блочный моноширинный (можно писать код) ``` HTML:
В этой серии заметок хотел бы немного коснуться данной темы. Серия будет включаться в себя три раздела:
Разработка бота на Go для поиска заклинаний для Dungeon And Dragons Публикация бота на платформе heroku Добавление аналитики использования бота Итак, начнём! Во-первых, нам потребуется сам список заклинаний DnD. Найти его можете в моём bitbucket-репозитории этого бота. Во-вторых, создать новую папку. Например, dndspellsbot. В-третьих, получить ключ для вашего нового бота у служебного аккаунта @BotFatherBot, отправив ему команду /newbot и сохранить полученный в ответ токен в безопасное место.