class LogStash::Inputs::Twitter
Read events from the twitter streaming api.
Public Instance Methods
register()
click to toggle source
# File lib/logstash/inputs/twitter.rb, line 51 def register require "twitter" @client = Twitter::Streaming::Client.new do |c| c.consumer_key = @consumer_key c.consumer_secret = @consumer_secret.value c.access_token = @oauth_token c.access_token_secret = @oauth_token_secret.value end end
run(queue)
click to toggle source
# File lib/logstash/inputs/twitter.rb, line 62 def run(queue) @logger.info("Starting twitter tracking", :keywords => @keywords) @client.filter(:track => @keywords.join(",")) do |tweet| @logger.info? && @logger.info("Got tweet", :user => tweet.user.screen_name, :text => tweet.text) event = LogStash::Event.new( "@timestamp" => tweet.created_at.gmtime, "message" => tweet.full_text, "user" => tweet.user.screen_name, "client" => tweet.source, "retweeted" => tweet.retweeted?, "source" => "http://twitter.com/#{tweet.user.screen_name}/status/#{tweet.id}" ) decorate(event) event["in-reply-to"] = tweet.in_reply_to_status_id if tweet.reply? unless tweet.urls.empty? event["urls"] = tweet.urls.map(&:expanded_url).map(&:to_s) end queue << event end # client.filter end