用 Clojure 編寫的聊天機器人,隨時為您服務。
您可以將 Yetibot 視為公共命令行。它擅長:
Yetibot 的功能強大而偉大,也就是說很有趣:
查看使用範例以了解一些樂趣它可以做有用的事情。
此計畫得到以下機構的支持:
歡迎新貢獻者!
good first issue
問題適合首次為 Yetibot 貢獻者提供協助@devth
尋求幫助請造訪 slack.yetibot.com 以取得官方 Yetibot slack 的邀請。 Yetibot 運行在 DigitalOcean 慷慨提供的 Droplet 上,您可以在 Slack 中使用它。
要以最少的配置快速試用 Yetibot:
已經在使用 Yetibot 了?請將您自己加入 Yetibot 使用者清單!
請參閱貢獻。
Yetibot 自成立以來一直在不斷改進。除了修復錯誤之外,這些都是當務之急。非常歡迎反饋和貢獻!
#yetibot
頻道中與 Freenode 上的 Yetibot 交談或加入 Yetibot Slack! 有幾種運行 Yetibot 的方法:
請按照 Docker 說明進行操作:如果您已經在使用 Docker,這是最快的方法。
Yetibot-helm :在 Kubernetes 上快速運行 Yetibot 的官方 Helm Chart。
複製此儲存庫:這將為您提供標準 Yetibot 安裝,並提供一個 git-ignored 的位置來儲存配置。使用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 開始的 arg 索引)。
!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 使用其各種命令的文檔字串來自我記錄。請求!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
巨集hook
到解釋器的handle-cmd
函數中,並透過正規表示式前綴匹配觸發如果文件或實作程式碼無法很好地為您服務,請開啟拉取請求並解釋原因,以便我們可以改進文件。另外,請隨時針對功能請求提出問題!
版權所有 © 2012-2019 特雷弗哈特曼。與 Clojure 相同,依照 Eclipse Public License 1.0 分發。
標誌由Freeform Design Co.設計。