Чат-бот, написанный на Clojure, к вашим услугам.
Вы можете думать о Yetibot как об общей командной строке . Он превосходен в:
Функции, которые делают Yetibot мощным и замечательным, то есть забавным :
Взгляните на примеры использования, чтобы увидеть некоторые веселье полезные вещи, которые он может сделать.
Этот проект поддерживается:
Приветствуем новых участников!
good first issue
подходят для тех, кто впервые участвует в Yetibot.@devth
о помощи в Slack, GitHub или где-нибудь еще, где вы можете его найти. Получите приглашение на официальный сайт Yetibot на сайте slack.yetibot.com. Есть Yetibot, работающий на Droplet, щедро предоставленном DigitalOcean, с которым вы можете играть в Slack.
Чтобы быстро опробовать Yetibot с минимальной конфигурацией:
Уже используете Yetibot? Пожалуйста, добавьте себя в список пользователей Yetibot!
См. ВКЛАД.
Yetibot постоянно совершенствуется с момента своего создания. Это первоочередные задачи, помимо исправления ошибок. Отзывы и вклад очень приветствуются!
#yetibot
или присоединиться к Yetibot в Slack! Есть несколько способов запустить Yetibot:
Следуйте инструкциям Docker : самый быстрый способ, если вы уже используете Docker.
Yetibot-helm : официальная таблица Helm для быстрого запуска Yetibot в Kubernetes.
Клонируйте этот репозиторий : это даст вам стандартную установку Yetibot и предоставит игнорируемое git место для хранения конфигурации. Запустите из корневого каталога с помощью lein run
.
Создайте свой собственный репозиторий и положитесь на Yetibot : это дает вам максимальную настраиваемость, позволяя вам зависеть от пользовательских плагинов Yetibot или определять свои собственные команды в проекте, а также дает вам контроль над тем, где вы храните свою конфигурацию (ручное управление, фиксация в частном git). репо и т. д.)
См. документацию по конфигурации.
Дополнительные документы см. в Руководстве пользователя.
Все команды имеют префикс !
.
Вывод одной команды может быть передан по конвейеру в другую, как в Unix-каналах.
!complete does IE support | xargs echo %s? No, it is sucky.
does ie support html5? No, it is sucky.
does ie support css3? No, it is sucky.
does ie support svg? No, it is sucky.
does ie support media queries? No, it is sucky.
does ie support ftps? No, it is sucky.
does ie support png? No, it is sucky.
does ie support canvas? No, it is sucky.
does ie support @font-face? No, it is sucky.
does ie support webgl? No, it is sucky.
does ie support ttf? No, it is sucky.
Обратные кавычки обеспечивают упрощенный синтаксис для подвыражений, но их нельзя вкладывать.
!meme grumpy cat: `catfact` / False
Для произвольно вложенных подвыражений используйте синтаксис $(expr)
, который устраняет неоднозначность открытия и закрытия выражений.
!meme philos: $(complete how does one $(users | random | letters | random) | random)
!echo `repeat 4 echo i don't always repeat myself but | unwords`…StackOverflowError | meme interesting:
Вы можете создавать свои собственные псевдонимы во время выполнения. Они хранятся в настроенной базе данных, поэтому при перезапуске восстанавливаются.
!alias nogrid = repeat 3 echo `repeat 3 meme grumpy: no | join`
Можно использовать каналы, но правая часть должна быть заключена в кавычки, чтобы ее можно было рассматривать как литерал, а не оценивать в соответствии с обычным поведением канала.
!alias i5 = "random | echo http://icons.wunderground.com/webcamramdisk/w/a/wadot/324/current.jpg?t=%s&.jpg"
Вы можете указать аргументы-заполнители в правой части, используя $s
для обозначения всех аргументов или $n
(где n — индекс, отсчитываемый от 1, для которого arg).
!alias temp = "weather $s | head 2 | tail"
!temp 98104
=> 33.6 F (0.9 C), Overcast
IRC : Yetibot может слушать любое количество каналов. Вы настраиваете каналы в config.edn. Вы также можете пригласить Yetibot на канал во время выполнения, используя команду IRC /invite
:
/invite yetibot #whoa
Когда вы приглашаете Yetibot на новый канал, config.edn
перезаписывается, поэтому в следующий раз, когда вы перезапустите Yetibot, он снова присоединится к тем же каналам.
Вы также можете использовать команду !room
чтобы указать йетиботу присоединиться к каналу или покинуть его.
!help room
room join # join
room leave # leave
room list # list rooms that yetibot is in
room set # configure a setting for the current room
room settings # show all chat settings for this room
room settings # show the value for a single setting
Slack : боты не могут присоединиться к каналу самостоятельно, их необходимо пригласить, поэтому конфигурация комнаты не применяется. Вместо этого /invite @yetibot
на любой канал, на котором вы находитесь, и /kick @yetibot
если хотите, чтобы он ушел. Примечание: для того, чтобы выгнать пользователя, вам могут потребоваться особые привилегии.
Campfire больше не поддерживается. Если вы используете Campfire, откройте задачу, и мы сможем добавить ее обратно!
Другие чат-платформы . Если выбранная вами чат-платформа не поддерживается, откройте проблему. Добавить адаптеры довольно просто.
Если для комнаты broadcast
значение true
, твиты будут публиковаться в этой комнате. По умолчанию во всех комнатах установлено значение false. Чтобы включить:
!room set broadcast true
Yetibot самодокументирует себя, используя строки документации своих различных команд. Попросите !help
, чтобы получить список разделов помощи. !help all
показывает полностью развернутый список команд для каждой темы.
!help | join ,
Use help for more details, !, that, alias, ascii, asciichart,
attack, buffer, catfact, chat, chuck, classnamer, clj, cls, complete, config,
count, curl, ebay, echo, eval, features, gh, giftv, grep, haiku, head, help,
history, horse, hs, http, image, info, jargon, jen, join, js, keys, list, log,
mail, meme, memethat, mustachefact, number, order, poke, poms, random, raw,
react, reload, repeat, rest, reverse, rhyme, scala, scalex, sed, set, sort, source,
split, ssh, status, tail, take, tee, twitter, update, uptime, urban, users,
vals, weather, wiki, wolfram, wordnik, words, xargs, xkcd, zen
Yetibot имеет архитектуру на основе плагинов. Его ядром, от которого зависят все плагины, является Yetibot.core.
Yetibot загрузит все команды и наблюдатели с пространствами имен в пути к классам, соответствующими этим регулярным выражениям.
Это позволяет вам создавать любое количество независимых проектов плагинов и объединять их с помощью стандартных зависимостей Лейнингена.
Интересно, как устроено внутреннее устройство Йетибота? На высоком уровне:
hook
к функции handle-cmd
интерпретатора с помощью макроса cmd-hook
и запускаются посредством сопоставления префиксов регулярных выражений. Если документация или код реализации вам не подходят, откройте запрос на включение и объясните, почему, чтобы мы могли улучшить документацию. Также не стесняйтесь открывать проблему для запросов функций!
Copyright © 2012-2019 Тревор Хартман. Распространяется под лицензией Eclipse Public License 1.0, такой же, как и Clojure.
Логотип разработан Freeform Design Co.