我想知道是否有人可以帮助我理解下面的 Ruby 代码?我对 Ruby 编程很陌生,并且无法理解每个函数的含义。
当我使用我的 twitter 用户名和密码作为参数运行它时,我会得到一个 twitter 提要样本流。我需要对此代码做什么才能仅显示主题标签?
我试图每 30 秒收集一次主题标签,然后从主题标签的出现次数最少到最多进行排序。
不是在寻找解决方案,而是在寻找想法。谢谢!
require 'eventmachine'
require 'em-http'
require 'json'
usage = "#{$0} <user> <password>"
abort usage unless user = ARGV.shift
abort usage unless password = ARGV.shift
url = 'https://stream.twitter.com/1/statuses/sample.json'
def handle_tweet(tweet)
return unless tweet['text']
puts "#{tweet['user']['screen_name']}: #{tweet['text']}"
end
EventMachine.run do
http = EventMachine::HttpRequest.new(url).get :head => { 'Authorization' => [ user, password ] }
buffer = ""
http.stream do |chunk|
buffer += chunk
while line = buffer.slice!(/.+\r?\n/)
handle_tweet JSON.parse(line)
end
end
end