Un chatbot escrito en Clojure, a tu servicio.
Puedes pensar en Yetibot como una línea de comando comunitaria . Destaca en:
Características que hacen que Yetibot sea potente y genial, es decir, divertido :
Eche un vistazo a los ejemplos de uso para ver algunos divertido cosas útiles que puede hacer.
Este proyecto cuenta con el apoyo de:
¡Bienvenidos nuevos contribuyentes!
good first issue
son buenos para los contribuyentes de Yetibot por primera vez@devth
en Slack, GitHub o en cualquier otro lugar donde pueda encontrarlo Obtenga una invitación al slack oficial de Yetibot en slack.yetibot.com. Hay Yetibot ejecutándose en un Droplet proporcionado generosamente por DigitalOcean con el que puedes jugar en Slack.
Para probar rápidamente Yetibot con una configuración mínima:
¿Ya estás usando Yetibot? ¡Añádete a la lista de usuarios de Yetibot!
Ver CONTRIBUIR.
Yetibot ha experimentado una mejora continua desde sus inicios. Estas son las prioridades inmediatas, además de las correcciones de errores. ¡Los comentarios y contribuciones son bienvenidos!
#yetibot
o unirse a Yetibot Slack. Hay algunas formas de ejecutar Yetibot:
Siga las instrucciones de Docker : la forma más rápida si ya está usando Docker.
yetibot-helm : el Helm Chart oficial para ejecutar rápidamente Yetibot en Kubernetes.
Clona este repositorio : esto te proporciona una instalación estándar de Yetibot y proporciona un lugar ignorado por Git para almacenar la configuración. Ejecute desde el directorio raíz con lein run
.
Cree su propio repositorio y dependa de Yetibot : esto le brinda máxima personalización, permitiéndole depender de complementos personalizados de Yetibot o definir sus propios comandos en el proyecto, y le brinda control sobre dónde almacena su configuración (administración manual, compromiso con git privado). repositorio, etc...)
Consulte los documentos de configuración.
Para obtener más documentos, consulte la Guía del usuario.
Todos los comandos tienen el prefijo !
.
La salida de un comando se puede canalizar a otro, como las canalizaciones de 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.
Las comillas invertidas proporcionan una sintaxis ligera para subexpresiones, pero no se pueden anidar.
!meme grumpy cat: `catfact` / False
Para subexpresiones anidadas arbitrariamente, utilice la sintaxis $(expr)
, que elimina la ambigüedad de la apertura y el cierre de una expresión.
!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:
Puede crear sus propios alias en tiempo de ejecución. Estos se almacenan en la base de datos configurada, por lo que al reiniciar se restauran.
!alias nogrid = repeat 3 echo `repeat 3 meme grumpy: no | join`
Se pueden utilizar tuberías, pero se debe citar el lado derecho para tratarlo como un literal en lugar de evaluarlo según el comportamiento normal de las tuberías.
!alias i5 = "random | echo http://icons.wunderground.com/webcamramdisk/w/a/wadot/324/current.jpg?t=%s&.jpg"
Puede especificar argumentos de marcador de posición en el lado derecho usando $s
para indicar todos los argumentos, o $n
(donde n es un índice basado en 1 de cuyo argumento).
!alias temp = "weather $s | head 2 | tail"
!temp 98104
=> 33.6 F (0.9 C), Overcast
IRC : Yetibot puede escuchar en cualquier número de canales. Los canales se configuran en config.edn. También puedes invitar a Yetibot a un canal en tiempo de ejecución usando el comando IRC /invite
:
/invite yetibot #whoa
Cuando invitas a Yetibot a un nuevo canal, config.edn
se sobrescribe, por lo que la próxima vez que reinicies Yetibot, volverá a unirse a los mismos canales.
También puedes usar el comando !room
para indicarle a yetibot que se una o abandone un canal.
!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 : los bots no pueden unirse a un canal por sí solos, deben ser invitados, por lo que no se aplica la configuración de la sala. En su lugar, /invite @yetibot
a cualquier canal en el que estés y /kick @yetibot
si quieres que se vaya. NB: es posible que necesites privilegios especiales para poder patear.
Ya no se admiten fogatas. Si usas Campfire, abre un problema y ¡podremos volver a agregarlo!
Otras plataformas de chat : si la plataforma de chat de su elección no es compatible, abra una incidencia. Agregar adaptadores es bastante fácil.
Si una sala tiene broadcast
configurada como true
, los Tweets se publicarán en esa sala. Por defecto, todas las salas lo tienen configurado en falso. Para habilitar:
!room set broadcast true
Yetibot se autodocumenta utilizando las cadenas de documentación de sus diversos comandos. Solicite !help
para obtener una lista de temas de ayuda. !help all
muestra una lista de comandos completamente ampliada para cada tema.
!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 tiene una arquitectura basada en complementos. Su núcleo del que dependen todos los complementos es yetibot.core.
Yetibot cargará todos los comandos y observadores con espacios de nombres en el classpath que coincidan con estas expresiones regulares.
Esto le permite crear cualquier cantidad de proyectos de complementos independientes y combinarlos mediante dependencias estándar de Leiningen.
¿Tienes curiosidad por saber cómo funciona el funcionamiento interno del Yetibot? A alto nivel:
hook
a la función handle-cmd
del intérprete mediante una macro cmd-hook
y se activan mediante la coincidencia de prefijos de expresiones regulares Si los documentos o el código de implementación no le sirven, abra una solicitud de extracción y explique por qué para que podamos mejorar los documentos. ¡También siéntase libre de abrir un problema para solicitudes de funciones!
Copyright © 2012-2019 Trevor Hartman. Distribuido bajo la Licencia Pública Eclipse 1.0, igual que Clojure.
Logotipo diseñado por Freeform Design Co.