Un chat bot écrit en Clojure, à votre service.
Vous pouvez considérer Yetibot comme une ligne de commande commune . Il excelle dans :
Des fonctionnalités qui rendent Yetibot puissant et génial, c'est-à-dire amusant :
Jetez un œil aux exemples d'utilisation pour en voir amusant choses utiles qu'il peut faire.
Ce projet est soutenu par :
Bienvenue aux nouveaux contributeurs !
good first issue
sont bons pour les nouveaux contributeurs de Yetibot@devth
sur Slack, GitHub ou partout ailleurs où vous pouvez le trouver Recevez une invitation au slack officiel de Yetibot sur slack.yetibot.com. Il y a Yetibot fonctionnant sur un Droplet généreusement fourni par DigitalOcean avec lequel vous pouvez jouer dans Slack.
Pour essayer rapidement Yetibot avec une configuration minimale :
Vous utilisez déjà Yetibot ? Veuillez vous ajouter à la liste des utilisateurs de Yetibot !
Voir CONTRIBUER.
Yetibot fait l'objet d'améliorations continues depuis sa création. Ce sont les priorités immédiates, en plus des éventuelles corrections de bugs. Les commentaires et contributions sont les bienvenus !
#yetibot
ou rejoindre Yetibot Slack ! Il existe plusieurs façons d'exécuter Yetibot :
Suivez les instructions de Docker : le moyen le plus rapide si vous utilisez déjà Docker.
yetibot-helm : le Helm Chart officiel pour exécuter rapidement Yetibot sur Kubernetes.
Clonez ce dépôt : cela vous donne une installation standard de Yetibot et fournit un emplacement ignoré par Git pour stocker la configuration. Exécutez à partir du répertoire racine avec lein run
.
Créez votre propre dépôt et dépendez de Yetibot : cela vous offre une personnalisation ultime, vous permettant de dépendre de plugins Yetibot personnalisés ou de définir vos propres commandes dans le projet, et vous donne le contrôle sur l'endroit où vous stockez votre configuration (gestion manuelle, validation sur git privé dépôt, etc...)
Voir la documentation de configuration.
Pour plus de documents, consultez le Guide de l'utilisateur.
Toutes les commandes sont préfixées par !
.
La sortie d’une commande peut être redirigée vers une autre, comme les pipes 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.
Les backticks fournissent une syntaxe légère pour les sous-expressions, mais ils ne peuvent pas être imbriqués.
!meme grumpy cat: `catfact` / False
Pour les sous-expressions arbitrairement imbriquées, utilisez la syntaxe $(expr)
, qui lève l'ambiguïté sur l'ouverture et la fermeture d'une expression.
!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:
Vous pouvez créer vos propres alias au moment de l'exécution. Ceux-ci sont stockés dans la base de données configurée, donc au redémarrage ils sont restaurés.
!alias nogrid = repeat 3 echo `repeat 3 meme grumpy: no | join`
Les tuyaux peuvent être utilisés, mais le côté droit doit être cité afin de le traiter comme un littéral au lieu d'être évalué selon le comportement normal du tuyau.
!alias i5 = "random | echo http://icons.wunderground.com/webcamramdisk/w/a/wadot/324/current.jpg?t=%s&.jpg"
Vous pouvez spécifier des arguments d'espace réservé sur le côté droit en utilisant $s
pour indiquer tous les arguments, ou $n
(où n est un index basé sur 1 dont arg).
!alias temp = "weather $s | head 2 | tail"
!temp 98104
=> 33.6 F (0.9 C), Overcast
IRC : Yetibot peut écouter sur n'importe quel nombre de chaînes. Vous configurez les canaux dans config.edn. Vous pouvez également inviter Yetibot sur un canal lors de l'exécution à l'aide de la commande IRC /invite
:
/invite yetibot #whoa
Lorsque vous invitez Yetibot sur une nouvelle chaîne, config.edn
est écrasé, donc la prochaine fois que vous redémarrerez Yetibot, il rejoindra les mêmes chaînes.
Vous pouvez également utiliser la commande !room
pour dire à yetibot de rejoindre ou de quitter une chaîne.
!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 : les robots ne peuvent pas rejoindre un canal par eux-mêmes, ils doivent être invités, la configuration de la salle ne s'applique donc pas. Au lieu de cela, /invite @yetibot
sur n'importe quelle chaîne dans laquelle vous vous trouvez, et /kick @yetibot
si vous souhaitez qu'il quitte. NB : vous pourriez avoir besoin de privilèges spéciaux pour pouvoir botter.
Le feu de camp n'est plus pris en charge. Si vous utilisez Campfire, ouvrez un problème et nous pourrons le rajouter !
Autres plateformes de chat : si la plateforme de chat de votre choix n'est pas prise en charge, ouvrez un ticket. L'ajout d'adaptateurs est assez simple.
Si une salle a broadcast
définie sur true
, les Tweets seront publiés dans cette salle. Par défaut, toutes les pièces l'ont défini sur false. Pour activer :
!room set broadcast true
Yetibot s'auto-documente en utilisant les docstrings de ses différentes commandes. Demandez-lui !help
pour obtenir une liste de sujets d'aide. !help all
affiche une liste de commandes entièrement développée pour chaque sujet.
!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 a une architecture basée sur des plugins. Son noyau dont dépendent tous les plugins est yetibot.core.
Yetibot chargera toutes les commandes et observateurs avec des espaces de noms sur le chemin de classe correspondant à ces expressions rationnelles.
Cela vous permet de créer un nombre illimité de projets de plugins indépendants et de les combiner via des dépendances standard de Leiningen.
Curieux de savoir comment fonctionnent les composants internes de Yetibot ? A haut niveau :
hook
à la fonction handle-cmd
de l'interpréteur à l'aide d'une macro cmd-hook
et déclenchés via la correspondance de préfixe regex Si la documentation ou le code d'implémentation ne vous sert pas, veuillez ouvrir une pull request et expliquer pourquoi afin que nous puissions améliorer la documentation. N'hésitez pas également à ouvrir un numéro pour les demandes de fonctionnalités !
Copyright © 2012-2019 Trevor Hartman. Distribué sous la licence publique Eclipse 1.0, la même que Clojure.
Logo conçu par Freeform Design Co.