【问题标题】:I need help getting my bot to respond a different response each time我需要帮助让我的机器人每次都响应不同的响应
【发布时间】:2016-10-01 18:44:52
【问题描述】:

我正在为 tumblr 制作一个笑话机器人,它会以“问候 [这里的提问者名字],小便。你真的,小屁孩。”的一些变体来回应提问者。我试图包含 4 个可能的响应,而不是一个包罗万象的响应,这是我遇到障碍的地方。这是我当前的机器人的全部代码(机器人是在 Ubuntu 中使用 Ruby 编写的):

require 'tumblr_client'
USERNAME = "thepissbot"
def piss
  # Authenticate via OAuth
  client = Tumblr::Client.new({
    :consumer_key => ENV['CONSUMER_KEY'],
    :consumer_secret => ENV['CONSUMER_SECRET'],
    :oauth_token => ENV['OAUTH_TOKEN'],
    :oauth_token_secret => ENV['OAUTH_TOKEN_SECRET']
  })
  # Make the request
  asks = client.submissions(USERNAME, limit: 5)['posts']
  asks.each do |ask|
    if ask ['type'] !='answer'
      piss
      return
      response1 = "Greetings #{ask['asking_name']}, piss. Yours truly, Pissy Boy."
      response2 = "Dear, #{ask['asking_name']}, piss. Love, Pissy Boy."
      response3 = "Salutations #{ask['asking_name']}, piss. Sincerely, Pissy Boy."
      response4 = "What's up, #{ask['asking_name']}? Piss. Your friend, Pissy Boy."
      array=(response1 response2 response3 response4)
      tags = "piss mail"
      client.edit(USERNAME,
        id: ask['id'],
        answer: array,
        state: 'published',
        tags: tags
      )
    end
  end
end

据终端称,这应该是“有效的”。但是,当我检查该机器人的收件箱时,我发送的测试问题仍未得到答复,这当然不是预期的行为。我认为这与我处理数组的方式有关。 这已经是 2 天的问题了......我觉得它应该非常简单,但我只是错过了一些东西。任何帮助将不胜感激。

【问题讨论】:

  • 你能修复代码的缩进吗?
  • 其实我就是这么写的……
  • ...为什么?您是否按空格字符收费?
  • 我之所以这样写是因为我还没有正确格式化它。我试图在格式化之前先让代码工作,因此我问这个问题。另外,不,我不相信我会被空白字符收费。
  • 格式化不应该是你推迟的事情。您应该始终在编写代码时对其进行格式化。我现在就给你做,大概需要 20 秒。

标签: ruby tumblr bots


【解决方案1】:

好的,现在您的代码格式正确,错误很明显:

if ask ['type'] !='answer'
  piss
  return
  ... (some other code)

这个early 返回将导致整个piss 方法完成。除非这个return 调用有什么目的,否则请移除它。

这应该使格式化代码的好处显而易见;您可以更轻松地查看正在运行的代码行是哪个ifeachdef 块。

【讨论】:

  • 我删除了return 调用并再次运行它,但它仍然没有响应询问。它还在我的收件箱里。然而,这确实是有道理的......我不敢相信我没有早点明白这一点......糟糕。
  • 您确定answer 应该是一个数组而不是array.sample 之类的字符串吗?我不了解 Tumblr API,因此无法为您提供更多帮助。
  • 让它array.sample 似乎也无法解决它......不过,谢谢你的尝试。
  • piss 方法。哈哈
猜你喜欢
  • 2021-04-09
  • 1970-01-01
  • 2021-06-26
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 2020-11-26
  • 2019-06-08
相关资源
最近更新 更多