Um chatbot escrito em Clojure, ao seu serviço.
Você pode pensar no Yetibot como uma linha de comando comunitária . É excelente em:
Recursos que tornam o Yetibot poderoso e excelente, ou seja, divertido :
Dê uma olhada nos exemplos de uso para ver alguns diversão coisas úteis que pode fazer.
Este projeto é apoiado por:
Bem vindos novos contribuidores!
good first issue
são bons para contribuidores iniciantes do Yetibot@devth
no Slack, GitHub ou em qualquer outro lugar onde você possa encontrá-lo Receba um convite para o Slack oficial do Yetibot em slack.yetibot.com. Há o Yetibot rodando em um Droplet generosamente fornecido pela DigitalOcean com o qual você pode brincar no Slack.
Para experimentar rapidamente o Yetibot com configuração mínima:
Já usa Yetibot? Adicione-se à lista de usuários do Yetibot!
Consulte CONTRIBUINDO.
Yetibot tem passado por melhorias contínuas desde o seu início. Estas são as prioridades imediatas, além de eventuais correções de bugs. Feedback e contribuições são muito bem-vindos!
#yetibot
ou juntar-se ao Yetibot Slack! Existem algumas maneiras de executar o Yetibot:
Siga as instruções do Docker : a maneira mais rápida se você já estiver usando o Docker.
Yetibot-helm : o Helm Chart oficial para executar rapidamente o Yetibot no Kubernetes.
Clone este repositório : isso fornece uma instalação padrão do Yetibot e fornece um local ignorado pelo git para armazenar a configuração. Execute a partir do diretório raiz com lein run
.
Faça seu próprio repositório e dependa do Yetibot : isso oferece personalização definitiva, permitindo que você dependa de plug-ins personalizados do Yetibot ou defina seus próprios comandos no projeto, e lhe dá controle sobre onde você armazena sua configuração (gerenciamento manual, commit para git privado repositório, etc...)
Consulte Documentos de configuração.
Para obter mais documentos, consulte o Guia do usuário.
Todos os comandos são prefixados por !
.
A saída de um comando pode ser canalizada para outro, como canais 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.
Os crases fornecem uma sintaxe leve para subexpressões, mas não podem ser aninhados.
!meme grumpy cat: `catfact` / False
Para subexpressões aninhadas arbitrariamente, use a sintaxe $(expr)
, que desambigua a abertura e o fechamento de uma expressão.
!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:
Você pode criar seus próprios aliases em tempo de execução. Eles são armazenados no banco de dados configurado e, ao serem reiniciados, são restaurados.
!alias nogrid = repeat 3 echo `repeat 3 meme grumpy: no | join`
Pipes podem ser usados, mas o lado direito deve ser colocado entre aspas para tratá-lo como um literal em vez de ser avaliado de acordo com o comportamento normal do pipe.
!alias i5 = "random | echo http://icons.wunderground.com/webcamramdisk/w/a/wadot/324/current.jpg?t=%s&.jpg"
Você pode especificar argumentos de espaço reservado no lado direito usando $s
para indicar todos os argumentos, ou $n
(onde n é um índice baseado em 1 do qual arg).
!alias temp = "weather $s | head 2 | tail"
!temp 98104
=> 33.6 F (0.9 C), Overcast
IRC : Yetibot pode ouvir em qualquer número de canais. Você configura canais em config.edn. Você também pode convidar o Yetibot para um canal em tempo de execução usando o comando IRC /invite
:
/invite yetibot #whoa
Quando você convida o Yetibot para um novo canal, config.edn
é sobrescrito, portanto, da próxima vez que você reiniciar o Yetibot, ele ingressará novamente nos mesmos canais.
Você também pode usar o comando !room
para dizer ao Yetibot para entrar ou sair de um 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 : os bots não podem entrar em um canal por conta própria, eles devem ser convidados, portanto a configuração da sala não se aplica. Em vez disso, /invite @yetibot
para qualquer canal em que você esteja e /kick @yetibot
se quiser que ele saia. NB: você pode precisar de privilégios especiais para chutar.
A fogueira não é mais suportada. Se você usa o Campfire, abra um problema e poderemos adicioná-lo novamente!
Outras plataformas de bate-papo : se a plataforma de bate-papo de sua escolha não for compatível, abra um problema. Adicionar adaptadores é bastante fácil.
Se uma sala tiver broadcast
definida como true
, os Tweets serão postados nessa sala. Por padrão, todas as salas têm esse valor definido como falso. Para ativar:
!room set broadcast true
O Yetibot se autodocumenta usando os documentos de seus vários comandos. Peça !help
para obter uma lista de tópicos de ajuda. !help all
mostra uma lista de comandos totalmente expandida para cada tópico.
!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 possui uma arquitetura baseada em plugins. Seu núcleo do qual todos os plugins dependem é yetibot.core.
Yetibot carregará todos os comandos e observadores com namespaces no caminho de classe que correspondam a essas expressões regulares.
Isso permite construir qualquer número de projetos de plug-ins independentes e combiná-los por meio de dependências padrão de Leiningen.
Curioso para saber como funciona o interior do Yetibot? Em alto nível:
hook
à função handle-cmd
do intérprete usando uma macro cmd-hook
e acionados por meio de correspondência de prefixo regex Se os documentos ou o código de implementação não lhe servirem bem, abra uma solicitação pull e explique o motivo para que possamos melhorar os documentos. Sinta-se também à vontade para abrir um problema para solicitações de recursos!
Direitos autorais © 2012-2019 Trevor Hartman. Distribuído sob a Licença Pública Eclipse 1.0, a mesma do Clojure.
Logotipo desenhado por Freeform Design Co.