radio-t / rt-bot Goto Github PK
View Code? Open in Web Editor NEWМета-репо для движения "создай своего бота"
Мета-репо для движения "создай своего бота"
Вот вам правила для /info
:
Все остальное форматирование для вас будет сделано.
UPD: После разговора с авторами решили добавить GET /info (200) с ответом {author: name, info: blah, commands: [xx, yyy]}
Но что делать ботам, которые реагируют не на команду, а на ключевое слово, или работают по какой-нибудь другой логике? Оставить commands
пустым?
Я подниму бота на gitter канале umputun/test
чтоб все авторы могли поиграться и потестирвоать это хозяйство в реальной жизни
Привет,
Grabpage-bot отвечает 502 на тестовый запрос
curl --request POST \ --url https://bot.radio-t.com/api/grabpage-bot/event \ --header 'content-type: application/json' \ --data '{ "text" : "Bla bla bla www.mail.ru" }'
Ответ бота не рендерится в таблицу, а отображается в исходном виде (хотя ссылки при этом форматируются нормально):
Bot Name | Created On ↓ | Created By | Last Changed On | Last Changed By
---------|-------------------|------------|-----------------|----------------
bot-4-bots|12/28/2016|khaale|01/06/2017|khaale|
docker-bot|12/26/2016|Vitaly Pryakhin|01/01/2017|Vitaly Pryakhin|
random-bot|12/24/2016|Rabinzon|12/29/2016|Rabinzon|
money_bot|12/09/2016|exelban|12/25/2016|exelban|
вместо
Bot Name | Created On ↓ | Created By | Last Changed On | Last Changed By |
---|---|---|---|---|
bot-4-bots | 12/28/2016 | khaale | 01/06/2017 | khaale |
docker-bot | 12/26/2016 | Vitaly Pryakhin | 01/01/2017 | Vitaly Pryakhin |
random-bot | 12/24/2016 | Rabinzon | 12/29/2016 | Rabinzon |
money_bot | 12/09/2016 | exelban | 12/25/2016 | exelban |
Можно ли посмотреть на дамп сообщения, которое radio-t бот постит в gitter от имени бота? Возможно, дело в каком-нибудь дополнительном форматировании.
Как вам идея запилить команду /karma-top [n]
, которая будет выводить список n
пользователей с самой большой кармой (в порядке убывания).
Ограничить n каким-нибудь разумным значением. По умолчанию пусть будет 10.
Search bot ничего не находит.
Надо перезапустить. И как логи посмотреть что там за ошибка?
Когда пишешь в чат смайлы а-ля :(
, то brackets-bot ругается на незакрытые скобки.
Хорошо бы добавить исключение для таких вещей.
@popov1024, есть проблема в том, что бот memberries долго запускается (после запуска самого контейнера).
Как я понимаю, там происходит какая-то инициализация и бот ничего не отвечает по HTTP.
И в тестах происходит ошибка 502 Bad Gateway.
Это нужно починить.
Лучший вариант - перевести долгую часть инициализации в шаг сборки контейнера.
Как воспроизвести:
cd memberries
mv _bot_spec.yml bot_spec.yml
После этого закоммитить и сделать PR. Увидишь, что тест не проходит.
Я увеличивал параметр BOTS_WAIT_TIMEOUT
до 60 секунд, но это не помогает.
Для ботов поддерживаются конфиги, которые описывают базовую информацию о боте и его тесткейсы.
На основе этих конфигов происходит функциональное тестирование бота в travis.
В будущем, по нему же, возможно, будет происходить автоматическая регистрация бота.
Нужно запилить конфигурационные файлы для всех ботов.
Пример конфига для карма-бота:
bot_name: "karma-bot"
defaults:
username: "test-user"
display_name: "Test User"
ignored_commands:
- "Ignored message 1"
- "Ignored message 2"
- "Ignored message 3"
test_cases:
- command: "/karma selevit"
result: "^Карма пользователя @selevit: \\d+.$"
- command:
username: "selevit"
text: "selevit +1"
result: "^Вы не можете изменять свою карму!$"
- command: "selevit++"
result: "^Карма пользователя @selevit увеличена \\(текущее значение: \\d+\\).$"
Регексп из теста /^.*(PHP)?(php)?.*$/
матчит любую строку.
В таком тесте нет особо смысла, нужно его удалить или заменить регексп на /.*/
22 числа в 555 выпуске money-bot выдал 63.41 хотя на сайте http://free.currencyconverterapi.com/ в режиме ручного ввода возвращается 69 рублей на евро
Заменить везде на rtbot
.
build
нужно добавить еще ключ image
, откуда будет пулиться и пушиться этот бот. Имя пользователя docker-hub (в docker-compose.yml) должно быть настраиваемым через переменную окружения. По умолчанию используется значение rt-bot
.Как увидеть существующих ботов в действии?
Зашел в чятик https://chat.radio-t.com или https://gitter.im/radio-t/chat, написал /karma.
Карма бот должен на это что-то ответить? Ничего не происходит.
Или пишу Гвидо, гвидо-бот в ответ должен запостить картинку. Нифига не происходит.
Чего я не понимаю?
GET /deploy
. С http auth.Тесты xrates, и search бота фейлятся.
Судя по коммитам xrates был удален, но папка с сарцами осталась. Самовольно удалять не осмелился.
почему валится search-bot, пока не разобрался.
https://travis-ci.org/umputun/rt-bot/builds/186535295#L5267
пр: #163
Коллеги, приветствую.
Как вы считаете, не стоит ли ботам, помимо чата, иметь собственные API, используя которые они могли бы общаться между собой в обход чата?
Например, у нас уже есть несколько независимых реализаций функции, которая определяет номер текущего выпуска. Было бы здорово, если бы можно было просто обратиться к rtnumber-bot через API. В последствие можно было бы сделать микросервисы, которые сообщали бы и другую полезную информацию: кто из гостей и ведущих присутствует в эфире, какая тема обсуждается в данный момеyт и т.п.
Есть еще идея добавить курсы валют. Например в чате можно будет вписать USD_EUR и получить курс долара к евро.
Есть ли смысл делать это?
В скрипте ./run_local.sh условие в if-е выглядит странно, оно проверяет либо отсутствие SSL_KEY файла, либо наличие SSL_CERT: if [ ! -f "$SSL_KEYS_DIR/$SSL_KEY" ] || [ -f "$SSL_KEYS_DIR/$SSL_CERT" ]
.
В результате сертификаты всегда пересоздаются.
Тут есть какие-то глубокие мотивы, или просто забыли ! во второй части условия?
Как-то несекьюрно наружу API Key для сервиса pagelr.com выставлять, тем более что он платный.
@ShemanskiyM хорошо бы добавить
Я таки прибью бота который крутит эти дикие гифки и добавлю рекомендацию каких ботов лучше не делать. Если есть идеи по списку нежелательнх видов ботов, то оставляйте здесь, подумаем.
они и так открываются клиентом
В nginx.conf есть локация /list
, которая возвращает список всех ботов.
Нужно проверить, что все боты в этой локации имеют bot-spec.yml.
И что все боты, у которых прописан конфиг, там зарегистрированы.
Сделать это нужно на этапе запуска функциональных тестов (ci/run_bot_tests.py
).
Задача блокируется тикетом #126
Я готов зарелизить. Возражения?
Добавить к anek-bot обработку команд: "!грей", "грей!", "!gray", "gray!".
@terbooter, будет время?
\n игнорируются и все в одну строку. Это баг или фича?
virtualbox с убунтой (Ubuntu 14.04.4 LTS) и докером (version 1.12.0) на win7
Делаю git clone ... & docker-compose up
При запуске контейнер nginx-bot
ругается
nginx-bot | start nginx
nginx-bot | ssl_key=le-key.pem, ssl_cert=le-crt.pem
nginx-bot | '/etc/nginx/conf.d' -> '/etc/nginx/conf.d.disabled'
nginx-bot | start letsencrypt updater
nginx-bot | trying to update letsencrypt ...
nginx-bot | Failed authorization procedure. bot.radio-t.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://bot.radio-t.com/.well-known/acme-challenge/uo16YjdUUmXQ28_WVvN6HG9N9Tw-SfdaVBvPk3GPSSQ: "<html>
nginx-bot | <head><title>404 Not Found</title></head>
nginx-bot | <body bgcolor="white">
nginx-bot | <center><h1>404 Not Found</h1></center>
nginx-bot | <hr><center>"
nginx-bot | IMPORTANT NOTES:
nginx-bot | - The following errors were reported by the server:
nginx-bot |
nginx-bot | Domain: bot.radio-t.com
nginx-bot | Type: unauthorized
nginx-bot | Detail: Invalid response from
nginx-bot | http://bot.radio-t.com/.well-known/acme-challenge/uo16YjdUUmXQ28_WVvN6HG9N9Tw-SfdaVBvPk3GPSSQ:
nginx-bot | "<html>
nginx-bot | <head><title>404 Not Found</title></head>
nginx-bot | <body bgcolor="white">
nginx-bot | <center><h1>404 Not Found</h1></center>
nginx-bot | <hr><center>"
nginx-bot |
nginx-bot | To fix these errors, please make sure that your domain name was
nginx-bot | entered correctly and the DNS A record(s) for that domain
nginx-bot | contain(s) the right IP address.
nginx-bot | cp: can't stat '/etc/letsencrypt/live/bot.radio-t.com/privkey.pem': No such file or directory
nginx-bot | cp: can't stat '/etc/letsencrypt/live/bot.radio-t.com/fullchain.pem': No such file or directory
nginx-bot | '/etc/nginx/conf.d.disabled' -> '/etc/nginx/conf.d'
nginx-bot | reload nginx with ssl
nginx-bot | 2016/11/14 08:21:51 [emerg] 26#26: BIO_new_file("/etc/nginx/ssl/le-crt.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/ssl/le-crt.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx-bot | nginx: [emerg] BIO_new_file("/etc/nginx/ssl/le-crt.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/ssl/le-crt.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
При попытке открыть URL по IP виртуалки
http://192.168.0.30/list
редиректит на
https://_/list
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.