2010-07-25 75 views
4

我正在學習Python並希望開始一個小型項目。看起來,製作IRC機器人是初學者中非常受歡迎的項目,所以我認爲我會實施一個。顯然,核心功能就像能夠連接到服務器並加入頻道一樣,但是機器人通常會包含哪些好的功能?感謝您的想法。IRC機器人功能

回答

2

除非它僅用於教育體驗,否則應該只是使用框架來實現核心功能。

這就是說,這裏的一些在我家IRC頻道機器人做的事情:

  • 從選項列表中選擇一個項目
  • 顯示來自Linux的命運隨機項文件
  • 顯示Emacs間諜文件中的一組隨機單詞
  • 檢查用戶的每一行,並顯示來自The Big Lebowski的報價,如果它足夠相似(這可能有點特定於我的通道:))
  • 檢查鏈接之前已經提到,說誰/時(我們都讀同樣的RSS提要,並趨向於複製鏈接很多)
  • 進行調查
  • 從我們的內部QDB
  • 拉一個給定的報價檢查給定的鏈接是否已發佈到Reddit,如果是,則給出相應的Reddit主題鏈接。如果發佈了Reddit鏈接,請改爲直接鏈接
  • 跟蹤指定的暱稱在頻道中的最後一次以及最後一次發言的時間
  • 爲隊列中自動發送的離線暱稱排隊消息他們加入
  • 使用谷歌翻譯給定短語
  • 郵給定的線,我們的渠道的Twitter的飼料
  • 選擇一個隨機的用戶,並踢他們(不是最好的辦法依賴於你的渠道是如何刁蠻)
  • 翻譯
  • 從Wikipedia中提取給定詞彙的摘要,並將其與al墨全文
  • 任何
  • 顯示信息發佈Youtube鏈接(視頻標題,長度,提交,投票,評論等)
+0

您使用什麼方法來確定lebowski報價的相似性? – Daenyth 2010-07-25 13:07:53

+0

@Daenyth它使電影在陣列中保持約1500行,並使用具有'k = 3'的模糊[bitap算法](http://en.wikipedia.org/wiki/Bitap_algorithm)循環遍歷它,以檢查是否用戶的字符串是任何行的模糊子字符串。 Bitap很有用,因爲它可以告訴你子字符串在哪裏,所以機器人可以顯示電影中的完整行,但是強調它的子字符串,它與用戶所說的 – 2010-07-25 16:55:44

1

我也在編寫node.js中的bot。下面是一些我的目標/功能:

  • 地圖「@」命令,這樣機器人檢測的最後一個URI在消息歷史記錄,並使用W3 HTML驗證服務
  • 設置一個小遊戲,通過調用問,問! 3個提示一個問題,必須加載自定義問題的能力基於類別
  • 獲得與天氣weather [郵編/名稱]
  • 勾起來jseval命令對JavaScript的,同爲Python和Perl和Haskell
  • seen指揮塔牛逼報告最後一次機器人已經「看到」一個人的在線
  • 翻譯命令X語言字符串
  • 轉化爲Y語言字符串映射dict到詞典服務
  • 地圖wik到維基服務
0

這是非常主觀的,完全取決於機器人的使用位置。我相信別人會有很好的建議。但無論你做什麼,請做而不是任意查詢用戶。並且定期做不是垃圾郵件的主要聊天。

0

做一個谷歌搜索,獲得實現IRC協議爲您庫。這樣你只需要添加這些功能,那些功能已經足以打擾你了。

常用功能:

  • 從維基進行搜索或谷歌
  • 通知其他人關於項目/課題更新
  • 留言
  • 玩具爲垃圾郵件的通道
  • 選擇一個話題
  • 分類信息
  • 從c hannel日誌
+0

'這些已經足夠打擾你了。 OP在學習Python,知道如何在Python中使用套接字是至關重要的,如果您想要爲未廣泛使用的協議實現客戶端/服務器支持等等。 – 2015-04-04 19:53:19

1

同樣,這是一個完全個人化的建議,但我真的很希望看到用Python重寫eggdrop。

這樣的項目可以使用Twisted提供基本的IRC交互,但需要支持附加腳本。

這對於允許使用python而不是TCL腳本構建簡單的IRC bot功能很有用。

+0

我會有興趣參與像這樣的項目,而不是Python的專業人士,但很樂意伸出援助之手。 – Chris 2010-07-25 13:34:17