cinch, IRC Bot构建框架

分享于 

6分钟阅读

GitHub

  繁體 雙語
An IRC Microframework
  • 源代码名称:cinch
  • 源代码网址:http://www.github.com/cinchrb/cinch
  • cinch源代码文档
  • cinch源代码下载
  • Git URL:
    git://www.github.com/cinchrb/cinch.git
    Git Clone代码到本地:
    git clone http://www.github.com/cinchrb/cinch
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/cinchrb/cinch
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Cinch - IRC Bot构建框架

    描述

    easy是一个IRC机器人构建框架,用于在 ruby 中快速创建IRC机器人。 它提供了一个基于插件和规则的简单接口。 这就像创建插件。定义规则和观察你的利润一样容易。

    很容易为你做所有的硬件工作,因这里你可以花时间创建酷的插件和扩展。

    对于一般支持,请在Freenode服务器 (irc://irc.freenode.org/cinch) 上加入 #cinch 通道- 但是请不要带任何。

    安装

    RubyGems

    你可以使用RubyGems安装最新的易用 gem

    
    gem install cinch
    
    
    
    

    或者你可以直接从Github查看最新的代码

    
    git clone http://github.com/cinchrb/cinch.git
    
    
    
    

    示例

    你的典型 Hello Hello应用程序:类似这样:

    require'cinch'bot =Cinch::Bot.newdo configure do |c|
     c.server ="irc.freenode.org" c.channels = ["#cinch-bots"]
     end on :message, "hello"do |m|
     m.reply "Hello, #{m.user.nick}"endendbot.start

    examples 目录中可以找到更多示例。

    特性

    文档

    轻松提供一个文档 API,这是你的view快乐在这里。

    对象方向

    很多IRC机器人都很棒,但是我们很少看到他们利用优秀的面向对象界面,大多数程序员已经习惯了这种界面,并且已经习惯了他们喜欢的功能。

    好吧把这个功能运用到。 它不仅可以传递对通道或者用户的引用,还可以将它的传递给另一种方法,从而使代码更加简洁,易于理解,从而使代码更加易于理解。

    螺纹

    许多流行的IRC框架不同,easy是线程。 等等别让我吓到你。 这是很容易掌握的。

    easy和handler的每个插件都是在自己的个人线程中执行的。 这意味着主线程可以关注它的最佳功能,提供不阻塞的读取和写入IRC服务器。 这将阻止你的机器人在你的插件开始执行某些强操作时锁定。 that了。

    插件插件

    好的,Cinch提供一个基于模块的插件系统。 这是很多人一直监听我们的一个特性。 它最终就在这里,如你所希望的那样 !

    这个系统允许你创建功能打包的插件,而不会干扰任何容易使用的。 插件中的所有内容都是自包含的,这意味着你可以在朋友中共享你喜欢的插件,并发布一大堆自己的插件供

    想看到相同的Hello,在插件表单中的世界应用程序? 当然可以 !

    require'cinch'classHelloincludeCinch::Plugin match "hello"defexecute(m)
     m.reply "Hello, #{m.user.nick}"endendbot =Cinch::Bot.newdo configure do |c|
     c.server ="irc.freenode.org" c.channels = ["#cinch-bots"]
     c.plugins.plugins = [Hello]
     endendbot.start

    注意:插件采用默认的/^/ 前缀,这意味着实际的MATCH 是 hello。!

    更多信息可以在 {Cinch::Plugin} 文档中找到。

    数字回复

    你知道代码 401代表什么? 376或者 502? 当然你不喜欢( 如果你这么做了你就像我们一样)。 简单地说,你不希望将整个 IRC RFC代码集存储在你的头部,而且 !

    这就是为什么easy有大量常量代表这些数字,所以你不必记住它们。 我们真是 are。

    输出

    当你的机器人在网上看到这些无法阅读的线路时,总是不能看到你的终端屏幕。 帮助是手工的默认情况下,很容易将所有发送到终端的文本色彩化。 轻松地为插件记录自定义消息提供了一种方法:

    on :message, /hello/do |m|
     debug "Someone said hello"end

    喜欢爱 ruby爱帮助? 当然可以如果你觉得很容易丢失那个令人吃惊的下颌下降特性,你可以成为这个魔术。

    请注意,尽管我们非常感谢你的所有工作,但是很容易为 ruby 1.8兼容性接受补丁。 我们不打算在 1.9.1以下支持 ruby 版本。

    fork 项目,在它的自己的分支中实现你的优秀特性,并向它的中一个简单协作者发送一个。 我们会很高兴地查看一下。


      framework  构建  Building  bot  IRC  
    相关文章