Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
original-brownbear committed May 3, 2017
1 parent 6a33081 commit d832fe7
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 15 deletions.
51 changes: 51 additions & 0 deletions lib/logstash/filters/cli_transcoder.rb
@@ -0,0 +1,51 @@
# encoding: utf-8

require "logstash-core"
require "logstash/logging"
require "logstash/environment"
require "logstash/devutils/rspec/logstash_helpers"
require "logstash/devutils/rspec/shared_examples"
require "logstash/filters/useragent"
require "logstash/filters/useragent_java"
require "yaml"

testcases = [
"additional_os_tests.yaml", "firefox_user_agent_strings.yaml",
"opera_mini_user_agent_strings.yaml", "pgts_browser_list.yaml",
"pgts_browser_list-orig.yaml", "test_device.yaml", "test_os.yaml",
"test_ua.yaml"
]

test_case_path = File.expand_path('../../../../ua-parser/src/test/resources', __FILE__)

lines = testcases.flat_map do |test_case_file|
YAML.load_file(File.join(test_case_path, test_case_file))['test_cases'].map do |test_case|
test_case['user_agent_string']
end
end

#
#::File.open('/tmp/lines.txt', 'a+') do |f|
# lines.each do |line|
# f.write "#{line}\n"
# end
# f.flush
#end

ruby_filter = LogStash::Filters::UserAgent.new("source" => "foo")
ruby_filter.register
java_filter = LogStash::Filters::UserAgentJava.new("source" => "foo")
java_filter.register

puts(Time.now.to_s)
(1..lines.length).each do |n|
ruby_filter.lookup_useragent lines[n]
end

puts(Time.now.to_s)

(1..lines.length).each do |n|
java_filter.lookup_useragent lines[n]
end

puts(Time.now.to_s)
30 changes: 15 additions & 15 deletions ua-parser/src/main/java/org/logstash/uaparser/UserAgentParser.java
Expand Up @@ -46,28 +46,15 @@ public UserAgent parse(String agentString) {
return null;
}
UserAgent agent;
for (UserAgentParser.UAPattern p : patterns) {
for (UserAgentParser.UAPattern p : this.patterns) {
if ((agent = p.match(agentString)) != null) {
return agent;
}
}
return new UserAgent("Other", null, null, null);
}

protected static UserAgentParser.UAPattern patternFromMap(Map<String, String> configMap) {
String regex = configMap.get("regex");
if (regex == null) {
throw new IllegalArgumentException("User agent is missing regex");
}
return new UAPattern(
Pattern.compile(regex),
configMap.get("family_replacement"),
configMap.get("v1_replacement"),
configMap.get("v2_replacement")
);
}

protected static class UAPattern {
private static class UAPattern {
private final Pattern pattern;
private final String familyReplacement, v1Replacement, v2Replacement;

Expand Down Expand Up @@ -113,4 +100,17 @@ public UserAgent match(String agentString) {
return family == null ? null : new UserAgent(family, v1, v2, v3);
}
}

private static UserAgentParser.UAPattern patternFromMap(Map<String, String> configMap) {
String regex = configMap.get("regex");
if (regex == null) {
throw new IllegalArgumentException("User agent is missing regex");
}
return new UserAgentParser.UAPattern(
Pattern.compile(regex),
configMap.get("family_replacement"),
configMap.get("v1_replacement"),
configMap.get("v2_replacement")
);
}
}

0 comments on commit d832fe7

Please sign in to comment.