我寫了一些紅寶石代碼存檔推文,但我有幾個問題。
1.我的代碼似乎效率低下,你能幫我重構嗎?
2.我真的不明白如何處理twitter錯誤。我想打印出它拋出的具體錯誤,而不僅僅是我的標準文本。
3.我不明白如何使用速率限制狀態碼。我的代碼總是吐出完全一樣的東西:「在接下來的59分59秒內剩下150個Twitter API請求」
謝謝!重構我的紅寶石嘰嘰喳喳寶石代碼
require 'twitter'
count = 1
query = "hello"
res = Twitter.search(query, :rpp => 1, :result_type => "recent", :page => 1).results
search_id = res.first.id
loop do
begin
res = Twitter.search(query, :rpp => 100, :result_type => "recent", :page => 1, :max_id => search_id).results
res.each do |status|
puts "#{status.id}, #{status.created_at}, #{status.from_user}, #{status.text}"
puts count.to_s
count = count+1
end
search_id = res.last.id-1
rescue Twitter::Error => e
rate_limit_status = Twitter.rate_limit_status
puts "#{rate_limit_status.remaining_hits} Twitter API request(s) remaining for the next #{((rate_limit_status.reset_time - Time.now)/60).floor} minutes and #{((rate_limit_status.reset_time - Time.now) % 60).round} seconds"
puts "Error: No more tweets to collect."
puts e.inspect
puts "Last tweet collected at #{res.last.created_at}"
break
end
end
有一件事'while(true)'to'loop'因爲它看起來更好 – AJcodez 2012-08-16 08:02:04