aua 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.rvmrc +1 -0
- data/CHANGES.md +7 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +42 -0
- data/Guardfile +5 -0
- data/LICENSE +20 -0
- data/README.md +22 -0
- data/Rakefile +7 -0
- data/aua.gemspec +26 -0
- data/lib/aua.rb +87 -0
- data/lib/aua/agents.rb +16 -0
- data/lib/aua/agents/api_clients.rb +42 -0
- data/lib/aua/agents/chrome.rb +35 -0
- data/lib/aua/agents/engine_fallback.rb +19 -0
- data/lib/aua/agents/feed_reader.rb +19 -0
- data/lib/aua/agents/firefox.rb +40 -0
- data/lib/aua/agents/http_checker.rb +28 -0
- data/lib/aua/agents/konqueror.rb +20 -0
- data/lib/aua/agents/msie.rb +23 -0
- data/lib/aua/agents/opera.rb +28 -0
- data/lib/aua/agents/others.rb +33 -0
- data/lib/aua/agents/safari.rb +66 -0
- data/lib/aua/agents/search_bot.rb +36 -0
- data/lib/aua/operating_systems.rb +16 -0
- data/lib/aua/operating_systems/android.rb +28 -0
- data/lib/aua/operating_systems/ios.rb +20 -0
- data/lib/aua/operating_systems/linux.rb +42 -0
- data/lib/aua/operating_systems/mac.rb +74 -0
- data/lib/aua/operating_systems/mobiles.rb +35 -0
- data/lib/aua/operating_systems/palm.rb +33 -0
- data/lib/aua/operating_systems/windows.rb +36 -0
- data/lib/aua/stack_base.rb +10 -0
- data/lib/aua/version.rb +3 -0
- data/spec/aua_spec.rb +474 -0
- data/spec/spec_helper.rb +8 -0
- metadata +160 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
module Aua::OperatingSystems::Windows
|
2
|
+
|
3
|
+
def self.extend?(agent)
|
4
|
+
agent.comments.first &&
|
5
|
+
(agent.app_comments.include?("Windows") ||
|
6
|
+
agent.comments_string =~ PATTERN)
|
7
|
+
end
|
8
|
+
|
9
|
+
VERSIONS = {
|
10
|
+
"NT 6.1" => "7",
|
11
|
+
"NT 6.0" => "Vista",
|
12
|
+
"NT 5.2" => "XP",
|
13
|
+
"NT 5.1" => "XP",
|
14
|
+
"NT 5.01" => "2000",
|
15
|
+
"NT 5.0" => "2000",
|
16
|
+
"NT 4.0" => "NT 4.0",
|
17
|
+
"98" => "98",
|
18
|
+
"95" => "95",
|
19
|
+
"CE" => "CE",
|
20
|
+
"9x 4.90" => "ME"
|
21
|
+
}
|
22
|
+
|
23
|
+
PATTERN = /Win(dows)?\s?([\d\sA-Zx\.]+)/
|
24
|
+
|
25
|
+
def platform
|
26
|
+
:Windows
|
27
|
+
end
|
28
|
+
|
29
|
+
def os_name
|
30
|
+
:Windows
|
31
|
+
end
|
32
|
+
|
33
|
+
def os_version
|
34
|
+
@os_version ||= comments_string =~ PATTERN && VERSIONS[$2] || $2
|
35
|
+
end
|
36
|
+
end
|
data/lib/aua/version.rb
ADDED
data/spec/aua_spec.rb
ADDED
@@ -0,0 +1,474 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Aua do
|
4
|
+
|
5
|
+
describe ".parse/.new" do
|
6
|
+
it "should be fast" do
|
7
|
+
start = Time.now
|
8
|
+
runs = 10
|
9
|
+
runs.times do
|
10
|
+
EXAMPLES.each do |string, values|
|
11
|
+
Aua.parse string
|
12
|
+
end
|
13
|
+
end
|
14
|
+
sec = Time.now - start
|
15
|
+
mspr = ((sec/runs*1_000/EXAMPLES.size)*10_000).to_i/10_000.0
|
16
|
+
puts "#{sec} sec #{mspr} ms/string #{(EXAMPLES.size*runs/sec).to_i} strings/sec"
|
17
|
+
mspr.should < 0.2
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when parsing blank string" do
|
21
|
+
let(:user_agent) { Aua.parse("") }
|
22
|
+
|
23
|
+
it "returns an instance of Aua" do
|
24
|
+
user_agent.should be_kind_of(Aua)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context "when parsing nil" do
|
29
|
+
let(:user_agent) { Aua.parse(nil) }
|
30
|
+
|
31
|
+
it "returns an instance of Aua" do
|
32
|
+
user_agent.should be_kind_of(Aua)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context "when parsing unknown string" do
|
37
|
+
let(:user_agent) { Aua.parse("Bla/1.2.3;Blupp;X/2.0.0") }
|
38
|
+
|
39
|
+
it "returns an instance of Aua" do
|
40
|
+
user_agent.should be_kind_of(Aua)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
EXAMPLES = {
|
45
|
+
# Firefox
|
46
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13" =>
|
47
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :os_name => :MacOSX, :os_version => "10.6", :platform => :Macintosh },
|
48
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11 " =>
|
49
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.11", :os_name => :Windows, :os_version => "Vista", :platform => :Windows },
|
50
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2" =>
|
51
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.2", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
52
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)" =>
|
53
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :os_name => :Windows, :os_version => "Vista", :platform => :Windows },
|
54
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9) Gecko/2008061004 Firefox/3.0" =>
|
55
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.0", :os_name => :MacOSX, :os_version => "10.6", :platform => :Macintosh },
|
56
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13" =>
|
57
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
58
|
+
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3" =>
|
59
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.0.3", :os_name => :MacOSX, :os_version => "10.5", :platform => :Macintosh },
|
60
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b9) Gecko/20100101 Firefox/4.0b9" =>
|
61
|
+
{ :type => :Browser, :name => :Firefox, :version => "4.0b9", :os_name => :MacOSX, :os_version => "10.6", :platform => :Macintosh },
|
62
|
+
"Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3" =>
|
63
|
+
{ :type => :Browser, :name => :Firefox, :version => "1.5.0.3", :os_name => :Windows, :os_version => "ME", :platform => :Windows },
|
64
|
+
"Mozilla/5.0 (Windows; U; Win98; de-DE; rv:1.7) Gecko/20040803 Firefox/0.9.3" =>
|
65
|
+
{ :type => :Browser, :name => :Firefox, :version => "0.9.3", :os_name => :Windows, :os_version => "98", :platform => :Windows },
|
66
|
+
"Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.1.7) Gecko/20070930 Firefox/2.0.0.7" =>
|
67
|
+
{ :type => :Browser, :name => :Firefox, :version => "2.0.0.7", :os_name => :Linux, :os_version => "OpenBSD", :platform => :X11 },
|
68
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13 (.NET CLR 3.5.30729)" =>
|
69
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :os_name => :Linux, :os_version => "Ubuntu", :platform => :X11 },
|
70
|
+
"Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.13) Gecko/20101206 Red Hat/3.6-2.el5 Firefox/3.6.13" =>
|
71
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :os_name => :Linux, :os_version => "Red Hat", :platform => :X11 },
|
72
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.0.12) Gecko/2009072711 CentOS/3.0.12-1.el5.centos Firefox/3.0.12" =>
|
73
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.0.12", :os_name => :Linux, :os_version => "CentOS", :platform => :X11 },
|
74
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100915 Gentoo Firefox/3.6.9" =>
|
75
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.9", :os_name => :Linux, :os_version => "Gentoo", :platform => :X11 },
|
76
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.13) Gecko/20101203 YFF35 Firefox/3.6.13 GTB7.1 (.NET CLR 3.5.30729)" =>
|
77
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
78
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.13) Gecko/20101203 SUSE/3.6.13-0.2.1 Firefox/3.6.13" =>
|
79
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :os_name => :Linux, :os_version => "SUSE", :platform => :X11 },
|
80
|
+
"Mozilla/5.0 (X11; Linux x86_64; rv:2.0b10pre) Gecko/20110120 Firefox-4.0/4.0b10pre" =>
|
81
|
+
{ :type => :Browser, :name => :Firefox, :version => "4.0b10pre", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
82
|
+
"Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.14pre) Gecko/20110113 Ubuntu/9.10 (karmic) Namoroka/3.6.14pre" =>
|
83
|
+
{ :type => :Browser, :name => :Firefox, :version => "3.6.14pre", :os_name => :Linux, :os_version => "Ubuntu", :platform => :X11 },
|
84
|
+
|
85
|
+
# Firefox/Mozilla based
|
86
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9a9pre) Gecko/2007110108 prism/0.8" =>
|
87
|
+
{ :type => :Browser, :name => :Prism, :version => "0.8", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
88
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2pre) Gecko/20100322 Prism/1.0b4" =>
|
89
|
+
{ :type => :Browser, :name => :Prism, :version => "1.0b4", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
90
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.15) Gecko/20101027 SeaMonkey/2.0.10" =>
|
91
|
+
{ :type => :Browser, :name => :SeaMonkey, :version => "2.0.10", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
92
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en; rv:1.9.0.19) Gecko/2010111021 Camino/2.0.6 (like Firefox/3.0.19)" =>
|
93
|
+
{ :type => :Browser, :name => :Camino, :version => "2.0.6", :os_name => :MacOSX, :os_version => "10.5", :platform => :Macintosh },
|
94
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110107 Iceweasel/3.5.16 (like Firefox/3.5.16)" =>
|
95
|
+
{ :type => :Browser, :name => :Iceweasel, :version => "3.5.16", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
96
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.0.19) Gecko/2010120923 Iceweasel/3.0.6 (Debian-3.0.6-3)" =>
|
97
|
+
{ :type => :Browser, :name => :Iceweasel, :version => "3.0.6", :os_name => :Linux, :os_version => "Debian", :platform => :X11 },
|
98
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7" =>
|
99
|
+
{ :type => :Browser, :name => :Thunderbird, :version => "3.1.7", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
100
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.9.0.8) Gecko/20080528 Fedora/2.24.3-4.fc10 Epiphany/2.22 Firefox/3.0" =>
|
101
|
+
{ :type => :Browser, :name => :Epiphany, :version => "2.22", :os_name => :Linux, :os_version => "Fedora", :platform => :X11 },
|
102
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.8.1.13) Gecko/20080326 (Debian-1.8.1.13-1) Epiphany/2.20" =>
|
103
|
+
{ :type => :Browser, :name => :Epiphany, :version => "2.20", :os_name => :Linux, :os_version => "Debian", :platform => :X11 },
|
104
|
+
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008100716 Firefox/3.0.3 Flock/2.0" =>
|
105
|
+
{ :type => :Browser, :name => :Flock, :version => "2.0", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
106
|
+
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6" =>
|
107
|
+
{ :type => :Browser, :name => :NetscapeNavigator, :version => "9.0.0.6", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
108
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1" =>
|
109
|
+
{ :type => :Browser, :name => :NetscapeNavigator, :version => "8.0.1", :os_name => :Windows, :os_version => "2000", :platform => :Windows },
|
110
|
+
|
111
|
+
# Safari
|
112
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" =>
|
113
|
+
{ :type => :Browser, :name => :Safari, :version => "5.0.2", :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
114
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4" =>
|
115
|
+
{ :type => :Browser, :name => :Safari, :version => "5.0.3", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
116
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-de) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10" =>
|
117
|
+
{ :type => :Browser, :name => :Safari, :version => "4.0.4", :os_name => :MacOSX, :os_version => "10.6.2", :platform => :Macintosh },
|
118
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10" =>
|
119
|
+
{ :type => :Browser, :name => :Safari, :version => "4.0.4", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
120
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.28.3" =>
|
121
|
+
{ :type => :Browser, :name => :Safari, :version => "3.2.3", :os_name => :MacOSX, :os_version => "10.5.7", :platform => :Macintosh },
|
122
|
+
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3" =>
|
123
|
+
{ :type => :Browser, :name => :Safari, :version => "2.0.4", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
124
|
+
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412 (KHTML, like Gecko) Safari/412" =>
|
125
|
+
{ :type => :Browser, :name => :Safari, :version => "2.0", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
126
|
+
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/312.9 (KHTML, like Gecko) Safari/312.6" =>
|
127
|
+
{ :type => :Browser, :name => :Safari, :version => "1.3.2", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
128
|
+
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; es) AppleWebKit/85 (KHTML, like Gecko) Safari/85" =>
|
129
|
+
{ :type => :Browser, :name => :Safari, :version => "1.0", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
130
|
+
"Safari/6533.19.4 CFNetwork/454.11.5 Darwin/10.6.0 (i386) (iMac8%2C1)" =>
|
131
|
+
{ :type => :Browser, :name => :Safari, :version => "6533.19.4", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
132
|
+
|
133
|
+
# Safari based
|
134
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko) Fluid/0.9.6 Safari/533.18.1" =>
|
135
|
+
{ :type => :Browser, :name => :Fluid, :version => "0.9.6", :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
136
|
+
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; de-de) AppleWebKit/533.17.8 (KHTML, like Gecko) Fluid/0.9.6 Safari/533.17.8" =>
|
137
|
+
{ :type => :Browser, :name => :Fluid, :version => "0.9.6", :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
138
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/525.18 (KHTML, like Gecko, Safari/525.20) OmniWeb/v622.4.0.109283" =>
|
139
|
+
{ :type => :Browser, :name => :OmniWeb, :version => "v622.4.0.109283", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
140
|
+
"MobileSafari/6531.22.7 CFNetwork/485.2 Darwin/10.3.1" =>
|
141
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "6531.22.7", :os_name => :Darwin, :os_version => "10.3.1", :platform => :Darwin },
|
142
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Epiphany/2.30.6 Safari/534.7" =>
|
143
|
+
{ :type => :Browser, :name => :Epiphany, :version => "2.30.6", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
144
|
+
"Mozilla/5.0 (X11; U; OpenBSD arm; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.30.0" =>
|
145
|
+
{ :type => :Browser, :name => :Epiphany, :version => "2.30.0", :os_name => :Linux, :os_version => "OpenBSD", :platform => :X11 },
|
146
|
+
"Mozilla/5.0 (X11; U; Linux x86_64; zh-cn) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.28.0 SUSE/2.28.0-2.4" =>
|
147
|
+
{ :type => :Browser, :name => :Epiphany, :version => "2.28.0", :os_name => :Linux, :os_version => "SUSE", :platform => :X11 },
|
148
|
+
"Mozilla/5.0 (compatible; Konqueror/4.4; Linux) KHTML/4.4.1 (like Gecko) Fedora/4.4.1-1.fc12" =>
|
149
|
+
{ :type => :Browser, :name => :Konqueror, :version => "4.4", :os_name => :Linux, :os_version => "Fedora", :platform => :X11 },
|
150
|
+
"Mozilla/5.0 (compatible; Konqueror/4.3; Linux 2.6.31-16-generic; X11) KHTML/4.3.2 (like Gecko)" =>
|
151
|
+
{ :type => :Browser, :name => :Konqueror, :version => "4.3", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
152
|
+
"Mozilla/5.0 (compatible; Konqueror/4.0; Windows) KHTML/4.0.83 (like Gecko)" =>
|
153
|
+
{ :type => :Browser, :name => :Konqueror, :version => "4.0", :os_name => :Windows, :os_version => nil, :platform => :Windows },
|
154
|
+
|
155
|
+
# Chrome
|
156
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.638.0 Safari/534.16" =>
|
157
|
+
{ :type => :Browser, :name => :Chrome, :version => "10.0.638.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
158
|
+
"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.613.0 Chrome/10.0.613.0 Safari/534.15" =>
|
159
|
+
{ :type => :Browser, :name => :Chrome, :version => "10.0.613.0", :os_name => :Linux, :os_version => "Ubuntu", :platform => :X11 },
|
160
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.231 Safari/534.10" =>
|
161
|
+
{ :type => :Browser, :name => :Chrome, :version => "8.0.552.231", :os_name => :MacOSX, :os_version => "10.6.4", :platform => :Macintosh },
|
162
|
+
|
163
|
+
# Chrome based
|
164
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10 chromeframe/8.0.552.237" =>
|
165
|
+
{ :type => :Browser, :name => :Chromeframe, :version => "8.0.552.237", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
166
|
+
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6.6; BTRS26718; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C) chromeframe/8.0.552.237" =>
|
167
|
+
{ :type => :Browser, :name => :Chromeframe, :version => "8.0.552.237", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
168
|
+
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Iron/4.0.280.0 Chrome/4.0.280.0 Safari/532.9" =>
|
169
|
+
{ :type => :Browser, :name => :Iron, :version => "4.0.280.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
170
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Iron/5.0.381.0 Chrome/5.0.381 Safari/533.4" =>
|
171
|
+
{ :type => :Browser, :name => :Iron, :version => "5.0.381.0", :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
172
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.10 (KHTML, like Gecko) RockMelt/0.8.40.147 Chrome/8.0.552.231 Safari/534.10" =>
|
173
|
+
{ :type => :Browser, :name => :RockMelt, :version => "0.8.40.147", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
174
|
+
|
175
|
+
# Opera
|
176
|
+
"Opera/9.80 (Windows NT 6.1; U; de) Presto/2.7.62 Version/11.00" =>
|
177
|
+
{ :type => :Browser, :name => :Opera, :version => "11.00", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
178
|
+
"Opera/9.80 (X11; Linux i686; U; en-GB) Presto/2.6.30 Version/10.62" =>
|
179
|
+
{ :type => :Browser, :name => :Opera, :version => "10.62", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
180
|
+
"Opera/9.80 (Windows NT 6.1; U; en) Presto/2.5.24 Version/10.54" =>
|
181
|
+
{ :type => :Browser, :name => :Opera, :version => "10.54", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
182
|
+
"Opera/10.00 (X11; Linux i686 ; U; en) Presto/2.2.0" =>
|
183
|
+
{ :type => :Browser, :name => :Opera, :version => "10.00", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
184
|
+
"Opera/9.25 (Windows NT 6.0; U; en)" =>
|
185
|
+
{ :type => :Browser, :name => :Opera, :version => "9.25", :os_name => :Windows, :os_version => "Vista", :platform => :Windows },
|
186
|
+
"Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.5" =>
|
187
|
+
{ :type => :Browser, :name => :Opera, :version => "8.5", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
188
|
+
"Mozilla/4.0 (compatible; MSIE 6.0; Mac_PowerPC Mac OS X; en) Opera 8.5" =>
|
189
|
+
{ :type => :Browser, :name => :Opera, :version => "8.5", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
190
|
+
"Opera/8.5 (Macintosh; PPC Mac OS X; U; en)" =>
|
191
|
+
{ :type => :Browser, :name => :Opera, :version => "8.5", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
192
|
+
"Opera/8.01 (Windows NT 5.1)" =>
|
193
|
+
{ :type => :Browser, :name => :Opera, :version => "8.01", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
194
|
+
"Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.01" =>
|
195
|
+
{ :type => :Browser, :name => :Opera, :version => "8.01", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
196
|
+
"Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]" =>
|
197
|
+
{ :type => :Browser, :name => :Opera, :version => "6.01", :os_name => :Windows, :os_version => "95", :platform => :Windows },
|
198
|
+
|
199
|
+
# Opera Mini/Mobile
|
200
|
+
"Opera/9.80 (BlackBerry; Opera Mini/5.1.22303/22.453; U; de) Presto/2.5.25 Version/10.54" =>
|
201
|
+
{ :type => :Browser, :name => :OperaMini, :version => "5.1.22303", :os_name => :BlackBerry, :os_version => nil, :platform => :BlackBerry },
|
202
|
+
"Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/22.453; U; en) Presto/2.5.25 Version/10.54" =>
|
203
|
+
{ :type => :Browser, :name => :OperaMini, :version => "5.1.22296", :os_name => :"J2ME/MIDP", :os_version => nil, :platform => :"J2ME/MIDP" },
|
204
|
+
"Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.13337/504; U; en) Presto/2.2.0" =>
|
205
|
+
{ :type => :Browser, :name => :OperaMini, :version => "4.2.13337", :os_name => :"J2ME/MIDP", :os_version => nil, :platform => :"J2ME/MIDP" },
|
206
|
+
"Opera/9.80 (S60; SymbOS; Opera Mobi/499; U; en-GB) Presto/2.4.18 Version/10.00" =>
|
207
|
+
{ :type => :Browser, :name => :OperaMobile, :version => "10.00", :os_name => :SymbianOS, :os_version => nil, :platform => :SymbianOS },
|
208
|
+
"Opera/9.80 (Linux armv7l; Maemo; Opera Mobi/4; U; de) Presto/2.5.28 Version/10.1" =>
|
209
|
+
{ :type => :Browser, :name => :OperaMobile, :version => "10.1", :os_name => :Linux, :os_version => "Maemo", :platform => :X11 },
|
210
|
+
|
211
|
+
# MSIE
|
212
|
+
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" =>
|
213
|
+
{ :type => :Browser, :name => :MSIE, :version => "9.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
214
|
+
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; InfoPath.3)" =>
|
215
|
+
{ :type => :Browser, :name => :MSIE, :version => "8.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
216
|
+
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)" =>
|
217
|
+
{ :type => :Browser, :name => :MSIE, :version => "8.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
218
|
+
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.6)" =>
|
219
|
+
{ :type => :Browser, :name => :MSIE, :version => "8.0", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
220
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6.4; .NET CLR 1.1.4322; FDM; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" =>
|
221
|
+
{ :type => :Browser, :name => :MSIE, :version => "7.0", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
222
|
+
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; ZangoToolbar 4.8.2)" =>
|
223
|
+
{ :type => :Browser, :name => :MSIE, :version => "6.0", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
224
|
+
"Mozilla/4.0 (compatible; MSIE 5.14; Mac_PowerPC)" =>
|
225
|
+
{ :type => :Browser, :name => :MSIE, :version => "5.14", :os_name => :MacOS, :os_version => nil, :platform => :Macintosh },
|
226
|
+
"Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; IDG.pl; Alexa Toolbar)" =>
|
227
|
+
{ :type => :Browser, :name => :MSIE, :version => "5.5", :os_name => :Windows, :os_version => "98", :platform => :Windows },
|
228
|
+
"Mozilla/4.0 (compatible; MSIE 7.0)" =>
|
229
|
+
{ :type => :Browser, :name => :MSIE, :version => "7.0", :os_name => nil, :os_version => nil, :platform => nil },
|
230
|
+
"Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)" =>
|
231
|
+
{ :type => :Browser, :name => :MSIE, :version => "6.0", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
232
|
+
|
233
|
+
# iPhone / iPad / iPod
|
234
|
+
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5" =>
|
235
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "5.0.2", :os_name => :iOS, :os_version => "4.2.1", :platform => :iPhone },
|
236
|
+
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; de-de) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16" =>
|
237
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "4.0", :os_name => :iOS, :os_version => "3.1.3", :platform => :iPhone },
|
238
|
+
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8C148" =>
|
239
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "8C148", :os_name => :iOS, :os_version => "4.2.1", :platform => :iPhone },
|
240
|
+
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F136 Safari/525.20" =>
|
241
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "3.1.1", :os_name => :iOS, :os_version => "2.1", :platform => :iPhone },
|
242
|
+
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3" =>
|
243
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "3.0", :os_name => :iOS, :os_version => nil, :platform => :iPhone },
|
244
|
+
|
245
|
+
"Mozilla/5.0 (iPod; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7" =>
|
246
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "4.0.5", :os_name => :iOS, :os_version => "4.0", :platform => :iPod },
|
247
|
+
"Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11a Safari/525.20" =>
|
248
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "3.1.1", :os_name => :iOS, :os_version => "2.2.1", :platform => :iPod },
|
249
|
+
"Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A100a Safari/419.3" =>
|
250
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "3.0", :os_name => :iOS, :os_version => nil, :platform => :iPod },
|
251
|
+
|
252
|
+
"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405" =>
|
253
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "7B405", :os_name => :iOS, :os_version => "3.2.1", :platform => :iPad },
|
254
|
+
"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B405 Safari/531.21.10" =>
|
255
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "4.0.4", :os_name => :iOS, :os_version => "3.2.1", :platform => :iPad },
|
256
|
+
"Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5" =>
|
257
|
+
{ :type => :Browser, :name => :MobileSafari, :version => "5.0.2", :os_name => :iOS, :os_version => "4.2.1", :platform => :iPad },
|
258
|
+
|
259
|
+
# Android
|
260
|
+
"Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2" =>
|
261
|
+
{ :type => :Browser, :name => :AndroidWebkit, :version => "3.0.4", :os_name => :Android, :os_version => "1.1", :platform => :Android },
|
262
|
+
"Mozilla/5.0 (Linux; U; Android 0.5; en-us) AppleWebKit/522+ (KHTML, like Gecko) Safari/419.3" =>
|
263
|
+
{ :type => :Browser, :name => :AndroidWebkit, :version => nil, :os_name => :Android, :os_version => "0.5", :platform => :Android },
|
264
|
+
"Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17" =>
|
265
|
+
{ :type => :Browser, :name => :AndroidWebkit, :version => "4.0", :os_name => :Android, :os_version => "2.1", :platform => :Android },
|
266
|
+
|
267
|
+
# Palm (Pre)
|
268
|
+
"Mozilla/5.0 (webOS/1.3; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Desktop/1.0" =>
|
269
|
+
{ :type => :Browser, :name => :webOSWebkit, :version => "1.0", :os_name => :webOS, :os_version => "1.3", :platform => :webOS },
|
270
|
+
|
271
|
+
# Mobiles
|
272
|
+
"Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 3650;424) Opera 6.10 [en]" =>
|
273
|
+
{ :type => :Browser, :name => :OperaMobile, :version => "6.10", :os_name => :SymbianOS, :os_version => nil, :platform => :SymbianOS },
|
274
|
+
"Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; Nokia 6600/4.09.1; 6329) Opera 8.00 [en]" =>
|
275
|
+
{ :type => :Browser, :name => :OperaMobile, :version => "8.00", :os_name => :SymbianOS, :os_version => nil, :platform => :SymbianOS },
|
276
|
+
"Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaX6-00/30.0.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.6 3gpp-gba,gzip(gfe),gzip(gfe),gzip(gfe)" =>
|
277
|
+
{ :type => :Browser, :name => :AppleWebKit, :version => "525", :os_name => :SymbianOS, :os_version => "9.4", :platform => :SymbianOS },
|
278
|
+
"Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/3.83; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413" =>
|
279
|
+
{ :type => :Browser, :name => :Safari, :version => "413", :os_name => :SymbianOS, :os_version => "9.2", :platform => :SymbianOS },
|
280
|
+
"Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es61i" =>
|
281
|
+
{ :type => :Browser, :name => :AppleWebKit, :version => "413", :os_name => :SymbianOS, :os_version => "9.1", :platform => :SymbianOS },
|
282
|
+
"HTC_HD2_T8585 Opera/9.70 (Windows NT 5.1; U; de)" =>
|
283
|
+
{ :type => :Browser, :name => :Opera, :version => "9.70", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
284
|
+
"Swisscom/1.0/HTC_Touch_Pro/ Opera/9.50 (Windows NT 5.1; U; de)" =>
|
285
|
+
{ :type => :Browser, :name => :Opera, :version => "9.50", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
286
|
+
|
287
|
+
# ApiClients
|
288
|
+
"curl/7.20.0 (x86_64-pc-linux-gnu) libcurl/7.20.0 OpenSSL/0.9.8l zlib/1.2.3" =>
|
289
|
+
{ :type => :ApiClient, :name => :curl, :version => "7.20.0", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
290
|
+
"Yahoo Pipes 2.0" =>
|
291
|
+
{ :type => :ApiClient, :name => :YahooPipes, :version => "2.0", :os_name => nil, :os_version => nil, :platform => nil },
|
292
|
+
"Zendesk" =>
|
293
|
+
{ :type => :ApiClient, :name => :Zendesk, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
294
|
+
"Python-urllib/2.6" =>
|
295
|
+
{ :type => :ApiClient, :name => :"Python-urllib", :version => "2.6", :os_name => nil, :os_version => nil, :platform => nil },
|
296
|
+
"Ruby" =>
|
297
|
+
{ :type => :ApiClient, :name => :Ruby, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
298
|
+
"PEAR HTTP_Request class ( http://pear.php.net/ )" =>
|
299
|
+
{ :type => :ApiClient, :name => :PearPHP, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
300
|
+
"NativeHost" =>
|
301
|
+
{ :type => :ApiClient, :name => :CappucinosNativeHost, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
302
|
+
"Java/1.6.0_20" =>
|
303
|
+
{ :type => :ApiClient, :name => :Java, :version => "1.6.0_20", :os_name => nil, :os_version => nil, :platform => nil },
|
304
|
+
"Systemeinstellungen5.2 CFNetwork/438.16 Darwin/9.8.0 (i386) (MacBookPro5%2C5)" =>
|
305
|
+
{ :type => :ApiClient, :name => :SystemPreferences, :version => nil, :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
306
|
+
"Systemeinstellungen/7.0 CFNetwork/454.11.5 Darwin/10.6.0 (i386) (iMac8%2C1)" =>
|
307
|
+
{ :type => :ApiClient, :name => :SystemPreferences, :version => "7.0", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
308
|
+
"SystemUIServer248.9 CFNetwork/438.16 Darwin/9.8.0 (i386) (iMac8%2C1)" =>
|
309
|
+
{ :type => :ApiClient, :name => :SystemUIServer, :version => nil, :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
310
|
+
"SystemUIServer/298.16 CFNetwork/454.11.5 Darwin/10.5.0 (i386) (MacPro3%2C1)" =>
|
311
|
+
{ :type => :ApiClient, :name => :SystemUIServer, :version => "298.16", :os_name => :MacOSX, :os_version => "10.6.5", :platform => :Macintosh },
|
312
|
+
"AppEngine-Google; (+http://code.google.com/appengine; appid: aquantum-todo)" =>
|
313
|
+
{ :type => :ApiClient, :name => :"AppEngine-Google", :version => "appid: aquantum-todo", :os_name => nil, :os_version => nil, :platform => nil },
|
314
|
+
"AppEngine-Google; (+http://code.google.com/appengine)" =>
|
315
|
+
{ :type => :ApiClient, :name => :"AppEngine-Google", :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
316
|
+
"Twisted PageGetter" =>
|
317
|
+
{ :type => :ApiClient, :name => :PythonTwistedPageGetter, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
318
|
+
|
319
|
+
# Others
|
320
|
+
"1PasswordThumbs/1 CFNetwork/454.11.5 Darwin/10.6.0 (i386) (MacBookPro4%2C1)" =>
|
321
|
+
{ :type => :Others, :name => :"1PasswordThumbs", :version => "1", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
322
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X) Word/12.25.0" =>
|
323
|
+
{ :type => :Others, :name => :MSWord, :version => "12.25.0", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
324
|
+
"Microsoft Office/14.0 (Windows NT 6.1; Microsoft Outlook 14.0.5128; Pro; ms-office; MSOffice 14)" =>
|
325
|
+
{ :type => :Others, :name => :MSOffice, :version => "14.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
326
|
+
|
327
|
+
# HttpCheckers
|
328
|
+
"check_http/v2053 (nagios-plugins 1.4.13)" =>
|
329
|
+
{ :type => :HttpChecker, :name => :Nagios, :version => "v2053", :os_name => nil, :os_version => nil, :platform => nil },
|
330
|
+
"Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)" =>
|
331
|
+
{ :type => :HttpChecker, :name => :PingdomBot, :version => "1.4", :os_name => nil, :os_version => nil, :platform => nil },
|
332
|
+
"NewRelicPinger/1.0" =>
|
333
|
+
{ :type => :HttpChecker, :name => :NewRelicPinger, :version => "1.0", :os_name => nil, :os_version => nil, :platform => nil },
|
334
|
+
"W3C_Validator/1.1" =>
|
335
|
+
{ :type => :HttpChecker, :name => :W3C_Validator, :version => "1.1", :os_name => nil, :os_version => nil, :platform => nil },
|
336
|
+
"FeedValidator/1.3" =>
|
337
|
+
{ :type => :HttpChecker, :name => :FeedValidator, :version => "1.3", :os_name => nil, :os_version => nil, :platform => nil },
|
338
|
+
|
339
|
+
# Feed Reader/Parser
|
340
|
+
"Windows-RSS-Platform/2.0 (MSIE 9.0; Windows NT 6.1)" =>
|
341
|
+
{ :type => :FeedReader, :name => :"Windows-RSS-Platform", :version => "2.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
342
|
+
"Vienna/2.5.0.2501" =>
|
343
|
+
{ :type => :FeedReader, :name => :Vienna, :version => "2.5.0.2501", :os_name => nil, :os_version => nil, :platform => nil },
|
344
|
+
"NewsGatorOnline/2.0 (http://www.newsgator.com; 1 subscribers)" =>
|
345
|
+
{ :type => :FeedReader, :name => :NewsGatorOnline, :version => "2.0", :os_name => nil, :os_version => nil, :platform => nil },
|
346
|
+
"NewsFire/84 CFNetwork/454.11.5 Darwin/10.6.0 (i386) (iMac11%2C3)" =>
|
347
|
+
{ :type => :FeedReader, :name => :NewsFire, :version => "84", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
348
|
+
"NetNewsWire/3.2b24 (Mac OS X; http://www.newsgator.com/Individuals/NetNewsWire/)" =>
|
349
|
+
{ :type => :FeedReader, :name => :NetNewsWire, :version => "3.2b24", :os_name => nil, :os_version => nil, :platform => nil },
|
350
|
+
"MWFeedParser" =>
|
351
|
+
{ :type => :FeedReader, :name => :MWFeedParser, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
352
|
+
"SimplePie/1.1.1 (Feed Parser; http://simplepie.org; Allow like Gecko) Build/20080315205900" =>
|
353
|
+
{ :type => :FeedReader, :name => :SimplePie, :version => "1.1.1", :os_name => nil, :os_version => nil, :platform => nil },
|
354
|
+
"MagpieRSS/0.72 \(+http://magpierss.sf.net\)" =>
|
355
|
+
{ :type => :FeedReader, :name => :MagpieRSS, :version => "0.72", :os_name => nil, :os_version => nil, :platform => nil },
|
356
|
+
"Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; feed-id=6486597085114830250)" =>
|
357
|
+
{ :type => :FeedReader, :name => :"Feedfetcher-Google", :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
358
|
+
"Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=10493421032871565854)" =>
|
359
|
+
{ :type => :FeedReader, :name => :"Feedfetcher-Google", :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
360
|
+
"Apple-PubSub/65.20" =>
|
361
|
+
{ :type => :FeedReader, :name => :"Apple-PubSub", :version => "65.20", :os_name => nil, :os_version => nil, :platform => nil },
|
362
|
+
"Netvibes (http://www.netvibes.com/; 1 subscribers; feedID: 6639445)" =>
|
363
|
+
{ :type => :FeedReader, :name => :Netvibes, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
364
|
+
"AppleSyndication/38" =>
|
365
|
+
{ :type => :FeedReader, :name => :AppleSyndication, :version => "38", :os_name => nil, :os_version => nil, :platform => nil },
|
366
|
+
|
367
|
+
# SearchBots
|
368
|
+
"Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" =>
|
369
|
+
{ :type => :SearchBot, :name => :Bingbot, :version => "2.0", :os_name => nil, :os_version => nil, :platform => nil },
|
370
|
+
"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" =>
|
371
|
+
{ :type => :SearchBot, :name => :YahooSlurp, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
372
|
+
"Baiduspider+(+http://www.baidu.jp/spider/)" =>
|
373
|
+
{ :type => :SearchBot, :name => :Baiduspider, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
374
|
+
"Baiduspider+(+http://www.baidu.com/search/spider.htm)" =>
|
375
|
+
{ :type => :SearchBot, :name => :Baiduspider, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
376
|
+
"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.htm)" =>
|
377
|
+
{ :type => :SearchBot, :name => :Baiduspider, :version => "2.0", :os_name => nil, :os_version => nil, :platform => nil },
|
378
|
+
"msnbot/2.0b (+http://search.msn.com/msnbot.htm)._" =>
|
379
|
+
{ :type => :SearchBot, :name => :msnbot, :version => "2.0b", :os_name => nil, :os_version => nil, :platform => nil },
|
380
|
+
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" =>
|
381
|
+
{ :type => :SearchBot, :name => :Googlebot, :version => "2.1", :os_name => nil, :os_version => nil, :platform => nil },
|
382
|
+
"DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" =>
|
383
|
+
{ :type => :SearchBot, :name => :GooglebotMobile, :version => "2.1", :os_name => nil, :os_version => nil, :platform => nil },
|
384
|
+
|
385
|
+
# Engine Fallbacks
|
386
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-au) AppleWebKit/533.19.4 (KHTML, like Gecko)" =>
|
387
|
+
{ :type => :Browser, :name => :AppleWebKit, :version => "533.19.4", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
388
|
+
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) 1Password/3.5.5/355003 (like Mobile/8C148 Safari/6533.18.5)" =>
|
389
|
+
{ :type => :Browser, :name => :AppleWebKit, :version => "533.17.9", :os_name => :iOS, :os_version => "4.2.1", :platform => :iPhone },
|
390
|
+
"Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.14pre) Gecko/20110113 Ubuntu/9.10 (karmic)" =>
|
391
|
+
{ :type => :Browser, :name => :Gecko, :version => "20110113", :os_name => :Linux, :os_version => "Ubuntu", :platform => :X11 },
|
392
|
+
"Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20070606" =>
|
393
|
+
{ :type => :Browser, :name => :Gecko, :version => "20070606", :os_name => :Linux, :os_version => "Solaris", :platform => :X11 },
|
394
|
+
"Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.12) Gecko/20051105" =>
|
395
|
+
{ :type => :Browser, :name => :Gecko, :version => "20051105", :os_name => :Linux, :os_version => "FreeBSD", :platform => :X11 },
|
396
|
+
}
|
397
|
+
|
398
|
+
EXAMPLES.each do |string, values|
|
399
|
+
context "when parsing #{string.inspect}" do
|
400
|
+
let(:user_agent) { Aua.parse(string) }
|
401
|
+
values.each do |key, value|
|
402
|
+
it "should return #{value} for #{key}" do
|
403
|
+
user_agent.send(key).should eql(value)
|
404
|
+
end
|
405
|
+
end
|
406
|
+
end
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|
410
|
+
context "empty String" do
|
411
|
+
its(:raw) { should eql("")}
|
412
|
+
its(:products) { should eql([]) }
|
413
|
+
its(:versions) { should eql([]) }
|
414
|
+
its(:comments) { should eql([]) }
|
415
|
+
|
416
|
+
it "should return nil on #version_of" do
|
417
|
+
subject.version_of(nil).should eql(nil)
|
418
|
+
subject.version_of("Firefox").should eql(nil)
|
419
|
+
end
|
420
|
+
|
421
|
+
its(:os_string) { should eql(nil) }
|
422
|
+
its(:platform_string) { should eql(nil) }
|
423
|
+
|
424
|
+
its(:name) { should eql(nil) }
|
425
|
+
its(:type) { should eql(nil) }
|
426
|
+
its(:version) { should eql(nil) }
|
427
|
+
its(:os_name) { should eql(nil) }
|
428
|
+
its(:os_version) { should eql(nil) }
|
429
|
+
its(:platform) { should eql(nil) }
|
430
|
+
|
431
|
+
it{ should be_unknown }
|
432
|
+
its(:to_s) { should eql("Unknown: ")}
|
433
|
+
end
|
434
|
+
|
435
|
+
context "simple user agent string" do
|
436
|
+
subject{ Aua.new("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13") }
|
437
|
+
|
438
|
+
its(:raw) { should eql("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13")}
|
439
|
+
its(:products) { should eql(["Mozilla", "Gecko", "Firefox"]) }
|
440
|
+
its(:versions) { should eql(["5.0", "20101203", "3.6.13"]) }
|
441
|
+
its(:comments) { should eql([["Macintosh", "U", "Intel Mac OS X 10.6", "de", "rv:1.9.2.13"], [], []]) }
|
442
|
+
|
443
|
+
it "should return version on #version_of" do
|
444
|
+
subject.version_of("Mozilla").should eql("5.0")
|
445
|
+
subject.version_of("Firefox").should eql("3.6.13")
|
446
|
+
end
|
447
|
+
|
448
|
+
its(:platform_string) { should eql("Macintosh") }
|
449
|
+
its(:os_string) { should eql("Intel Mac OS X 10.6") }
|
450
|
+
|
451
|
+
it{ should_not be_unknown }
|
452
|
+
its(:to_s) { should eql("Browser Firefox/3.6.13 MacOSX/10.6 Macintosh")}
|
453
|
+
end
|
454
|
+
|
455
|
+
context "unknown user agent string" do
|
456
|
+
subject{ Aua.new("Mozilla/5.0 (Bla; U; Krank; de; rv:1.9.2.13) Less/20101203 Vrrrr/3.6.13") }
|
457
|
+
|
458
|
+
its(:raw) { should eql("Mozilla/5.0 (Bla; U; Krank; de; rv:1.9.2.13) Less/20101203 Vrrrr/3.6.13")}
|
459
|
+
its(:products) { should eql(["Mozilla", "Less", "Vrrrr"]) }
|
460
|
+
its(:versions) { should eql(["5.0", "20101203", "3.6.13"]) }
|
461
|
+
its(:comments) { should eql([["Bla", "U", "Krank", "de", "rv:1.9.2.13"], [], []]) }
|
462
|
+
|
463
|
+
it "should return version on #version_of" do
|
464
|
+
subject.version_of("Mozilla").should eql("5.0")
|
465
|
+
subject.version_of("Vrrrr").should eql("3.6.13")
|
466
|
+
end
|
467
|
+
|
468
|
+
its(:platform_string) { should eql("Bla") }
|
469
|
+
its(:os_string) { should eql("Krank") }
|
470
|
+
|
471
|
+
it{ should be_unknown }
|
472
|
+
its(:to_s) { should eql("Unknown: Mozilla/5.0 (Bla; U; Krank; de; rv:1.9.2.13) Less/20101203 Vrrrr/3.6.13")}
|
473
|
+
end
|
474
|
+
end
|