Ein in Clojure geschriebener Chatbot zu Ihren Diensten.
Sie können sich Yetibot als eine gemeinschaftliche Befehlszeile vorstellen. Es zeichnet sich aus durch:
Funktionen, die Yetibot leistungsstark und großartig machen, das heißt: Spaß machen:
Werfen Sie einen Blick auf die Anwendungsbeispiele, um einige zu sehen Spaß nützliche Dinge, die es tun kann.
Dieses Projekt wird unterstützt von:
Willkommen neue Mitwirkende!
good first issue
sind gut für Erstautoren von Yetibot@devth
um Hilfe auf Slack, GitHub oder wo auch immer Sie ihn finden können Erhalten Sie eine Einladung zum offiziellen Yetibot-Slack unter slack.yetibot.com. Yetibot läuft auf einem von DigitalOcean großzügig bereitgestellten Droplet, mit dem Sie in Slack spielen können.
Um Yetibot schnell mit minimaler Konfiguration auszuprobieren:
Nutzen Sie Yetibot bereits? Bitte tragen Sie sich in die Liste der Yetibot-Benutzer ein!
Siehe BEITRAGEN.
Yetibot wurde seit seiner Einführung kontinuierlich verbessert. Dies sind die unmittelbaren Prioritäten, zusätzlich zu etwaigen Fehlerbehebungen. Feedback und Beiträge sind herzlich willkommen!
#yetibot
-Kanal sprechen oder Yetibot Slack beitreten! Es gibt mehrere Möglichkeiten, Yetibot auszuführen:
Befolgen Sie die Docker-Anweisungen : Der schnellste Weg, wenn Sie Docker bereits verwenden.
Yetibot-Helm : die offizielle Helm-Tabelle zum schnellen Ausführen von Yetibot auf Kubernetes.
Klonen Sie dieses Repo : Dadurch erhalten Sie eine Standard-Yetibot-Installation und einen Git-ignorierten Ort zum Speichern der Konfiguration. Führen Sie lein run
aus dem Root-Verzeichnis aus.
Erstellen Sie Ihr eigenes Repo und verlassen Sie sich auf Yetibot : Dies bietet Ihnen ultimative Anpassbarkeit, ermöglicht es Ihnen, sich auf benutzerdefinierte Yetibot-Plugins zu verlassen oder Ihre eigenen Befehle im Projekt zu definieren, und gibt Ihnen die Kontrolle darüber, wo Sie Ihre Konfiguration speichern (manuelle Verwaltung, Festschreibung an privates Git). Repo usw.)
Siehe Konfigurationsdokumente.
Weitere Dokumente finden Sie im Benutzerhandbuch.
Allen Befehlen wird ein !
vorangestellt. .
Die Ausgabe eines Befehls kann wie bei Unix-Pipes an einen anderen weitergeleitet werden.
!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.
Backticks bieten eine einfache Syntax für Unterausdrücke, können jedoch nicht verschachtelt werden.
!meme grumpy cat: `catfact` / False
Für beliebig verschachtelte Unterausdrücke verwenden Sie die Syntax $(expr)
, die das Öffnen und Schließen eines Ausdrucks eindeutig macht.
!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:
Sie können zur Laufzeit Ihre eigenen Aliase erstellen. Diese werden in der konfigurierten Datenbank gespeichert und beim Neustart wiederhergestellt.
!alias nogrid = repeat 3 echo `repeat 3 meme grumpy: no | join`
Pipes können verwendet werden, aber die rechte Seite muss in Anführungszeichen gesetzt werden, um sie als Literal zu behandeln, anstatt gemäß dem normalen Pipe-Verhalten ausgewertet zu werden.
!alias i5 = "random | echo http://icons.wunderground.com/webcamramdisk/w/a/wadot/324/current.jpg?t=%s&.jpg"
Sie können Platzhalterargumente auf der rechten Seite angeben, indem Sie $s
verwenden, um alle Argumente anzugeben, oder $n
(wobei n ein 1-basierter Index von which arg ist).
!alias temp = "weather $s | head 2 | tail"
!temp 98104
=> 33.6 F (0.9 C), Overcast
IRC : Yetibot kann auf beliebig vielen Kanälen hören. Sie konfigurieren Kanäle in config.edn. Sie können Yetibot auch zur Laufzeit mit dem IRC-Befehl /invite
zu einem Kanal einladen:
/invite yetibot #whoa
Wenn Sie Yetibot zu einem neuen Kanal einladen, wird config.edn
überschrieben, sodass Yetibot beim nächsten Neustart wieder denselben Kanälen beitritt.
Sie können Yetibot auch mit dem Befehl !room
anweisen, einem Kanal beizutreten oder ihn zu verlassen.
!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 : Bots können einem Kanal nicht alleine beitreten, sie müssen eingeladen werden, daher gilt die Raumkonfiguration nicht. Stattdessen /invite @yetibot
zu jedem Kanal, in dem Sie sich befinden, und /kick @yetibot
wenn Sie möchten, dass er den Kanal verlässt. Hinweis: Zum Kicken benötigen Sie möglicherweise besondere Privilegien.
Lagerfeuer wird nicht mehr unterstützt. Wenn Sie Campfire verwenden, öffnen Sie ein Problem und wir können es wieder hinzufügen!
Andere Chat-Plattformen : Wenn die Chat-Plattform Ihrer Wahl nicht unterstützt wird, öffnen Sie ein Problem. Das Hinzufügen von Adaptern ist ganz einfach.
Wenn für einen Raum broadcast
auf true
eingestellt ist, werden Tweets in diesem Raum gepostet. Standardmäßig ist es in allen Räumen auf „false“ eingestellt. So aktivieren Sie:
!room set broadcast true
Yetibot dokumentiert sich selbst mithilfe der Dokumentzeichenfolgen seiner verschiedenen Befehle. Fragen Sie nach !help
um eine Liste der Hilfethemen zu erhalten. !help all
zeigt die vollständig erweiterte Befehlsliste für jedes Thema an.
!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 verfügt über eine Plugin-basierte Architektur. Sein Kern, von dem alle Plugins abhängen, ist Yetibot.core.
Yetibot lädt alle Befehle und Beobachter mit Namespaces im Klassenpfad, die diesen regulären Ausdrücken entsprechen.
Dadurch können Sie beliebig viele unabhängige Plugin-Projekte erstellen und diese über Standard-Leiningen-Abhängigkeiten kombinieren.
Neugierig, wie die Interna von Yetibot funktionieren? Auf hohem Niveau:
cmd-hook
Makros in die handle-cmd
Funktion des Interpreters hook
und über den Regex-Präfixabgleich ausgelöst Wenn Ihnen die Dokumente oder der Implementierungscode nicht weiterhelfen, öffnen Sie bitte eine Pull-Anfrage und erläutern Sie den Grund, damit wir die Dokumente verbessern können. Sie können auch gerne eine Ausgabe für Funktionsanfragen eröffnen!
Copyright © 2012-2019 Trevor Hartman. Wird unter der Eclipse Public License 1.0 vertrieben, genau wie Clojure.
Logo entworfen von Freeform Design Co.