aua 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|