lib/fluent/plugin/in_twitter.rb in fluent-plugin-twitter-0.4.1 vs lib/fluent/plugin/in_twitter.rb in fluent-plugin-twitter-0.5.0
- old
+ new
@@ -1,19 +1,25 @@
module Fluent
class TwitterInput < Fluent::Input
- TIMELINE_TYPE = %w(userstream sampling tracking)
+ TIMELINE_TYPE = %w(userstream sampling location tracking)
OUTPUT_FORMAT_TYPE = %w(nest flat simple)
Plugin.register_input('twitter', self)
- config_param :consumer_key, :string
- config_param :consumer_secret, :string
- config_param :oauth_token, :string
- config_param :oauth_token_secret, :string
+ # To support Fluentd v0.10.57 or earlier
+ unless method_defined?(:router)
+ define_method("router") { Fluent::Engine }
+ end
+
+ config_param :consumer_key, :string, :secret => true
+ config_param :consumer_secret, :string, :secret => true
+ config_param :oauth_token, :string, :secret => true
+ config_param :oauth_token_secret, :string, :secret => true
config_param :tag, :string
config_param :timeline, :string
config_param :keyword, :string, :default => nil
config_param :follow_ids, :string, :default => nil
+ config_param :locations, :string, :default => nil
config_param :lang, :string, :default => nil
config_param :output_format, :string, :default => 'simple'
config_param :flatten_separator, :string, :default => '_'
def initialize
@@ -59,10 +65,12 @@
client = get_twitter_connection
if ['sampling', 'tracking'].include?(@timeline) && @keyword
client.track(@keyword)
elsif @timeline == 'tracking' && @follow_ids
client.follow(@follow_ids)
+ elsif @timeline == 'location' && @locations
+ client.locations(@locations)
elsif @timeline == 'sampling' && @keyword.nil? && @follow_ids.nil?
client.sample
elsif @timeline == 'userstream'
client.userstream
end
@@ -111,10 +119,10 @@
record.store('user_screen_name', status[:user][:screen_name])
record.store('user_profile_image_url', status[:user][:profile_image_url])
record.store('user_time_zone', status[:user][:time_zone])
record.store('user_lang', status[:user][:lang])
end
- Engine.emit(@tag, Engine.now, record)
+ router.emit(@tag, Engine.now, record)
end
def hash_flatten(record, prefix = nil)
record.inject({}) do |d, (k, v)|
k = prefix.to_s + k.to_s