【问题标题】:ruby - cinch irc bot - everything after a wordruby - cinch irc bot - 一句话后的一切
【发布时间】:2012-03-07 23:47:03
【问题描述】:

标题不好,但我不知道如何描述它。

on :message, "\.addfact" do |m|
  open('facts.txt', 'a') { |f|
    f.print "\n *XXXXXX* ~ #{m.user.nick}"
  }
  m.reply "Fact added, #{m.user.nick}"
end

基本上,只要机器人所在的 IRC 频道中有人这样做:

.addfact 这是事实。但它包括点 ... 和笑脸 =) :)

这里的小机器人会将其附加到文本文件中,并带有格式

这是另一个事实,但它在另一行并且是之前添加的 =) ~ Cool_guy

这是事实,它包括点 ... 和笑脸 =) :) ~ random_irc_user

我已经有了新的线路,并且“random_irc_user”部分正在工作, 但我不知道如何做实际的事实。我猜是争论或类似的,但我不太确定。

【问题讨论】:

    标签: ruby irc


    【解决方案1】:

    使用正则表达式并在您的命令之后捕获所有内容:

    on :message, /^\.addfact (.+)/ do |m, fact|
      File.open('facts.txt', 'a') { |f| f.puts "#{fact} ~ #{m.user.nick}" }
      m.reply "Fact added!"
    end
    

    【讨论】:

    • 对不起,我不太明白...这就是我试图在 :message, /^\.addfact (.+)/ do |m, fact| 上做的事情open('facts.txt', 'a') { |f| f.print "\n ~ #{m.user.nick}" } m.reply "事实补充!"结束
    • 你使用了我的确切例子吗? fact 变量将包含您要添加到文件中的字符串。因此,您可以继续添加该代码。你不明白哪一部分?
    • # .. 添加事实字符串。而且我不确定我将如何将实际事实写入 txt
    • 那是一条注释.. 那是您自己编写代码的部分。你有 fact 字符串,所以你可以像以前一样打开你的事实文件并附加该字符串。
    • 不管怎样,我只是更新了示例以提供您已经编写的代码
    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 2012-06-06
    • 2012-10-15
    • 1970-01-01
    • 2012-09-22
    • 2011-06-03
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多