Clojure で書かれたチャットボットがあなたのサービスを提供します。
Yetibot は共通のコマンド ラインと考えることができます。以下の点で優れています。
Yetibot を強力かつ優れたものにする、つまり楽しいものにする機能:
使用例を見ていくつか確認してください楽しいそれができる便利なこと。
このプロジェクトは以下によってサポートされています。
新しい寄稿者を歓迎します!
good first issue
とラベル付けされた号は、初めて Yetibot に貢献する人に適しています@devth
に助けを求めてください。 slack.yetibot.com で公式 Yetibot Slack への招待を取得してください。 DigitalOcean が寛大に提供する Droplet 上で動作する Yetibot があり、Slack で遊ぶことができます。
最小限の構成で Yetibot をすぐに試してみるには:
すでに Yetibot を使用していますか?ぜひ、Yetibot ユーザーのリストに加えてください。
「貢献」を参照してください。
Yetibot は、当初から継続的な改善を行ってきました。これらは、バグ修正に加えて当面の優先事項です。フィードバックや貢献は大歓迎です!
#yetibot
チャネルの Freenode で Yetibot と会話したり、Yetibot Slack に参加したりできるようになりました。 Yetibot を実行するにはいくつかの方法があります。
Docker の指示に従ってください。すでに Docker を使用している場合は、最も早い方法です。
Yetibot-helm : Kubernetes 上で Yetibot を迅速に実行するための公式 Helm チャート。
このリポジトリのクローンを作成します。これにより、標準の 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 から始まる引数のインデックス) を使用して、右側でプレースホルダー引数を指定できます。
!alias temp = "weather $s | head 2 | tail"
!temp 98104
=> 33.6 F (0.9 C), Overcast
IRC : Yetibot は任意の数のチャンネルでリッスンできます。チャネルは config.edn で設定します。 IRC /invite
コマンドを使用して、実行時に Yetibot をチャネルに招待することもできます。
/invite yetibot #whoa
Yetibot を新しいチャネルに招待すると、 config.edn
が上書きされるため、次回 Yetibot を再起動すると、同じチャネルに再参加します。
!room
コマンドを使用して、yetibot にチャンネルに参加するかチャンネルから離れるように指示することもできます。
!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 は、さまざまなコマンドの docstring を使用して自身を自己文書化します。ヘルプ トピックのリストを取得するには!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 は、これらの正規表現に一致するクラスパス上の名前空間を持つすべてのコマンドとオブザーバーを読み込みます。
これにより、任意の数の独立したプラグイン プロジェクトを構築し、標準の Leiningen 依存関係を介してそれらを組み合わせることができます。
Yetibot の内部がどのように機能するか興味がありますか?高いレベルで:
cmd-hook
マクロを使用してインタープリタのhandle-cmd
関数にhook
れ、正規表現プレフィックス マッチングによってトリガーされます。 ドキュメントや実装コードが役に立たない場合は、プル リクエストを開いて理由を説明して、ドキュメントを改善してください。機能リクエストについてもお気軽にイシューを開いてください。
著作権 © 2012-2019 トレバー・ハートマン。 Clojure と同じ Eclipse Public License 1.0 に基づいて配布されます。
ロゴデザインはFreeform Design Co.