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