Need help with rt-bot?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

radio-t
130 Stars 53 Forks 846 Commits 3 Opened issues

Description

Мета-репо для движения "создай своего бота"

Services available

!
?

Need anything else?

Contributors list

Мета-репо для движения «создай своего бота»

Build Status

Боты для чата подкаста Радио-Т

  • Каждый бот представляет из себя полностью законченный микросервис с единой точкой входа
    /event
  • /event
    вызывается для любого сообщения через
    POST
    с телом
    {text: сообщение, username: id пользователя, display_name: имя пользователя}
    (json)
  • Бот может на это реагировать 2мя способами:
    • вернуть 417 (Expectation Failed) если ему нечего сказать на сообщение
    • вернуть 201 и body
      {text: сообщение, bot: имя/id бота}
      (json). Техт может быть markdown. EOL должны быть представлены как строки
      \n
      (в json должно быть
      \\n
      ). Заголовок Content-Type в ответе должен быть
      application/json
      . В чат текст сообщения вставляется инлайном после имени бота, поэтому если в сообщении есть сложная разметка (например таблицы), то стоит начать сообщение с
      \n\n
  • Бот оформляется как контейнер с прилагаемым docker-compose.yml, для запуска которого должно хватить
    git clone ... && docker-compose up -d
  • Бот (внутри контейнера) слушает на порту
    8080
  • Бот может вызывать внешние сервисы, если есть такая необходимость.
  • Нежелательно тянуть за собой внешние зависимости, типа баз данных, редисов и прочего.
  • На запрос бот должен ответить за какое-то фиксированное время. Предлагаемый максимум 5 сек.
  • Бот не получит след. сообщения пока не ответит на предыдущее.
  • Бот можно писать на всем, чем хотите/умеете. Однако, результат должен быть разумен по размеру контейнера и используемым ресурсам.
  • Бот должен быть полностью собираемым вашим Dockerfile. Не надо коммитить собранные бинарники и/или jar и прочее в этом роде.
  • UPD: После разговора с авторами решили добавить
    GET /info
    (200) с ответом
    {author: name, info: blah, commands: [xx, yyy]}
  • UPD: Бот не будет получать свои собственные сообщения
  • UPD: Для бота должен быть определен конфиг в файле
    bot-spec.yml
    . Он используется для автоматического тестирования бота.

Идеи для полезных и забавных ботов

  • ведение псевдо-разумной дискуссии по варианту сири/алексы/гугла
  • ответы на узкие вопросы, типа "какая погода в Москве сегодня"
  • функции поиска по подкасту (шоунотам и логам)
  • все остальное, что можете придумать

Идеи для вредных ботов, которые не будут приняты

  • разные бессмысленные гифки, особенно "анимационные"
  • болтливые боты, которые реагируют на все, или слишком многое
  • те, которые падают на ошибки и вместо того, что задумал автор, показывают эти ошибки в чат.
  • разговаривающие матом или другим "крутым" слэнгом
  • которые делают тоже самое, что и другие, уже реализованные боты

Зачем вам это надо?

  • для развлечения
  • для добавления в чат чего-то полезного
  • для славы и почета :) Мы расскажем о каждом вашем боте который будет принят и поощрим авторов, как минимум добрым словом.

Как в этом поучаствовать?

  • посмотреть на то, что сделали другие
  • почитать что пишут
  • сделать PR со своим ботом в отдельном каталоге. Это хозяйство должно собираться и подниматься локально, через compose build + up
  • в этом PR не забыть изменить
    etc/nginx.conf
    и
    docker-compose.yml
    для вашего бота
  • Приложить README.md для своего бота
  • Не забыть определить конфиг
    bot-spec.yml
    .

Как проверить бот в реальной жизни?

  • Ваш бот будет установлен на https://bot.radio-t.com
  • Можно убедиться, что он зарегистрирован сделав
    GET
    на https://bot.radio-t.com/list
  • Можно к нему обратиться, послав
    POST
    на https://bot.radio-t.com/api/:botname/event и это прийдет в ваш /event
  • Или послать
    GET
    на https://bot.radio-t.com/api/:botname/info и это прийдет в ваш /info ``` > http POST https://bot.radio-t.com/api/hello/event text=Привет username=user123 display_name=Вася HTTP/1.1 201 Created Connection: keep-alive Content-Length: 31 Content-Type: application/json;charset=UTF-8 Date: Thu, 10 Nov 2016 19:46:38 GMT Server: nginx Strict-Transport-Security: max-age=63072000; includeSubdomains; preload

{ "bot": "hello", "text": "Hello!" } ``

- Проверить как это работает end-to-end можно и **нужно** [в тестовом чатике](https://gitter.im/umputun/test)
- UPD: запустить весь проект можно локально через
run_local.sh` в корне проекта. Доступен он будет на https://localhost.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.