我为tumblr制作了一个笑话机器人,回答问题的问题,并且有一些变化的问候语[问问姓名在这里],小便。真的,Pissy Boy。"。我试图包括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天的问题......我觉得它应该是超级简单但我只是缺少一些东西。任何帮助将不胜感激。
答案 0 :(得分:1)
好了,现在您的代码格式正确,错误很明显:
if ask ['type'] !='answer'
piss
return
... (some other code)
此early
返回将导致整个piss
方法完成。除非此return
来电有一些目的,否则请删除它。
这应该使格式化代码的好处变得明显;您可以更轻松地查看哪个if
,each
,def
阻止了正在运行的代码行。