Больше года назад я написал простого бота на Telegram для русско↔︎казахского онлайн словаря sozdik.kz.

Это был мой первый опыт в этом деле, и будучи комфортным в Питоне, первую версию бота я написал именно на этом языке. С тех пор, однако, бот был полностью переписан, и со старой версией сейчас не имеет практически ничего общего. Более того, с появлением поддержки ботов в Facebook Messenger, я решил попробовать расширить функционал бота и на эту платформу. Сегодня я рад объявить, что весь исходный код для Sozdik Bot доступен публично на GitHub.

Скриншот в Telegram Скриншот в Facebook Messenger

В этом проекте есть несколько вещей, которые делают его действительно интересным:

  • Сервер для бота был написан на ES6 с поддержкой экспериментального синтаксиса.
  • Для добавления статического анализа кода был использован Flow – новый инструмент от Facebook-а.
  • Практически каждая строка исходного кода бота покрыта тестами с помощью Jest. Особенно крутым в этом тест раннере является его инновационная функция Snapshot тестов.
  • Загрузка бота на сервер осуществляется через связку DockerDocker ComposeDocker Machine. Подробнее об этом в другом посте.
  • В качестве вебсервера для бота используется Caddy – современная альтернатива Nginx и Apache, умеющая автоматически настраивать SSL сертификаты через Let’s Encrypt.

Каждая из перечисленных технологий в данный момент развивается крайне стремительно и конечно же заслуживает отдельного поста. Так что следите за обновлениями!

Добавьте Sozdik Bot к себе в Telegram или Messenger и пишите мне с любыми вопросами по поводу бота.