lib/fluent/plugin/out_referer_parser.rb in fluent-plugin-referer-parser-0.0.4 vs lib/fluent/plugin/out_referer_parser.rb in fluent-plugin-referer-parser-0.0.5

- old
+ new

@@ -12,11 +12,11 @@ config_param :out_key_known, :string, default: 'referer_known' config_param :out_key_referer, :string, default: 'referer_referer' config_param :out_key_search_term, :string, default: 'referer_search_term' - REFERERS = RefererParser::Referers.load_referers_from_yaml(RefererParser::Referers.get_yaml_file) + REFERER = RefererParser::Referer.new('http://example.org/') def initialize super require 'cgi' end @@ -57,27 +57,27 @@ end def emit(tag, es, chain) tag = tag_mangle(tag) es.each do |time, record| - referer = - begin - RefererParser::Referer.new(record[@key_name], nil, REFERERS) - rescue - nil - end - if referer && referer.known? - search_term = referer.search_term - parameters = CGI.parse(referer.uri.query) + valid = true + begin + REFERER.parse(record[@key_name]) + rescue + valid = false + end + if valid && REFERER.known? + search_term = REFERER.search_term + parameters = CGI.parse(REFERER.uri.query) input_encoding = parameters['ie'][0] || parameters['ei'][0] begin search_term = search_term.force_encoding(input_encoding).encode('utf-8') if input_encoding && /\Autf-?8\z/i !~ input_encoding rescue - $log.error('invalid referer: ' + referer.uri.to_s) + $log.error('invalid referer: ' + REFERER.uri.to_s) end record.merge!( @out_key_known => true, - @out_key_referer => referer.referer, + @out_key_referer => REFERER.referer, @out_key_search_term => search_term, ) else record.merge!(@out_key_known => false) end