browserino 4.1.0 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ Browserino.config.emails do
4
+ match %r{outlook}i, name: :outlook
5
+ match %r{airmail}i, name: :airmail, engine: :webkit
6
+ match %r{barca}i, name: :barca, version: %r{barca(?:pro)?/([\d\.]+)}i
7
+
8
+ match %r{ggpht}i do
9
+ name :gmail
10
+ engine %r{(trident|gecko|webkit|presto|blink|servo|edge)}i
11
+ engine_version %r{(?:rv:|trident|webkit|presto|blink
12
+ |servo|edge)[\s/]?([\d\.]+)}i
13
+ end
14
+
15
+ # these are the same as above except with engine set to gecko and
16
+ # to look for engine_version using gecko version pattern
17
+ preset engine: :gecko, engine_version: %r{rv:\s?([\d\.]+)}i do
18
+ match %r{thunderbird}i, name: :thunderbird
19
+ match %r{spicebird}i, name: :spicebird
20
+ match %r{postbox}i, name: :postbox
21
+ end
22
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ Browserino.config.define do
4
+ # Aside from the logic going on in this file, the order in which things are
5
+ # written is important! If you would move the :midori matcher below the
6
+ # :safari matcher and you would run rspec, you would see failures due to
7
+ # the change in order. The order can be changed - no problem,
8
+ # as long as the tests keep running
9
+
10
+ # a set of global matchers that will use formatted properties found earlier
11
+ # they will also be applied to every matcher unless that matcher has it's own
12
+ # (or inherited a property through like) property set up for
13
+ # the defined smart matcher
14
+ smart_match :version, with: ':name[\s/]?v?([\d\._]+)', flags: [:i]
15
+ smart_match :engine_version, with: ':engine[\s/]?([\d\._]+)', flags: [:i]
16
+
17
+ # a simple set of global matchers that will be merged and scanned
18
+ # with a specific matcher when the final client object is created
19
+ match do
20
+ locale %r{(?<!nintendo)[;\s(]([a-z]{2}(?:[-_][a-z]{2})?)\-?[;)]}i
21
+ architecture %r{((?:(?:x|x86_|amd|wow|win)64)|i[36]86|arm)}i
22
+
23
+ smarttv %r{(?:smart[\-\s]|hbb|apple\s|google|g)(tv)}i
24
+
25
+ tablet %r{(ipad|transformer|slider|a\d+f;|tablet|lenovo
26
+ |\s\w+tab\s)}xi
27
+
28
+ mobile %r{(bolt|nokia|samsung(?!b)|mobi(?:le)?|i?p(?:[ao]d|hone)
29
+ |android|bb\d+|blackberry|iemobile|fennec|bada|meego
30
+ |tizen|vodafone|kindle|kf\w\w|palmos|huawei|moto|lumia
31
+ |oneplus|fxos|nexus|opera\sm(?:ob|in)i|zte|htc(?!\-))}xi
32
+
33
+ platform %r{.*(wiiu?|nintendo\sds|playstation|windows\sphone|windows
34
+ |kf\w\w|mac(?:intosh|\sos\sx)|android|ip(?:[ao]d|hone)
35
+ |blackberry|linux|ubuntu|beos|unix|bsd|s(?:unos|olaris)
36
+ |tizen|xbox|amigaos|w(?:eb)?os|(?<!mi)cros|bada|palmos
37
+ |kindle|symbiano?s?|sailfish|meego|darwin|syllable|fxos
38
+ |(?<!en)risc|rim\stablet\sos|haiku|morphos|debian)}xi
39
+
40
+ platform_version %r{(?:windows(?:\sphone(?:\sos)?)?|nt|android|linux/?|fxos
41
+ |mac\sos\sx(?:\s\w+\s)?|(?:cpu\s|ip(?:[ao]d|hone)\s)os
42
+ |blackberry|bb|s(?:unos|olaris)/?|w(?:eb)?os/|tizen
43
+ |risc\s*|amigaos/?|cros\s[\w-]+|ows\sxp|darwin|palmos
44
+ |bada/?|symbianos/?|rim\stablet\sos)\s?([\d\._]+)}xi
45
+
46
+ device %r{(alcatel|all(?:tell|view)|htc|kindle|kf\w\w|apple\s?tv
47
+ |iphone|ipad|a\d+f;|archos|transformer|slider|me\d+x|zte
48
+ |blackberry|\d+dl|venue|desire|oneplus|lenovo|lumia|moto
49
+ |huawei\b|motorola|nokia|nexus|\b\w+tab\b|lg[-l]
50
+ |(?<!p)hp)}xi
51
+ end
52
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ # automatically set type to :library for each defined matcher
4
+ # additionally, set text to true to each of the matchers automatically
5
+ Browserino.config.libraries text: true do
6
+ match %r{Go-http-client}i, name: :golang, version: %r{-client/([\d\.]+)}i
7
+ match %r{python}i, name: :python, version: %r{-urllib/([\d\.]+)}i
8
+ match %r{luakit}i, name: :luakit, engine: :webkit
9
+ match %r{webfetch}i, name: :webfetch
10
+ match %r{pycurl}i, name: :pycurl
11
+ match %r{perl}i, name: :perl
12
+ match %r{java}i, name: :java
13
+ match %r{curl}i, name: :curl
14
+ match %r{wget}i, name: :wget
15
+ match %r{php}i, name: :php
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ Browserino.config.mediaplayers do
4
+ match %r{itunes}i, name: :itunes
5
+ match %r{dailymotion}i, name: :dailymotion
6
+ match %r{flycast}i, name: :flycast
7
+ match %r{coreplayer}i, name: :coreplayer
8
+ match %r{banshee}i, name: :banshee
9
+ match %r{foobar2000}i, name: :foobar2000
10
+ match %r{boxee}i, name: :boxee
11
+ match %r{gomplayer}i, name: :gomplayer, version: %r{yer\s([\d,\s]+)}i
12
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ Browserino.config.rss do
4
+ match %r{windows-rss}i, name: :windows_rss
5
+ match %r{apple-pubsub}i, name: :apple_pubsub
6
+ match %r{applesyndication}i, name: :safari_rss
7
+ match %r{sharpreader}i, name: :sharpreader
8
+ match %r{netnewswire}i, name: :netnewswire
9
+ match %r{omea\sreader}i, name: :omea_reader
10
+ match %r{rssbandit}i, name: :rssbandit
11
+ match %r{feeddemon}i, name: :feeddemon
12
+ match %r{lucknews}i, name: :lucknews
13
+ match %r{inoreader}i, name: :inoreader
14
+ match %r{rss\smenu}i, name: :rss_menu
15
+ match %r{rss\spopper}i, name: :rss_popper
16
+ match %r{homepage\srss\sread}i, name: :seznam_rss
17
+ match %r{nfreader}i, name: :nfreader
18
+ match %r{magpierss}i, name: :magpierss
19
+ match %r{gregarius}i, name: :gregarius
20
+ match %r{newsbreak}i, name: :newsbreak
21
+ match %r{blogbridge}i, name: :blogbridge
22
+ match %r{yeahreader}i, name: :yeahreader
23
+ match %r{newsbeuter}i, name: :newsbeuter
24
+ match %r{greatnews}i, name: :greatnews
25
+ match %r{bloglines}i, name: :bloglines
26
+ match %r{icatcher}i, name: :icatcher
27
+ match %r{newsfox}i, name: :newsfox
28
+ match %r{quiterss}i, name: :quiterss
29
+ match %r{liferea}i, name: :liferea
30
+ match %r{aiderss}i, name: :aiderss
31
+ match %r{reeder}i, name: :reeder
32
+ match %r{rssowl}i, name: :rssowl
33
+ match %r{feedly}i, name: :feedly
34
+ match %r{abilon}i, name: :abilon
35
+ match %r{shrook}i, name: :shrook
36
+ match %r{awasu}i, name: :awasu
37
+ match %r{sage}i, name: :sage
38
+ match %r{akregator}i, name: :akregator
39
+ match %r{trileet\snewsroom}i, name: :trileet_newsroom
40
+ match %r{dragonfly\srss}i, name: :dragonfly_rss
41
+ match %r{digg\sfeed\sfetcher}i, name: :digg_feed_fetcher
42
+ match %r{yahoofeedseeker}i, name: :yahoofeedseeker
43
+ match %r{universalfeedparser}i, name: :universalfeedparser
44
+ match %r{feedfetcher-google}i, name: :feedfetcher_google
45
+ match %r{fastladder\sfeed}i, name: :fastladder_feedfetcher
46
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # automatically set type to :validator for each defined matcher
4
+ # additionally, set text to true to each of the matchers automatically
5
+ Browserino.config.validators do
6
+ match %r{xenu\slink\ssleuth}i, name: :xenu_link_sleuth
7
+ match %r{screaming\sfrog\sseo}i, name: :screaming_frog_seo_spider
8
+ match %r{rel\slink\schecker}i, name: :rel_link_checker_lite
9
+ match %r{a1\swebsite\sanalyze}i, name: :a1_website_analyzer
10
+ match %r{w3c_multipage_valida}i, name: :w3c_multipage_validator
11
+ match %r{cse\shtml\svalidator}i, name: :cse_html_validator
12
+ match %r{p3p\svalidator}i, name: :p3p_validator
13
+ match %r{w3c-checklink}i, name: :w3c_checklink
14
+ match %r{w3c_i18n-checker}i, name: :w3c_i18n_checker
15
+ match %r{w3c_unicorn}i, name: :w3c_unicorn
16
+ match %r{w3c-mobileok}i, name: :w3c_mobileok
17
+ match %r{wdg_validator}i, name: :wdg_validator
18
+ match %r{w3c_validator}i, name: :w3c_validator
19
+ match %r{fplinkchecker}i, name: :fplinkchecker
20
+ match %r{linkchecker}i, name: :linkchecker
21
+ match %r{linkwalker}i, name: :linkwalker
22
+ match %r{linkexaminer}i, name: :linkexaminer
23
+ match %r{feedvalidator}i, name: :feedvalidator
24
+ match %r{htmlparser}i, name: :htmlparser
25
+ match %r{csscheck}i, name: :csscheck
26
+ match %r{checkbot}i, name: :checkbot
27
+ match %r{cynthia}i, name: :cynthia
28
+
29
+ match %r{validator\.nu}i, name: :validator_nu,
30
+ version: %r{idator\.nu/([\d\.]+)}i
31
+
32
+ match %r{htmlchecker}i, name: :anw_htmlchecker,
33
+ version: %r{htmlchecker/([\d\.]+)}i
34
+
35
+ match %r{w3c_css_validator}i, name: :w3c_css_validator,
36
+ version: %r{validator_jfouffa/([\d\.]+)}i
37
+ end
@@ -1,557 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Browserino.config.define do
4
- # Aside from the logic going on in this file, the order in which things are
5
- # written is important! If you would move the :midori matcher below the
6
- # :safari matcher and you would run rspec, you would see failures due to
7
- # the change in order. The order can be changed - no problem,
8
- # as long as the tests keep running
9
-
10
- # a set of global matchers that will use formatted properties found earlier
11
- # they will also be applied to every matcher unless that matcher has it's own
12
- # (or inherited a property through like) property set up for
13
- # the defined smart matcher
14
- smart_match :version, with: ':name[\s/]?v?([\d\._]+)', flags: [:i]
15
- smart_match :engine_version, with: ':engine[\s/]?([\d\._]+)', flags: [:i]
16
-
17
- # a simple set of global matchers that will be merged and scanned
18
- # with a specific matcher when the final client object is created
19
- match do
20
- locale %r{(?<!nintendo)[;\s(]([a-z]{2}(?:[-_][a-z]{2})?)[;)]}i
21
- architecture %r{((?:(?:x|x86_|amd|wow|win)64)|i[36]86|arm)}i
22
-
23
- mobile %r{(bolt|nokia|samsung(?!b)|mobi(?:le)?|i?p(?:[ao]d|hone)
24
- |android|bb\d+|blackberry|iemobile|fennec|bada|meego
25
- |tizen|vodafone|t\-mobile|kindle|kf\w\w
26
- |opera\sm(?:ob|in)i)}xi
27
-
28
- platform %r{.*(wiiu?|nintendo\sds|playstation|windows(?:\sphone)?
29
- |kf\w\w|mac(?:intosh|\sos\sx)|android|ip(?:[ao]d|hone)
30
- |blackberry|risc|linux|ubuntu|x11|bsd|s(?:unos|olaris)
31
- |tizen|xbox|amigaos|w(?:eb)?os|(?<!mi)cros|kindle)}xi
32
-
33
- platform_version %r{(?:windows(?:\sphone(?:\sos)?)?|nt|android|linux/?
34
- |mac\sos\sx(?:\s\w+\s)?|(?:cpu\s|ip(?:[ao]d|hone)\s)os
35
- |blackberry|bb|s(?:unos|olaris)/?|w(?:eb)?os/|tizen
36
- |risc\s*|amigaos/?|cros\s[\w-]+|ows\sxp)\s?([\d\._]+)}xi
37
- end
38
-
39
- # automatically set type to :email for each defined matcher
40
- emails do
41
- match %r{outlook}i, name: :outlook
42
- match %r{airmail}i, name: :airmail, engine: :webkit
43
- match %r{barca}i, name: :barca, version: %r{barca(?:pro)?/([\d\.]+)}i
44
-
45
- match %r{ggpht}i do
46
- name :gmail
47
- engine %r{(trident|gecko|webkit|presto|blink|servo|edge)}i
48
- engine_version %r{(?:rv:|trident|webkit|presto|blink
49
- |servo|edge)[\s/]?([\d\.]+)}i
50
- end
51
- end
52
-
53
- # these are the same as above except with engine set to gecko and
54
- # to look for engine_version using gecko version pattern
55
- emails engine: :gecko, engine_version: %r{rv:\s?([\d\.]+)}i do
56
- match %r{thunderbird}i, name: :thunderbird
57
- match %r{postbox}i, name: :postbox
58
- end
59
-
60
- # automatically set type to :browser for each defined matcher
61
- browsers do
62
- # a single matcher that will create a matcher for a specific match
63
- # matchers are added in an array in order of definition - higher is better
64
- # aliasses are prepended to the list instead of appended (e.g. like blocks)
65
- # this ensures that aliasses will be matched before any regular matcher
66
- match %r{maxthon}i do
67
- # define properties by calling a method with the desired name and:
68
- # -- value # => will create a static method that returns that value
69
- # -- /(pat)/ # => will create a method that scans the UA and
70
- # saves the first capture group
71
- # -- { blk } # => will create a dynamic method that returns the result
72
- # of the block, it will be executed within an
73
- # instantiated Client object (right after creation)
74
- name :maxthon
75
- engine %r{(webkit|presto|gecko|trident)}i
76
- end
77
-
78
- match %r{ucbrowser}i do
79
- name :ucbrowser
80
- engine %r{(trident|gecko|webkit|presto)}i
81
- end
82
-
83
- match %r{edge}i do
84
- name :edge
85
- engine :edge
86
- modern? true
87
- end
88
-
89
- match %r{ope?ra?\smini}i do
90
- name :opera_mini
91
- version %r{ope?ra?\smini/([\d\.]+)}i
92
- engine %r{(presto|webkit)}i
93
- end
94
-
95
- match %r{opera[^\w]}i do
96
- name :opera
97
- version %r{(?:opera[\s/]|version/)([\d\.]+)}i
98
- engine %r{(presto|webkit)}i
99
- end
100
-
101
- # escape has to come before IE
102
- match %r{escape}i, name: :escape
103
-
104
- match %r{flock}i, name: :flock, engine: %r{(webkit|gecko|servo)}i,
105
- engine_version: %r{(?:webkit|rv:|servo)[\s/]?([\d\.]+)}i
106
-
107
- match %r{sunrise}i, name: :sunrise, engine: %r{(webkit|gecko|servo)}i,
108
- engine_version: %r{(?:webkit|rv:|servo)[\s/]?([\d\.]+)}i
109
-
110
- match %r{msie|trident}i do
111
- name :ie
112
- engine :trident
113
- version %r{(?:(?:ms)?ie\s|rv:)([\d\.]+)}i
114
- modern? { version >= 10 }
115
- end
116
-
117
- match %r{chrome(?:ium)?}i do
118
- name :chrome
119
- version %r{chrome(?:ium)?/([\d\.]+)}i
120
- engine %r{(webkit|blink)}i
121
- modern? { version >= 50 }
122
- end
123
-
124
- match %r{nintendobrowser}i, name: :nintendobrowser, engine: :webkit
125
- match %r{deskbrowse}i, name: :deskbrowse, engine: :webkit
126
- match %r{qupzilla}i, name: :qupzilla, engine: :webkit
127
- match %r{midori}i, name: :midori, engine: :webkit
128
- match %r{shiira}i, name: :shiira, engine: :webkit
129
- match %r{amigavoyager}i, name: :amigavoyager
130
- match %r{(?<!(?:net))surf}i, name: :surf
131
-
132
- match %r{sundance}i, name: :sundance,
133
- version: %r{(?:version/|sundance/)([\d\.]+)}i
134
-
135
- match %r{inet\sbrowser}i, name: :inet_browser, platform: :star_blade_os,
136
- version: %r{browser[\s/]?([\d\.]+)}i
137
-
138
- match %r{ibm\swebexplorer}i, name: :ibm_webexplorer, platform: :os2,
139
- version: %r{bexplorer\s?/v?([\d\.]+)}i
140
-
141
- match %r{element\sbrowser}i, name: :element_browser, engine: :webkit,
142
- version: %r{browser[\s/]([\d\.]+)}i
143
-
144
- match %r{navscape}i, name: :navscape, engine: :webkit,
145
- version: %r{navscape/(?:\w+-)?([\d\.]+)}i
146
-
147
- match %r{firefox|phoenix}i do
148
- name :firefox
149
- engine %r{(gecko|servo)}i
150
- engine_version %r{(?:rv:\s?|servo/)([\d\.]+)}i
151
- modern? { version >= 50 }
152
- end
153
-
154
- match %r{safari}i do
155
- name :safari
156
- engine :webkit
157
- version %r{(?:safari|version)/([\d\.]+)}i
158
- modern? { version >= 9 }
159
- end
160
-
161
- match %r{epiphany}i, name: :epiphany, engine: :webkit
162
- match %r{uzbl}i, name: :uzbl, engine: :webkit
163
- match %r{roccat}i, name: :roccat, engine: :webkit
164
- match %r{adobeair}i, name: :adobeair, engine: :webkit
165
- match %r{abrowse}i, name: :abrowse, engine: :webkit
166
- match %r{vimprobable}i, name: :vimprobable, engine: :webkit
167
- match %r{amaya}i, name: :amaya, text: true
168
- match %r{lynx}i, name: :lynx, text: true
169
- match %r{linemode}i, name: :linemode, text: true
170
- match %r{elinks}i, name: :elinks, text: true
171
- match %r{netpositive}i, name: :netpositive
172
- match %r{onebrowser}i, name: :onebrowser
173
- match %r{flashfire}i, name: :flashfire
174
- match %r{konqueror}i, name: :konqueror
175
- match %r{cyberdog}i, name: :cyberdog
176
- match %r{hotjava}i, name: :hotjava
177
- match %r{netsurf}i, name: :netsurf
178
- match %r{contiki}i, name: :contiki
179
- match %r{mosaic|ibrowse[^r]}i, name: :mosaic
180
- match %r{dillo}i, name: :dillo
181
-
182
- match %r{alienblue}i, name: :alienblue,
183
- version: %r{alienblue(?:hd)?/([\d\.]+)}i
184
-
185
- match %r{obigo}i, name: :obigo, engine: :webkit,
186
- version: %r{obigo/w?([\d\.]+)}i
187
-
188
- match %r{ovibrowser}i, name: :ovibrowser, engine: :gecko,
189
- engine_version: %r{rv:\s?([\d\.]+)}i
190
-
191
- match %r{osb\-browser}i, name: :osb_browser, engine: :webkit,
192
- version: %r{\-browser/([\d\.]+)}i
193
-
194
- match %r{links}i, name: :links,
195
- version: %r{links\s\(([\d\.]+)}i
196
-
197
- match %r{oregano}i, name: :oregano,
198
- locale: %r{\[(\w{2}(?:\-\w{2})?)\]}i
199
-
200
- match %r{dooble}i, name: :dooble, engine: :webkit,
201
- locale: %r{\((\w{2}(?:[-_]\w{2})?)\)}i
202
-
203
- match %r{retawq}i, name: :retawq, text: true,
204
- locale: %r{\[(\w{2}(?:\-\w{2})?)\]}i
205
- end
206
-
207
- # automatically set type to :bot for each defined matcher
208
- # additionally, set text to true to each of the matchers automatically
209
- bots text: true do
210
- match %r{huaweisymantecspider}i, name: :huaweisymantecspider
211
- match %r{atomic_email_hunter}i, name: :atomic_email_hunter
212
- match %r{netresearchserver}i, name: :netresearchserver
213
- match %r{autoemailspider}i, name: :auto_email_spider
214
- match %r{flaming\sattackbot}i, name: :flaming_attackbot
215
- match %r{addsugarspiderbot}i, name: :addsugarspiderbot
216
- match %r{dataparksearch}i, name: :dataparksearch
217
- match %r{boston[_ ]project}i, name: :boston_project
218
- match %r{emailcollector}i, name: :emailcollector
219
- match %r{4anything}i, name: :four_anything
220
- match %r{aqua_products}i, name: :aqua_products
221
- match %r{arachnophilia}i, name: :arachnophilia
222
- match %r{emeraldshield}i, name: :emeraldshield
223
- match %r{issuecrawler}i, name: :issuecrawler
224
- match %r{jaxified\sbot}i, name: :jaxified_bot
225
- match %r{stackrambler}i, name: :stackrambler
226
- match %r{turnitinbot}i, name: :turnitinbot
227
- match %r{alkaline}i, name: :alkalinebot
228
- match %r{yahoo\!\sslurp}i, name: :yahoo_slurp
229
- match %r{emailsiphon}i, name: :emailsiphon
230
- match %r{backdoorbot}i, name: :backdoorbot
231
- match %r{terrawizbot}i, name: :terrawizbot
232
- match %r{searchsight}i, name: :searchsight
233
- match %r{baiduspider}i, name: :baiduspider
234
- match %r{linguee\sbot}i, name: :linguee_bot
235
- match %r{sandcrawler}i, name: :sandcrawler
236
- match %r{big\sbrother}i, name: :big_brother
237
- match %r{noxtrumbot}i, name: :noxtrumbot
238
- match %r{black\shole}i, name: :black_hole
239
- match %r{blackwidow}i, name: :blackwidow
240
- match %r{sosospider}i, name: :sosospider
241
- match %r{duckduckgo}i, name: :duckduckgo
242
- match %r{beslistbot}i, name: :beslistbot
243
- match %r{twitterbot}i, name: :twitterbot
244
- match %r{linkdexbot}i, name: :linkdexbot
245
- match %r{aitcsrobot}i, name: :aitcsrobot
246
- match %r{litefinder}i, name: :litefinder
247
- match %r{linkwalker}i, name: :linkwalker
248
- match %r{mabontland}i, name: :mabontland
249
- match %r{ahrefsbot}i, name: :ahrefsbot
250
- match %r{mojeekbot}i, name: :mojeekbot
251
- match %r{seznambot}i, name: :seznambot
252
- match %r{girafabot}i, name: :girafabot
253
- match %r{becomebot}i, name: :becomebot
254
- match %r{dts\sagent}i, name: :dts_agent
255
- match %r{emailwolf}i, name: :emailwolf
256
- match %r{googlebot}i, name: :googlebot
257
- match %r{omgilibot}i, name: :omgilibot
258
- match %r{altavista}i, name: :altavista
259
- match %r{yandexbot}i, name: :yandexbot
260
- match %r{newsgator}i, name: :newsgator
261
- match %r{instagram}i, name: :instagram
262
- match %r{pinterest}i, name: :pinterest
263
- match %r{gurujibot}i, name: :gurujibot
264
- match %r{lapozzbot}i, name: :lapozzbot
265
- match %r{mvaclient}i, name: :mvaclient
266
- match %r{ldspider}i, name: :ldspider
267
- match %r{lexxebot}i, name: :lexxebot
268
- match %r{scoutjet}i, name: :scoutjet
269
- match %r{linkedinbot}i, name: :linkedin
270
- match %r{bullseye}i, name: :bullseye
271
- match %r{alexibot}i, name: :alexibot
272
- match %r{face(?:bookexternalhit|bot)}i, name: :facebook
273
- match %r{getright}i, name: :getright
274
- match %r{asterias}i, name: :asterias
275
- match %r{catchbot}i, name: :catchbot
276
- match %r{discobot}i, name: :discobot
277
- match %r{geniebot}i, name: :geniebot
278
- match %r{koepabot}i, name: :koepabot
279
- match %r{synoobot}i, name: :synoobot
280
- match %r{rufusbot}i, name: :rufusbot
281
- match %r{rampybot}i, name: :rampybot
282
- match %r{mogimogi}i, name: :mogimogi
283
- match %r{jyxobot}i, name: :jyxobot
284
- match %r{orbiter}i, name: :orbiter
285
- match %r{polybot}i, name: :polybot
286
- match %r{accoona}i, name: :accoona
287
- match %r{mj12bot}i, name: :mj12bot
288
- match %r{aspider}i, name: :aspider
289
- match %r{blexbot}i, name: :blexbot
290
- match %r{bspider}i, name: :bspider
291
- match %r{auresys}i, name: :auresys
292
- match %r{bingbot}i, name: :bingbot
293
- match %r{gaisbot}i, name: :gaisbot
294
- match %r{backrub}i, name: :backrub
295
- match %r{harvest}i, name: :harvest
296
- match %r{nymesis}i, name: :nymesis
297
- match %r{radian6}i, name: :radian6
298
- match %r{scrubby}i, name: :scrubby
299
- match %r{snappy}i, name: :snappy
300
- match %r{vortex}i, name: :vortex
301
- match %r{tineye}i, name: :tineye
302
- match %r{sqworm}i, name: :sqworm
303
- match %r{qseero}i, name: :qseero
304
- match %r{pompos}i, name: :pompos
305
- match %r{ichiro}i, name: :ichiro
306
- match %r{bizbot}i, name: :bizbot
307
- match %r{msnbot}i, name: :msnbot
308
- match %r{exabot}i, name: :exabot
309
- match %r{msrbot}i, name: :msrbot
310
- match %r{dotbot}i, name: :dotbot
311
- match %r{cosmos}i, name: :cosmos
312
- match %r{ecatch}i, name: :ecatch
313
- match %r{scrapy}i, name: :scrapy
314
- match %r{holmes}i, name: :holmes
315
- match %r{tumblr}i, name: :tumblr
316
- match %r{mxbot}i, name: :mxbot
317
- match %r{acoon}i, name: :acoon
318
- match %r{nutch}i, name: :nutch
319
- match %r{ia_archiver}i, name: :alexa
320
- match %r{atomz}i, name: :atomz
321
- match %r{acoi}i, name: :acoi
322
- match %r{\sobot}i, name: :obot
323
- match %r{(?:ask)\sjeeves}i, name: :ask
324
- match %r{b2w}i, name: :b2w
325
-
326
- match %r{oegp}i, name: :oegp,
327
- version: %r{v\.\s([\d\.]+)}i
328
-
329
- match %r{ng-search}i, name: :ng_search,
330
- version: %r{-search/([\d\.]+)}i
331
-
332
- match %r{morning\spaper}i, name: :morning_paper,
333
- version: %r{\spaper\s([\d\.]+)}i
334
-
335
- match %r{l\.webis}i, name: :lwebis,
336
- version: %r{webis/([\d\.]+)}i
337
-
338
- match %r{covario-ids}i, name: :covario_ids,
339
- version: %r{io-ids/([\d\.]+)}i
340
-
341
- match %r{cerberian\sdrtrs}i, name: :cerberian_drtrs,
342
- version: %r{version[-/]([\d\.]+)}i
343
-
344
- match %r{gigamega}i, name: :gigamega,
345
- version: %r{mega\.bot/([\d\.]+)}i
346
-
347
- match %r{sogou(?:\s\w+)?\s?spider}i, name: :sogou_spider,
348
- version: %r{spider/([\d\.]+)}i
349
-
350
- match %r{megaindex}i, name: :megaindex,
351
- version: %r{index\.ru/([\d\.]+)}i
352
-
353
- match %r{mass\sdownloader}i, name: :mass_downloader,
354
- version: %r{downloader/([\d\.]+)}i
355
-
356
- match %r{safetynet\srobot}i, name: :safetynet_robot,
357
- version: %r{net\srobot\s([\d\.]+)}i
358
-
359
- match %r{internet\sninja}i, name: :internet_ninja,
360
- version: %r{ninja\s([\d\.]+)}i
361
-
362
- match %r{go\!zilla}i, name: :gozilla,
363
- version: %r{go\!zilla\s([\d\.]+)}i
364
-
365
- match %r{larbin}i, name: :larbin,
366
- version: %r{larbin_([\d\.]+)}i
367
-
368
- match %r{download\sdemon}i, name: :download_demon,
369
- version: %r{demon/([\d\.]+)}i
370
-
371
- match %r{netseer}i, name: :netseer,
372
- version: %r{\scrawler/([\d\.]+)}i
373
- end
374
-
375
- # automatically set type to :validator for each defined matcher
376
- # additionally, set text to true to each of the matchers automatically
377
- validators text: true do
378
- match %r{cse\shtml\svalidator}i, name: :cse_html_validator
379
- match %r{p3p\svalidator}i, name: :p3p_validator
380
- match %r{wdg_validator}i, name: :wdg_validator
381
- match %r{w3c_validator}i, name: :w3c_validator
382
- match %r{htmlparser}i, name: :htmlparser
383
- match %r{csscheck}i, name: :csscheck
384
-
385
- match %r{cynthia}i, name: :cynthia,
386
- version: %r{cynthia\s([\d\.]+)}i
387
-
388
- match %r{w3c_css_validator}i, name: :w3c_css_validator,
389
- version: %r{validator_jfouffa/([\d\.]+)}i
390
- end
391
-
392
- # automatically set type to :library for each defined matcher
393
- # additionally, set text to true to each of the matchers automatically
394
- libraries text: true do
395
- match %r{Go-http-client}i, name: :golang, version: %r{-client/([\d\.]+)}i
396
- match %r{python}i, name: :python, version: %r{-urllib/([\d\.]+)}i
397
- match %r{webfetch}i, name: :webfetch
398
- match %r{pycurl}i, name: :pycurl
399
- match %r{perl}i, name: :perl
400
- match %r{java}i, name: :java
401
- match %r{curl}i, name: :curl
402
- match %r{wget}i, name: :wget
403
- match %r{php}i, name: :php
404
- end
405
-
406
- # inherit properties a standard set of properties by the name of a
407
- # previously defined matcher, overwritten by properties added within matchers
408
- # inherit properties from matcher where name == :chrome, (except :version)
409
- like :chrome, except: [:version] do
410
- match %r{steam\sgame}i, name: :steam, version: %r{meoverlay/([\d\.]+)}i
411
- match %r{comodo_dragon}i, name: :comodo_dragon
412
- match %r{chromeplus}i, name: :chromeplus
413
- match %r{bluechrome}i, name: :bluechrome
414
- match %r{awesomium}i, name: :awesomium
415
- match %r{qqbrowser}i, name: :qqbrowser
416
- match %r{yabrowser}i, name: :yabrowser
417
- match %r{rockmelt}i, name: :rockmelt
418
- match %r{coolnovo}i, name: :coolnovo
419
- match %r{vivaldi}i, name: :vivaldi
420
- match %r{colibri}i, name: :colibri
421
- match %r{iridium}i, name: :iridium
422
- match %r{origin}i, name: :origin
423
- match %r{puffin}i, name: :puffin
424
- match %r{fluid}i, name: :fluid
425
- match %r{brave}i, name: :brave
426
- match %r{hana}i, name: :hana
427
- match %r{(?<!env)iron}i, name: :iron
428
-
429
- match %r{qtweb}i, name: :qtweb_browser,
430
- version: %r{net\sbrowser/([\d\.]+)}i
431
- end
432
-
433
- # inherit properties from matcher where name == :safari, (except :version)
434
- like :safari, except: [:version] do
435
- match %r{samsungbrowser}i, name: :samsungbrowser
436
- match %r{stainless}i, name: :stainless
437
- match %r{cheshire}i, name: :cheshire
438
- match %r{omniweb}i, name: :omniweb
439
- match %r{skyfire}i, name: :skyfire
440
- match %r{mercury}i, name: :mercury
441
- match %r{rekonq}i, name: :rekonq
442
- match %r{arora}i, name: :arora
443
- match %r{raptr}i, name: :raptr
444
- match %r{icab}i, name: :icab
445
- match %r{bolt}i, name: :bolt
446
- match %r{silk}i, name: :silk
447
- match %r{qt(?!web)}i, name: :qt
448
-
449
- match %r{nook}i, name: :nook,
450
- version: %r{build/\w+\s([\d\.]+)}i
451
-
452
- match %r{kindle}i, name: :kindle,
453
- version: %r{(?:kindle|version)/([\d\.]+)}i
454
-
455
- match %r{leechcraft}i, name: :leechcraft,
456
- version: %r{craft/(?:\w+\s)?([\d\.]+)}i
457
-
458
- match %r{webos|wosbrowser}i, name: :webosbrowser,
459
- version: %r{(?:version|osbrowser)/([\d\.]+)}i
460
-
461
- match %r{blackberry.*?(?=safari)}i, name: :blackberry_browser,
462
- version: %r{version/([\d\.]+)}i
463
- end
464
-
465
- # inherit properties from matcher where name == :firefox, (except :version)
466
- like :firefox, except: [:version] do
467
- # Minefield is firefox nightly, we can now do client.nightly?
468
- # to find out wether this browser is bleeding edge
469
- # this method will be caught by method missing if it isn't defined,
470
- # therefore - this method can be used on every Browserino::Client
471
- # instance
472
- match %r{minefield}i, name: :minefield, nightly: true
473
- match %r{k-meleon}i, name: :kmeleon, version: %r{leon/([\d\.]+)}i
474
- match %r{k-ninja}i, name: :kninja, version: %r{ninja/([\d\.]+)}i
475
- match %r{waterfox}i, name: :waterfox, architecture: :x64
476
- match %r{granparadiso}i, name: :granparadiso
477
- match %r{tenfourfox}i, name: :tenfourfox
478
- match %r{enigmafox}i, name: :enigmafox
479
- match %r{iceweasel}i, name: :iceweasel
480
- match %r{seamonkey}i, name: :seamonkey
481
- match %r{superswan}i, name: :superswan
482
- match %r{lunascape}i, name: :lunascape
483
- match %r{kazehakase}i, name: :kazehakase
484
- match %r{shiretoko}i, name: :shiretoko
485
- match %r{classilla}i, name: :classilla
486
- match %r{cometbird}i, name: :cometbird
487
- match %r{icedragon}i, name: :icedragon
488
- match %r{palemoon}i, name: :palemoon
489
- match %r{namoroka}i, name: :namoroka
490
- match %r{songbird}i, name: :songbird
491
- match %r{firebird}i, name: :firebird
492
- match %r{vonkeror}i, name: :vonkeror
493
- match %r{conkeror}i, name: :conkeror
494
- match %r{netscape}i, name: :netscape
495
- match %r{bonecho}i, name: :bonecho
496
- match %r{chimera}i, name: :chimera
497
- match %r{lolifox}i, name: :lolifox
498
- match %r{lorentz}i, name: :lorentz
499
- match %r{myibrow}i, name: :myibrow
500
- match %r{sylera}i, name: :sylera
501
- match %r{iceape}i, name: :iceape
502
- match %r{madfox}i, name: :madfox
503
- match %r{kapiko}i, name: :kapiko
504
- match %r{kmlite}i, name: :kmlite
505
- match %r{beonex}i, name: :beonex
506
- match %r{icecat}i, name: :icecat
507
- match %r{galeon}i, name: :galeon
508
- match %r{vision}i, name: :vision
509
- match %r{prism}i, name: :prism
510
- match %r{pogo}i, name: :pogo
511
- match %r{orca}i, name: :orca
512
-
513
- match %r{camino}i, name: :camino,
514
- locale: %r{\s(\w{2}(?:\-\w{2})?),}i
515
-
516
- match %r{fireweb\snavigator}i, name: :fireweb_navigator, engine: :gecko,
517
- version: %r{\snavigator/([\d\.]+)}i
518
- end
519
-
520
- # never thought a browser would want to be like IE...
521
- like :ie do
522
- # version does not have to be supplied because we simply want to use
523
- # the version supplied by the MSIE token instead (there is no version on
524
- # the avant browser or slimbrowser etc... UA itself)
525
- match %r{avant\sbrowser}i, name: :avant_browser
526
- match %r{greenbrowser}i, name: :greenbrowser
527
- match %r{slimbrowser}i, name: :slimbrowser
528
- match %r{theworld}i, name: :theworld
529
- match %r{browzar}i, name: :browzar
530
-
531
- # below are special cases where we need to manually
532
- # supply the version pattern
533
- match %r{deepnet\sexplorer}i, name: :deepnet_explorer,
534
- version: %r{explorer\s([\d\.]+)}i
535
-
536
- match %r{crazy\sbrowser}i, name: :crazy_browser,
537
- version: %r{browser\s([\d\.]+)}i
538
-
539
- match %r{solid\score}i, name: :solid_core,
540
- version: %r{d\score/([\d\.]+)}i
541
-
542
- # we can exclude the default version which will then be replaced by
543
- # the smart_matcher for :version which uses the :name token automatically
544
- # upon creating it's pattern
545
- preset except: [:version] do
546
- match %r{tencenttraveler}i, name: :tencenttraveler
547
- match %r{enigma\sbrowser}i, name: :enigma_browser
548
- match %r{simulbrowse}i, name: :simulbrowse
549
- match %r{netcaptor}i, name: :netcaptor
550
- match %r{sleipnir}i, name: :sleipnir
551
- match %r{irider}i, name: :irider
552
- match %r{kkman}i, name: :kkman
553
- match %r{lobo}i, name: :lobo
554
- match %r{aol}i, name: :aol
555
- end
556
- end
557
- end
3
+ require_relative 'matchers/global'
4
+ require_relative 'matchers/emails'
5
+ require_relative 'matchers/browsers'
6
+ require_relative 'matchers/bots'
7
+ require_relative 'matchers/validators'
8
+ require_relative 'matchers/rss'
9
+ require_relative 'matchers/libraries'