device_detector 0.8.2 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -3
- data/CHANGELOG.md +10 -5
- data/README.md +4 -4
- data/Rakefile +24 -19
- data/device_detector.gemspec +1 -1
- data/lib/device_detector.rb +25 -3
- data/lib/device_detector/device.rb +1 -1
- data/lib/device_detector/model_extractor.rb +4 -0
- data/lib/device_detector/os.rb +8 -3
- data/lib/device_detector/parser.rb +1 -1
- data/lib/device_detector/version.rb +1 -1
- data/regexes/bots.yml +211 -27
- data/regexes/client/browsers.yml +192 -58
- data/regexes/client/feed_readers.yml +6 -0
- data/regexes/client/libraries.yml +4 -0
- data/regexes/client/mediaplayers.yml +8 -4
- data/regexes/client/mobile_apps.yml +39 -4
- data/regexes/client/pim.yml +4 -0
- data/regexes/device/mobiles.yml +1803 -242
- data/regexes/device/televisions.yml +53 -11
- data/regexes/oss.yml +180 -12
- data/regexes/vendorfragments.yml +1 -0
- data/spec/device_detector/concrete_user_agent_spec.rb +36 -0
- data/spec/device_detector/detector_fixtures_spec.rb +1 -1
- data/spec/fixtures/client/browser.yml +313 -2
- data/spec/fixtures/client/feed_reader.yml +8 -1
- data/spec/fixtures/client/library.yml +7 -1
- data/spec/fixtures/client/mediaplayer.yml +6 -1
- data/spec/fixtures/client/mobile_app.yml +6 -0
- data/spec/fixtures/client/pim.yml +6 -0
- data/spec/fixtures/detector/bots.yml +2307 -612
- data/spec/fixtures/detector/camera.yml +6 -0
- data/spec/fixtures/detector/car_browser.yml +1 -0
- data/spec/fixtures/detector/console.yml +14 -0
- data/spec/fixtures/detector/desktop.yml +308 -48
- data/spec/fixtures/detector/feature_phone.yml +63 -0
- data/spec/fixtures/detector/feed_reader.yml +50 -26
- data/spec/fixtures/detector/mediaplayer.yml +28 -6
- data/spec/fixtures/detector/mobile_apps.yml +117 -0
- data/spec/fixtures/detector/phablet.yml +1066 -183
- data/spec/fixtures/detector/portable_media_player.yml +8 -0
- data/spec/fixtures/detector/smart_display.yml +39 -0
- data/spec/fixtures/detector/smartphone-1.yml +9469 -0
- data/spec/fixtures/detector/smartphone-2.yml +9414 -0
- data/spec/fixtures/detector/smartphone-3.yml +9396 -0
- data/spec/fixtures/detector/smartphone-4.yml +5742 -0
- data/spec/fixtures/detector/smartphone.yml +3446 -23680
- data/spec/fixtures/detector/tablet-1.yml +9495 -0
- data/spec/fixtures/detector/tablet-2.yml +248 -0
- data/spec/fixtures/detector/tablet.yml +2786 -7961
- data/spec/fixtures/detector/tv.yml +1376 -210
- data/spec/fixtures/detector/unknown.yml +205 -509
- data/spec/fixtures/device/console.yml +6 -0
- data/spec/fixtures/parser/oss.yml +194 -1
- data/spec/fixtures/parser/vendorfragments.yml +6 -0
- metadata +16 -6
- data/spec/fixtures/parser/bots.yml +0 -2055
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 436bad611848de9243a2d405a28991780ebe86cf
|
4
|
+
data.tar.gz: d25b0cadb1959e32e1a2adf362c246d5f77b7050
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a03c4141c003f03a5cc30a37ecb39fe26bddfbcee014867f96af8f2504f6abaa4bddc766c5236b5d7381b486611b3f5d6eb9bfa195a1756bcfa885e08e3a6bd
|
7
|
+
data.tar.gz: d53a0a43694c932854c149fac2af81be4c8bf5e0b427c0c523c6fc2aef060db183d650619c25f1cb531cd0abea07f986fd5a6169edd8c716c9ae89077c016408
|
data/.travis.yml
CHANGED
@@ -1,10 +1,18 @@
|
|
1
1
|
language: ruby
|
2
|
+
sudo: false
|
2
3
|
rvm:
|
3
4
|
- 1.9.3
|
4
|
-
- 2.0.0-
|
5
|
-
- 2.1.
|
6
|
-
- 2.2.
|
5
|
+
- 2.0.0-p648
|
6
|
+
- 2.1.10
|
7
|
+
- 2.2.5
|
8
|
+
- 2.3.1
|
7
9
|
- ruby-head
|
8
10
|
- rbx-2
|
11
|
+
before_install:
|
12
|
+
- gem update --system
|
13
|
+
- gem --version
|
14
|
+
- gem update bundler
|
15
|
+
- bundler --version
|
16
|
+
cache: bundler
|
9
17
|
script:
|
10
18
|
bundle exec rake test
|
data/CHANGELOG.md
CHANGED
@@ -1,22 +1,27 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [0.9.0]
|
4
|
+
- Preparing for the 1.0.0 release. This version (with minor bumps) will be promoted to 1.0.0 once the release has been proven stable
|
5
|
+
- Updated regex files from upstream
|
6
|
+
- Updated test fixtures from upstream
|
7
|
+
|
3
8
|
## [0.8.2]
|
4
|
-
- Added device brand support. Thanks to [dnswus](https://github.com/dnswus)
|
9
|
+
- Added device brand support. Thanks to [dnswus](https://github.com/dnswus)
|
5
10
|
|
6
11
|
## [0.8.1]
|
7
12
|
- Added Instacast detection rules
|
8
13
|
- Updated test fixtures
|
9
14
|
|
10
15
|
## [0.8.0]
|
11
|
-
- Added a better and more robust device detection. Thanks to [skaes](https://github.com/skaes)
|
12
|
-
- Added test fixture from the piwik project
|
16
|
+
- Added a better and more robust device detection. Thanks to [skaes](https://github.com/skaes)
|
17
|
+
- Added test fixture from the piwik project
|
13
18
|
|
14
19
|
## [0.7.0]
|
15
|
-
- [Issue #8](https://github.com/podigee/device_detector/issues/8) Fixed Mac OS X full version format. Thanks to [aaronchi](https://github.com/aaronchi) for reporting
|
20
|
+
- [Issue #8](https://github.com/podigee/device_detector/issues/8) Fixed Mac OS X full version format. Thanks to [aaronchi](https://github.com/aaronchi) for reporting
|
16
21
|
|
17
22
|
## [0.6.0]
|
18
23
|
|
19
|
-
- [Issue #7](https://github.com/podigee/device_detector/issues/7) Fixed missing name extraction from regexp. Thanks to [janxious](https://github.com/janxious) for reporting
|
24
|
+
- [Issue #7](https://github.com/podigee/device_detector/issues/7) Fixed missing name extraction from regexp. Thanks to [janxious](https://github.com/janxious) for reporting
|
20
25
|
- Optimized performance of name and version extraction, by using the built-in memory cache
|
21
26
|
- Move specs from RSpec to the more lightweight Minitest
|
22
27
|
|
data/README.md
CHANGED
@@ -134,19 +134,19 @@ useragent 4.450000 0.000000 4.450000 ( 4.452741)
|
|
134
134
|
|
135
135
|
## Detectable clients, bots and devices
|
136
136
|
|
137
|
-
Updated on
|
137
|
+
Updated on 2016-07-16
|
138
138
|
|
139
139
|
### Bots
|
140
140
|
|
141
|
-
360Spider, Aboundexbot, Acoon, AddThis.com, aHrefs Bot, Alexa Crawler, Amorank Spider, Analytics SEO Crawler, archive.org bot, Ask Jeeves, Backlink-Ceck.de, BacklinkCrawler, Baidu Spider, BingBot, Blekkobot, BLEXBot Crawler, Bloglovin, Bountii Bot, Browsershots, Butterfly Robot, CareerBot, ccBot crawler, Cliqzbot, CloudFlare Always Online, CommaFeed, Dazoobot, Discobot, DotBot, Easou Spider, EMail Exractor, ExaBot, ExactSeek Crawler, Ezooms, Facebook External Hit, Feedbin, FeedBurner, Feedly, Feedspot, Fever, Genieo Web filter, Goo, Google PageSpeed Insights, Googlebot, Heritrix, HTTPMon, IIS Site Analysis, Kouio, Linkdex Bot, LinkedIn Bot,
|
141
|
+
360Spider, Aboundexbot, Acoon, AddThis.com, ADMantX, aHrefs Bot, Alexa Crawler, Amorank Spider, Analytics SEO Crawler, Applebot, archive.org bot, Ask Jeeves, Backlink-Ceck.de, BacklinkCrawler, Baidu Spider, BazQux Reader, BingBot, Blekkobot, BLEXBot Crawler, Bloglovin, Blogtrottr, Bountii Bot, Browsershots, BUbiNG, Butterfly Robot, CareerBot, ccBot crawler, Charlotte, Cliqzbot, CloudFlare Always Online, CommaFeed, Cốc Cốc Bot, Daum, Dazoobot, Discobot, Domain Re-Animator Bot, DotBot, Easou Spider, EMail Exractor, EmailWolf, ExaBot, ExactSeek Crawler, Ezooms, Facebook External Hit, Feed Wrangler, Feedbin, FeedBurner, Feedly, Feedspot, Fever, Generic Bot, Genieo Web filter, Gigabot, Gluten Free Crawler, Gmail Image Proxy, Goo, Google PageSpeed Insights, Google Partner Monitoring, Googlebot, Heritrix, HTTPMon, HubPages, ICC-Crawler, ichiro, IIS Site Analysis, Inktomi Slurp, Kouio, Larbin web crawler, Linkdex Bot, LinkedIn Bot, LTX71, Lycos, Magpie-Crawler, MagpieRSS, Mail.Ru Bot, Meanpath Bot, Mixrank Bot, MJ12 Bot, MojeekBot, Monitor.Us, NalezenCzBot, Netcraft Survey Bot, NetLyzer FastProbe, NetResearchServer, Netvibes, NewsBlur, NewsGator, NLCrawler, Nutch-based Bot, Omgili bot, Openindex Spider, OpenLinkProfiler, OpenWebSpider, Orange Bot, Outbrain, PagePeeker, PaperLiBot, PHP Server Monitor, Picsearch bot, Pingdom Bot, Pinterest, Pompos, QuerySeekerSpider, Reddit Bot, Rogerbot, ROI Hunter, Scooter, ScoutJet, Scrapy, Screaming Frog SEO Spider, ScreenerBot, Semrush Bot, Sensika Bot, SEOENGBot, Server Density, Seznam Bot, ShopWiki, SilverReader, SimplePie, SISTRIX Crawler, Site24x7 Website Monitoring, Skype URI Preview, Slackbot, Sogou Spider, Soso Spider, Speedy, Spinn3r, Sputnik Bot, Superfeedr Bot, Survey Bot, TelgramBot, TinEye Crawler, Tiny Tiny RSS, TurnitinBot, TweetedTimes Bot, Tweetmeme Bot, Twitterbot, Uptime Robot, URLAppendBot, Visual Site Mapper Crawler, W3C CSS Validator, W3C I18N Checker, W3C Link Checker, W3C Markup Validation Service, W3C MobileOK Checker, W3C Unified Validator, WebbCrawler, WebSitePulse, WebThumbnail, WeSEE:Search, Willow Internet Crawler, Wotbox, YaCy, Yahoo Gemini, Yahoo! Cache System, Yahoo! Link Preview, Yahoo! Slurp, Yandex Bot, Yeti/Naverbot, Yottaa Site Monitor, Youdao Bot, Yourls, Yunyun Bot, Zao, Zookabot, ZumBot
|
142
142
|
|
143
143
|
### Clients
|
144
144
|
|
145
|
-
|
145
|
+
360 Browser, 360 Phone Browser, ABrowse, Airmail, Akregator, Amaya, Amiga Aweb, Amiga Voyager, Amigo, Android Browser, AndroidDownloadManager, ANT Fresco, ANTGalio, Apple PubSub, Arora, Atomic Web Browser, Avant Browser, Baidu Browser, Baidu Spark, Banshee, Barca, Beonex, BlackBerry Browser, Boxee, Brave, BrowseX, Bunjalloo, Camino, Charon, Cheshire, Chrome, Chrome Frame, Chrome Mobile, Chrome Mobile iOS, ChromePlus, Chromium, Clementine, Coc Coc, CometBird, Comodo Dragon, Conkeror, CoolNovo, curl, Deepnet Explorer, Dillo, Dolphin, Element Browser, Elinks, Epiphany, Espial TV Browser, Facebook, FeedDemon, Feeddler RSS Reader, FeedR, Fennec, Firebird, Firefox, Fireweb, Fireweb Navigator, Flock, Fluid, FlyCast, Galeon, Google Earth, Google Play Newsstand, Google Plus, Guzzle (PHP HTTP Client), HotJava, IBrowse, iCab, IceDragon, Iceweasel, IE Mobile, Instacast, Internet Explorer, Iron, iTunes, Jasmine, Java, JetBrains Omea Reader, Jig Browser, K-meleon, Kapiko, Kazehakase, Kindle Browser, Kodi, Konqueror, Kylo, LG Browser, Liebao, Liferea, Line, Links, Lotus Notes, LuaKit, Lunascape, Lynx, MailBar, Maxthon, MediaMonkey, Mercury, MicroB, Microsoft Edge, Microsoft Outlook, Midori, Miro, MIUI Browser, Mobile Safari, Mobile Silk, NCSA Mosaic, NetFront, NetFront Life, NetNewsWire, NetPositive, Netscape, Newsbeuter, NewsBlur, NewsBlur Mobile App, NexPlayer, Nightingale, Nokia Browser, Nokia OSS Browser, Nokia Ovi Browser, Obigo, Odyssey Web Browser, Off By One, OmniWeb, ONE Browser, Openwave Mobile Browser, Opera, Opera Mini, Opera Mobile, Opera Next, Oregano, Otter Browser, Outlook Express, Pale Moon, Palm Blazer, Palm Pre, Palm WebPro, Palmscape, Perl, Phoenix, Pinterest, Polaris, Postbox, Puffin, Pulp, Python Requests, Python urllib, QQ Browser, QuickTime, ReadKit, Reeder, Rekonq, RockMelt, RSS Bandit, RSS Junkie, RSSOwl, Safari, Sailfish Browser, Samsung Browser, SEMC-Browser, Seraphic Sraf, Shiira, Sina Weibo, Skyfire, Sleipnir, Snowshoe, Sogou Explorer, Songbird, Stagefright, Stringer, SubStream, Sunrise, SuperBird, Swiftfox, The Bat!, Thunderbird, Tizen Browser, TweakStyle, UC Browser, Vision Mobile Browser, Vivaldi, VLC, WebPositive, WeChat, WeTab Browser, Wget, WhatsApp, Winamp, Windows Media Player, wOSBrowser, XBMC, Xiino, Yandex Browser, YouTube
|
146
146
|
|
147
147
|
### Devices
|
148
148
|
|
149
|
-
3Q, Acer, Airness, Alcatel, Amoi, Apple, Archos, Arnova, Asus, Audiovox, Avvio, Axxion,
|
149
|
+
3Q, Acer, Ainol, Airness, Airties, Alcatel, Allview, Altech UEC, Amazon, Amoi, Apple, Archos, Arnova, ARRIS, Asus, Audiovox, Avvio, Axxion, BangOlufsen, Barnes & Noble, Becker, Beetel, BenQ, BenQ-Siemens, Bird, Blu, Bmobile, Boway, bq, Brondi, Bush, Capitel, Captiva, Carrefour, Casio, Cat, Celkon, Changhong, Cherry Mobile, CnM, Coby Kyros, Compal, ConCorde, Coolpad, Cowon, CreNova, Cricket, Crius Mea, Crosscall, Cube, CUBOT, Danew, Datang, Dbtel, Dell, Denver, Desay, Dicam, DMM, DNS, DoCoMo, Doogee, Doov, Dopod, Dune HD, E-Boda, Easypix, EBEST, ECS, Elephone, Energy Sistem, Ericsson, Ericy, Eton, eTouch, Evertek, Ezio, Ezze, Fairphone, Fly, Foxconn, Fujitsu, Garmin-Asus, Gemini, Gigabyte, Gigaset, Gionee, GOCLEVER, Goly, Google, Gradiente, Grundig, Haier, Hasee, Hi-Level, Hisense, Hosin, HP, HTC, Huawei, Humax, Hyundai, i-Joy, i-mate, i-mobile, iBall, iBerry, Ikea, iKoMo, iNew, Infinix, Inkti, Innostream, INQ, Intek, Intex, Inverto, iOcean, iTel, Jiayu, Jolla, K-Touch, Karbonn, Kazam, KDDI, Kingsun, Komu, Konka, Koobee, KOPO, Koridy, KT-Tech, Kumai, Kyocera, Lanix, Lava, LCT, Le Pan, Lenco, Lenovo, Lexibook, LG, Lingwin, Loewe, Logicom, M.T.T., Majestic, Manta Multimedia, Mecer, Mediacom, MediaTek, Medion, MEEG, Meizu, Memup, Metz, MEU, MicroMax, Microsoft, Mio, Mitsubishi, MLLED, Mobistel, Mofut, Motorola, Mpman, MSI, MyPhone, NEC, Netgear, Newgen, Nexian, NextBook, NGM, Nikon, Nintendo, Noain, Nokia, Nomi, O2, Onda, OnePlus, OPPO, Opsson, Orange, Ouki, OUYA, Overmax, Oysters, Palm, Panasonic, Pantech, PEAQ, Philips, phoneOne, Pioneer, Ployer, Point of View, Polaroid, PolyPad, Pomp, Positivo, Prestigio, ProScan, PULID, Qilive, QMobile, Qtek, Quechua, Ramos, RCA Tablets, Readboy, Rikomagic, RIM, Roku, Rover, Sagem, Samsung, Sanyo, Sega, Selevision, Sencor, Sendo, SFR, Sharp, Siemens, Skyworth, Smart, Smartfren, Softbank, Sony, Spice, Star, Stonex, Storex, Sumvision, SunVan, SuperSonic, Symphony, T-Mobile, TCL, TechniSat, TechnoTrend, Tecno Mobile, Telefunken, Telenor, Telit, Tesco, Tesla, teXet, ThL, Thomson, TIANYU, TiPhone, Tolino, Toplux, Toshiba, Trevi, Tunisie Telecom, Turbo-X, TVC, Uniscope, Unknown, Unowhy, UTStarcom, Vastking, Vertu, Vestel, Videocon, Videoweb, ViewSonic, Vitelcom, Vivo, Vizio, VK Mobile, Vodafone, Voto, Voxtel, Walton, WellcoM, Wexler, Wiko, Wolder, Wonu, Woxter, Xiaomi, Xolo, Yarvik, Ytone, Yuandao, Yusun, Zeemi, Zonda, Zopo, ZTE
|
150
150
|
|
151
151
|
## Maintainers
|
152
152
|
|
data/Rakefile
CHANGED
@@ -12,12 +12,14 @@ end
|
|
12
12
|
task default: :test
|
13
13
|
|
14
14
|
task :detectable_names do
|
15
|
-
bot_names = DeviceDetector::Bot.new.send(:regexes).map { |r| r[
|
15
|
+
bot_names = DeviceDetector::Bot.new.send(:regexes).map { |r| r[:name] }.uniq.sort_by { |n| n.downcase }
|
16
16
|
bot_names.delete('$1')
|
17
|
-
client_names = DeviceDetector::Client.new.send(:regexes).map { |r| r[
|
17
|
+
client_names = DeviceDetector::Client.new.send(:regexes).map { |r| r[:name] }.uniq.sort_by { |n| n.downcase }
|
18
18
|
client_names.delete('$1')
|
19
|
-
|
20
|
-
|
19
|
+
device = DeviceDetector::Device.new
|
20
|
+
device_paths = device.send(:filepaths)
|
21
|
+
device_regexes = device.send(:load_regexes, device_paths)
|
22
|
+
device_names = device_regexes.flat_map { |dn| dn[1].keys }.uniq.sort_by { |n| n.downcase }
|
21
23
|
|
22
24
|
today = Date.today.strftime
|
23
25
|
|
@@ -39,36 +41,39 @@ task :detectable_names do
|
|
39
41
|
puts
|
40
42
|
end
|
41
43
|
|
42
|
-
|
44
|
+
PIWIK_REPO_URL = 'https://github.com/piwik/device-detector.git'.freeze
|
45
|
+
PIWIK_CHECKOUT_LOCATION = '/tmp/piwik_device_detector'.freeze
|
43
46
|
|
44
|
-
def
|
45
|
-
|
47
|
+
def get_latest_piwik_checkout
|
48
|
+
if File.exist?(PIWIK_CHECKOUT_LOCATION)
|
49
|
+
system "cd #{PIWIK_CHECKOUT_LOCATION}; git reset --hard HEAD; git pull origin master"
|
50
|
+
else
|
51
|
+
system "git clone --depth 1 #{PIWIK_REPO_URL} #{PIWIK_CHECKOUT_LOCATION}"
|
52
|
+
end
|
46
53
|
end
|
47
54
|
|
48
55
|
desc 'update regex database from piwik project'
|
49
56
|
task :update_regexes do
|
50
57
|
top = File.expand_path('..', __FILE__)
|
51
|
-
|
52
|
-
system "
|
58
|
+
get_latest_piwik_checkout
|
59
|
+
system "cp -R #{PIWIK_CHECKOUT_LOCATION}/regexes/* #{top}/regexes"
|
53
60
|
end
|
54
61
|
|
55
62
|
desc 'update fixtures from piwik project'
|
56
63
|
task :update_fixtures do
|
57
64
|
top = File.expand_path('..', __FILE__)
|
58
|
-
|
65
|
+
get_latest_piwik_checkout
|
59
66
|
|
60
67
|
fixture_mappings = [
|
61
|
-
#
|
62
|
-
|
63
|
-
{
|
64
|
-
{
|
65
|
-
{ local_path: "#{top}/spec/fixtures/device", archive_path: '*/Tests/Parser/Devices/fixtures/*.yml', strip_components: 5 },
|
68
|
+
{target_path: "#{top}/spec/fixtures/detector", source_path: 'Tests/fixtures/*.yml'},
|
69
|
+
{target_path: "#{top}/spec/fixtures/client", source_path: 'Tests/Parser/Client/fixtures/*.yml'},
|
70
|
+
{target_path: "#{top}/spec/fixtures/parser", source_path: 'Tests/Parser/fixtures/*.yml'},
|
71
|
+
{target_path: "#{top}/spec/fixtures/device", source_path: 'Tests/Parser/Devices/fixtures/*.yml'},
|
66
72
|
]
|
67
73
|
|
68
74
|
fixture_mappings.each do |mapping|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
system "tar xzvf #{PIWIK_TARBALL_LOCATION} --strip-components #{strip_components} --include #{archive_path} -C #{local_path}"
|
75
|
+
source_path = mapping.fetch(:source_path)
|
76
|
+
target_path = mapping.fetch(:target_path)
|
77
|
+
system "cp -R #{PIWIK_CHECKOUT_LOCATION}/#{source_path} #{target_path}"
|
73
78
|
end
|
74
79
|
end
|
data/device_detector.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = %q{Precise and fast user agent parser and device detector}
|
12
12
|
spec.description = %q{Precise and fast user agent parser and device detector, backed by the largest and most up-to-date agent and device database}
|
13
13
|
spec.homepage = 'http://podigee.github.io/device_detector'
|
14
|
-
spec.license = '
|
14
|
+
spec.license = 'LGPL-3.0'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
17
|
spec.executables = []
|
data/lib/device_detector.rb
CHANGED
@@ -47,7 +47,7 @@ class DeviceDetector
|
|
47
47
|
def device_type
|
48
48
|
t = device.type
|
49
49
|
|
50
|
-
if t.nil? && android_tablet_fragment?
|
50
|
+
if t.nil? && android_tablet_fragment? || opera_tablet?
|
51
51
|
t = 'tablet'
|
52
52
|
end
|
53
53
|
|
@@ -88,8 +88,17 @@ class DeviceDetector
|
|
88
88
|
t = 'tablet'
|
89
89
|
end
|
90
90
|
|
91
|
-
|
92
|
-
|
91
|
+
if opera_tv_store?
|
92
|
+
t = 'tv'
|
93
|
+
end
|
94
|
+
|
95
|
+
if t.nil? && ['Kylo', 'Espial TV Browser'].include?(client.name)
|
96
|
+
t = 'tv'
|
97
|
+
end
|
98
|
+
|
99
|
+
# set device type to desktop for all devices running a desktop os that were
|
100
|
+
# not detected as an other device type
|
101
|
+
if t.nil? && os.desktop? && !puffin_browser?
|
93
102
|
t = 'desktop'
|
94
103
|
end
|
95
104
|
|
@@ -165,6 +174,19 @@ class DeviceDetector
|
|
165
174
|
user_agent =~ build_regex('Touch')
|
166
175
|
end
|
167
176
|
|
177
|
+
def opera_tv_store?
|
178
|
+
user_agent =~ build_regex('Opera TV Store')
|
179
|
+
end
|
180
|
+
|
181
|
+
def opera_tablet?
|
182
|
+
user_agent =~ build_regex('Opera Tablet')
|
183
|
+
end
|
184
|
+
|
185
|
+
# This is a workaround until we support detecting mobile only browsers
|
186
|
+
def puffin_browser?
|
187
|
+
client.name == 'Puffin'
|
188
|
+
end
|
189
|
+
|
168
190
|
def build_regex(src)
|
169
191
|
Regexp.new('(?:^|[^A-Z0-9\_\-])(?:' + src + ')', Regexp::IGNORECASE)
|
170
192
|
end
|
data/lib/device_detector/os.rb
CHANGED
@@ -73,6 +73,7 @@ class DeviceDetector
|
|
73
73
|
'LBT' => 'Lubuntu',
|
74
74
|
'VLN' => 'VectorLinux',
|
75
75
|
'MAC' => 'Mac',
|
76
|
+
'MAE' => 'Maemo',
|
76
77
|
'MDR' => 'Mandriva',
|
77
78
|
'SMG' => 'MeeGo',
|
78
79
|
'MCD' => 'MocorDroid',
|
@@ -80,6 +81,7 @@ class DeviceDetector
|
|
80
81
|
'MLD' => 'MildWild',
|
81
82
|
'MOR' => 'MorphOS',
|
82
83
|
'NBS' => 'NetBSD',
|
84
|
+
'MTK' => 'MTK / Nucleus',
|
83
85
|
'WII' => 'Nintendo',
|
84
86
|
'NDS' => 'Nintendo Mobile',
|
85
87
|
'OS2' => 'OS/2',
|
@@ -89,6 +91,7 @@ class DeviceDetector
|
|
89
91
|
'PS3' => 'PlayStation',
|
90
92
|
'RHT' => 'Red Hat',
|
91
93
|
'ROS' => 'RISC OS',
|
94
|
+
'REM' => 'Remix OS',
|
92
95
|
'RZD' => 'RazoDroiD',
|
93
96
|
'SAB' => 'Sabayon',
|
94
97
|
'SSE' => 'SUSE',
|
@@ -101,6 +104,7 @@ class DeviceDetector
|
|
101
104
|
'S40' => 'Symbian OS Series 40',
|
102
105
|
'S60' => 'Symbian OS Series 60',
|
103
106
|
'SY3' => 'Symbian^3',
|
107
|
+
'TDX' => 'ThreadX',
|
104
108
|
'TIZ' => 'Tizen',
|
105
109
|
'UBT' => 'Ubuntu',
|
106
110
|
'WTV' => 'WebTV',
|
@@ -120,7 +124,7 @@ class DeviceDetector
|
|
120
124
|
DOWNCASED_OPERATING_SYSTEMS = OPERATING_SYSTEMS.each_with_object({}){|(short,long),h| h[long.downcase] = short}
|
121
125
|
|
122
126
|
OS_FAMILIES = {
|
123
|
-
'Android' => ['AND', 'CYN', 'RZD', 'MLD', 'MCD'],
|
127
|
+
'Android' => ['AND', 'CYN', 'REM', 'RZD', 'MLD', 'MCD', 'YNS'],
|
124
128
|
'AmigaOS' => ['AMG', 'MOR'],
|
125
129
|
'Apple TV' => ['ATV'],
|
126
130
|
'BlackBerry' => ['BLB', 'QNX'],
|
@@ -133,10 +137,11 @@ class DeviceDetector
|
|
133
137
|
'IBM' => ['OS2'],
|
134
138
|
'iOS' => ['IOS'],
|
135
139
|
'RISC OS' => ['ROS'],
|
136
|
-
'GNU/Linux' => ['LIN', 'ARL', 'DEB', 'KNO', 'MIN', 'UBT', 'KBT', 'XBT', 'LBT', 'FED', 'RHT', 'VLN', 'MDR', 'GNT', 'SAB', 'SLW', 'SSE', 'CES', 'BTR', '
|
140
|
+
'GNU/Linux' => ['LIN', 'ARL', 'DEB', 'KNO', 'MIN', 'UBT', 'KBT', 'XBT', 'LBT', 'FED', 'RHT', 'VLN', 'MDR', 'GNT', 'SAB', 'SLW', 'SSE', 'CES', 'BTR', 'SAF'],
|
137
141
|
'Mac' => ['MAC'],
|
138
142
|
'Mobile Gaming Console' => ['PSP', 'NDS', 'XBX'],
|
139
|
-
'
|
143
|
+
'Real-time OS' => ['MTK', 'TDX'],
|
144
|
+
'Other Mobile' => ['WOS', 'POS', 'SBA', 'TIZ', 'SMG', 'MAE'],
|
140
145
|
'Symbian' => ['SYM', 'SYS', 'SY3', 'S60', 'S40'],
|
141
146
|
'Unix' => ['SOS', 'AIX', 'HPX', 'BSD', 'NBS', 'OBS', 'DFB', 'SYL', 'IRI', 'T64', 'INF'],
|
142
147
|
'WebTV' => ['WTV'],
|
data/regexes/bots.yml
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
name: 'Acoon GmbH'
|
30
30
|
url: 'http://www.acoon.de'
|
31
31
|
|
32
|
-
- regex: 'AddThis
|
32
|
+
- regex: 'AddThis\.com'
|
33
33
|
name: 'AddThis.com'
|
34
34
|
category: 'Social Media Agent'
|
35
35
|
url: ''
|
@@ -61,6 +61,14 @@
|
|
61
61
|
name: 'Amorank'
|
62
62
|
url: 'http://www.amorank.com'
|
63
63
|
|
64
|
+
- regex: 'Applebot'
|
65
|
+
name: 'Applebot'
|
66
|
+
category: 'Crawler'
|
67
|
+
url: 'http://www.apple.com/go/applebot'
|
68
|
+
producer:
|
69
|
+
name: 'Apple Inc'
|
70
|
+
url: 'http://www.apple.com'
|
71
|
+
|
64
72
|
- regex: 'Curious George'
|
65
73
|
name: 'Analytics SEO Crawler'
|
66
74
|
category: 'Crawler'
|
@@ -69,7 +77,7 @@
|
|
69
77
|
name: 'Analytics SEO'
|
70
78
|
url: 'http://www.analyticsseo.com'
|
71
79
|
|
72
|
-
- regex: 'archive
|
80
|
+
- regex: 'archive\.org_bot|special_archiver'
|
73
81
|
name: 'archive.org bot'
|
74
82
|
category: 'Crawler'
|
75
83
|
url: 'http://www.archive.org/details/archive.org_bot'
|
@@ -85,7 +93,7 @@
|
|
85
93
|
name: 'Ask Jeeves Inc.'
|
86
94
|
url: 'http://www.ask.com'
|
87
95
|
|
88
|
-
- regex: 'Backlink-Ceck
|
96
|
+
- regex: 'Backlink-Ceck\.de'
|
89
97
|
name: 'Backlink-Ceck.de'
|
90
98
|
category: 'Crawler'
|
91
99
|
url: 'http://www.backlink-check.de/bot.html'
|
@@ -109,6 +117,14 @@
|
|
109
117
|
name: 'Baidu'
|
110
118
|
url: 'http://www.baidu.com'
|
111
119
|
|
120
|
+
- regex: 'BazQux'
|
121
|
+
name: 'BazQux Reader'
|
122
|
+
url: 'https://bazqux.com/fetcher'
|
123
|
+
category: 'Feed Fetcher'
|
124
|
+
producer:
|
125
|
+
name: ''
|
126
|
+
url: ''
|
127
|
+
|
112
128
|
- regex: 'MSNBot|msrbot|bingbot|BingPreview|msnbot-(UDiscovery|NewsBlogs)|adidxbot'
|
113
129
|
name: 'BingBot'
|
114
130
|
category: 'Search bot'
|
@@ -141,6 +157,14 @@
|
|
141
157
|
name: ''
|
142
158
|
url: ''
|
143
159
|
|
160
|
+
- regex: 'Blogtrottr'
|
161
|
+
name: 'Blogtrottr'
|
162
|
+
url: ''
|
163
|
+
category: 'Feed Fetcher'
|
164
|
+
producer:
|
165
|
+
name: 'Blogtrottr Ltd'
|
166
|
+
url: 'https://blogtrottr.com/'
|
167
|
+
|
144
168
|
- regex: 'BountiiBot'
|
145
169
|
name: 'Bountii Bot'
|
146
170
|
category: 'Search bot'
|
@@ -157,7 +181,15 @@
|
|
157
181
|
name: 'Browsershots.org'
|
158
182
|
url: 'http://browsershots.org'
|
159
183
|
|
160
|
-
- regex: '
|
184
|
+
- regex: 'BUbiNG'
|
185
|
+
name: 'BUbiNG'
|
186
|
+
category: 'Crawler'
|
187
|
+
url: 'http://law.di.unimi.it/BUbiNG.html'
|
188
|
+
producer:
|
189
|
+
name: ''
|
190
|
+
url: ''
|
191
|
+
|
192
|
+
- regex: '(?<!HTC)[ _]Butterfly/'
|
161
193
|
name: 'Butterfly Robot'
|
162
194
|
category: 'Search bot'
|
163
195
|
url: 'http://labs.topsy.com/butterfly'
|
@@ -197,6 +229,14 @@
|
|
197
229
|
name: 'CloudFlare'
|
198
230
|
url: 'http://www.cloudflare.com'
|
199
231
|
|
232
|
+
- regex: 'coccoc/'
|
233
|
+
name: 'Cốc Cốc Bot'
|
234
|
+
url: 'http://help.coccoc.com/'
|
235
|
+
category: 'Search bot'
|
236
|
+
producer:
|
237
|
+
name: 'Cốc Cốc'
|
238
|
+
url: 'http://coccoc.com/'
|
239
|
+
|
200
240
|
- regex: 'CommaFeed'
|
201
241
|
name: 'CommaFeed'
|
202
242
|
url: 'http://www.commafeed.com'
|
@@ -205,6 +245,14 @@
|
|
205
245
|
name: ''
|
206
246
|
url: ''
|
207
247
|
|
248
|
+
- regex: 'Daum(oa)?[ /][0-9]'
|
249
|
+
name: 'Daum'
|
250
|
+
category: 'Search bot'
|
251
|
+
url: 'http://tab.search.daum.net/aboutWebSearch_en.html'
|
252
|
+
producer:
|
253
|
+
name: 'Daum Communications Corp.'
|
254
|
+
url: 'http://www.kakaocorp.com/main'
|
255
|
+
|
208
256
|
- regex: 'Dazoobot'
|
209
257
|
name: 'Dazoobot'
|
210
258
|
category: 'Search bot'
|
@@ -221,6 +269,14 @@
|
|
221
269
|
name: 'Discovery Engine'
|
222
270
|
url: 'http://discoveryengine.com'
|
223
271
|
|
272
|
+
- regex: 'Domain Re-Animator Bot|support@domainreanimator.com'
|
273
|
+
name: 'Domain Re-Animator Bot'
|
274
|
+
category: 'Crawler'
|
275
|
+
url: ''
|
276
|
+
producer:
|
277
|
+
name: 'Domain Re-Animator, LLC'
|
278
|
+
url: 'http://domainreanimator.com'
|
279
|
+
|
224
280
|
- regex: 'DotBot'
|
225
281
|
name: 'DotBot'
|
226
282
|
category: 'Crawler'
|
@@ -293,6 +349,14 @@
|
|
293
349
|
name: ''
|
294
350
|
url: ''
|
295
351
|
|
352
|
+
- regex: 'Feed Wrangler'
|
353
|
+
name: 'Feed Wrangler'
|
354
|
+
url: 'https://feedwrangler.net/'
|
355
|
+
category: 'Feed Fetcher'
|
356
|
+
producer:
|
357
|
+
name: 'David Smith & Developing Perspective, LLC'
|
358
|
+
url: 'https://david-smith.org'
|
359
|
+
|
296
360
|
- regex: '(Meta)?Feedly(Bot|App)?'
|
297
361
|
name: 'Feedly'
|
298
362
|
url: 'http://www.feedly.com'
|
@@ -309,7 +373,7 @@
|
|
309
373
|
name: ''
|
310
374
|
url: ''
|
311
375
|
|
312
|
-
- regex: 'Fever'
|
376
|
+
- regex: 'Fever/[0-9]'
|
313
377
|
name: 'Fever'
|
314
378
|
url: 'http://feedafever.com/'
|
315
379
|
category: 'Feed Fetcher'
|
@@ -325,6 +389,14 @@
|
|
325
389
|
name: 'Genieo'
|
326
390
|
url: 'http://www.genieo.com'
|
327
391
|
|
392
|
+
- regex: 'Gluten Free Crawler'
|
393
|
+
name: 'Gluten Free Crawler'
|
394
|
+
category: 'Crawler'
|
395
|
+
url: 'http://glutenfreepleasure.com/'
|
396
|
+
producer:
|
397
|
+
name: ''
|
398
|
+
url: ''
|
399
|
+
|
328
400
|
- regex: 'ichiro/mobile goo'
|
329
401
|
name: 'Goo'
|
330
402
|
category: 'Search bot'
|
@@ -341,7 +413,23 @@
|
|
341
413
|
name: 'Google Inc.'
|
342
414
|
url: 'http://www.google.com'
|
343
415
|
|
344
|
-
- regex: '
|
416
|
+
- regex: 'google_partner_monitoring'
|
417
|
+
name: 'Google Partner Monitoring'
|
418
|
+
category: 'Site Monitor'
|
419
|
+
url: ''
|
420
|
+
producer:
|
421
|
+
name: 'Google Inc.'
|
422
|
+
url: 'http://www.google.com'
|
423
|
+
|
424
|
+
- regex: 'via ggpht\.com GoogleImageProxy'
|
425
|
+
name: 'Gmail Image Proxy'
|
426
|
+
category: 'Crawler'
|
427
|
+
url: ''
|
428
|
+
producer:
|
429
|
+
name: 'Google Inc.'
|
430
|
+
url: 'http://www.google.com'
|
431
|
+
|
432
|
+
- regex: 'Googlebot(-Mobile|-Image|-Video|-News)?|Feedfetcher-Google|Google-Test|Google-Site-Verification|Google Web Preview|AdsBot-Google(-Mobile)?|Mediapartners-Google|Google.*/\+/web/snippet|GoogleProducer|Google[ -]Publisher[ -]Plugin'
|
345
433
|
name: 'Googlebot'
|
346
434
|
category: 'Search bot'
|
347
435
|
url: 'http://www.google.com/bot.html'
|
@@ -365,9 +453,17 @@
|
|
365
453
|
name: 'towards GmbH'
|
366
454
|
url: 'http://www.towards.ch/'
|
367
455
|
|
456
|
+
- regex: 'ICC-Crawler'
|
457
|
+
name: 'ICC-Crawler'
|
458
|
+
category: 'Crawler'
|
459
|
+
url: 'http://www.nict.go.jp/en/univ-com/plan/crawl.html'
|
460
|
+
producer:
|
461
|
+
name: ''
|
462
|
+
url: ''
|
463
|
+
|
368
464
|
- regex: 'iisbot'
|
369
465
|
name: 'IIS Site Analysis'
|
370
|
-
category: '
|
466
|
+
category: 'Crawler'
|
371
467
|
url: 'http://www.iis.net/iisbot.html'
|
372
468
|
producer:
|
373
469
|
name: 'Microsoft Corporation'
|
@@ -381,7 +477,15 @@
|
|
381
477
|
name: ''
|
382
478
|
url: ''
|
383
479
|
|
384
|
-
- regex: '
|
480
|
+
- regex: 'larbin'
|
481
|
+
name: 'Larbin web crawler'
|
482
|
+
category: 'Crawler'
|
483
|
+
url: 'http://larbin.sourceforge.net'
|
484
|
+
producer:
|
485
|
+
name: ''
|
486
|
+
url: ''
|
487
|
+
|
488
|
+
- regex: 'linkdexbot(-mobile)?|linkdex\.com'
|
385
489
|
name: 'Linkdex Bot'
|
386
490
|
category: 'Search bot'
|
387
491
|
url: 'http://www.linkdex.com/bots'
|
@@ -397,7 +501,14 @@
|
|
397
501
|
name: 'LinkedIn'
|
398
502
|
url: 'http://www.linkedin.com'
|
399
503
|
|
400
|
-
- regex: '
|
504
|
+
- regex: 'ltx71'
|
505
|
+
name: 'LTX71'
|
506
|
+
url: 'http://ltx71.com/'
|
507
|
+
producer:
|
508
|
+
name: ''
|
509
|
+
url: ''
|
510
|
+
|
511
|
+
- regex: 'Mail\.RU(_Bot)?'
|
401
512
|
name: 'Mail.Ru Bot'
|
402
513
|
category: 'Search bot'
|
403
514
|
url: 'http://help.mail.ru/webmaster/indexing/robots/types_robots'
|
@@ -533,6 +644,14 @@
|
|
533
644
|
name: 'OpenWebSpider Lab'
|
534
645
|
url: 'http://lab.openwebspider.org'
|
535
646
|
|
647
|
+
- regex: 'OrangeBot|VoilaBot'
|
648
|
+
name: 'Orange Bot'
|
649
|
+
category: 'Search bot'
|
650
|
+
url: 'http://lemoteur.orange.fr'
|
651
|
+
producer:
|
652
|
+
name: 'Orange'
|
653
|
+
url: 'http://www.orange.fr'
|
654
|
+
|
536
655
|
- regex: 'PaperLiBot'
|
537
656
|
name: 'PaperLiBot'
|
538
657
|
category: 'Search bot'
|
@@ -541,6 +660,14 @@
|
|
541
660
|
name: 'Smallrivers SA'
|
542
661
|
url: 'http://www.paper.li'
|
543
662
|
|
663
|
+
- regex: 'phpservermon'
|
664
|
+
name: 'PHP Server Monitor'
|
665
|
+
category: 'Site Monitor'
|
666
|
+
url: 'https://github.com/phpservermon/phpservermon'
|
667
|
+
producer:
|
668
|
+
name: 'PHP Server Monitor'
|
669
|
+
url: 'http://www.phpservermonitor.org/'
|
670
|
+
|
544
671
|
- regex: 'psbot(-page)?'
|
545
672
|
name: 'Picsearch bot'
|
546
673
|
category: 'Search bot'
|
@@ -549,9 +676,9 @@
|
|
549
676
|
name: 'Picsearch'
|
550
677
|
url: 'http://www.picsearch.com'
|
551
678
|
|
552
|
-
- regex: 'Pingdom
|
679
|
+
- regex: 'Pingdom\.com'
|
553
680
|
name: 'Pingdom Bot'
|
554
|
-
category: 'Site
|
681
|
+
category: 'Site Monitor'
|
555
682
|
url: ''
|
556
683
|
producer:
|
557
684
|
name: 'Pingdom AB'
|
@@ -581,6 +708,19 @@
|
|
581
708
|
name: 'SEOmoz, Inc.'
|
582
709
|
url: 'http://moz.com/'
|
583
710
|
|
711
|
+
- regex: 'ROI Hunter'
|
712
|
+
name: 'ROI Hunter'
|
713
|
+
category: 'Crawler'
|
714
|
+
url: ''
|
715
|
+
producer:
|
716
|
+
name: 'Roihunter a.s.'
|
717
|
+
url: 'http://roihunter.com/'
|
718
|
+
|
719
|
+
- regex: 'Scrapy'
|
720
|
+
name: 'Scrapy'
|
721
|
+
category: 'Crawler'
|
722
|
+
url: 'http://scrapy.org'
|
723
|
+
|
584
724
|
- regex: 'Screaming Frog SEO Spider'
|
585
725
|
name: 'Screaming Frog SEO Spider'
|
586
726
|
category: 'Crawler'
|
@@ -621,6 +761,14 @@
|
|
621
761
|
name: 'SEO Engine'
|
622
762
|
url: 'http://www.seoengine.com'
|
623
763
|
|
764
|
+
- regex: 'SkypeUriPreview'
|
765
|
+
name: 'Skype URI Preview'
|
766
|
+
category: 'Service Agent'
|
767
|
+
url: ''
|
768
|
+
producer:
|
769
|
+
name: 'Skype Communications S.à.r.l.'
|
770
|
+
url: 'https://www.skype.com'
|
771
|
+
|
624
772
|
- regex: 'SeznamBot|SklikBot|Seznam screenshot-generator'
|
625
773
|
name: 'Seznam Bot'
|
626
774
|
category: 'Search bot'
|
@@ -661,6 +809,14 @@
|
|
661
809
|
name: 'SISTRIX GmbH'
|
662
810
|
url: 'http://www.sistrix.de'
|
663
811
|
|
812
|
+
- regex: 'Slackbot|Slack-ImgProxy'
|
813
|
+
name: 'Slackbot'
|
814
|
+
category: 'Crawler'
|
815
|
+
url: 'https://api.slack.com/robots'
|
816
|
+
producer:
|
817
|
+
name: 'Slack Technologies'
|
818
|
+
url: 'http://slack.com'
|
819
|
+
|
664
820
|
- regex: '(Sogou (web|inst|Pic) spider)|New-Sogou-Spider'
|
665
821
|
name: 'Sogou Spider'
|
666
822
|
category: 'Search bot'
|
@@ -709,6 +865,10 @@
|
|
709
865
|
name: 'Domain Tools'
|
710
866
|
url: 'http://www.domaintools.com'
|
711
867
|
|
868
|
+
- regex: 'TelegramBot'
|
869
|
+
name: 'TelgramBot'
|
870
|
+
url: 'https://telegram.org/blog/bot-revolution'
|
871
|
+
|
712
872
|
- regex: 'TinEye-bot'
|
713
873
|
name: 'TinEye Crawler'
|
714
874
|
category: 'Search bot'
|
@@ -781,14 +941,6 @@
|
|
781
941
|
name: 'Alentum Software Ltd.'
|
782
942
|
url: 'http://www.alentum.com'
|
783
943
|
|
784
|
-
- regex: 'VoilaBot'
|
785
|
-
name: 'Voila Bot'
|
786
|
-
category: 'Search bot'
|
787
|
-
url: 'http://www.voila.fr'
|
788
|
-
producer:
|
789
|
-
name: ''
|
790
|
-
url: ''
|
791
|
-
|
792
944
|
- regex: 'Jigsaw'
|
793
945
|
name: 'W3C CSS Validator'
|
794
946
|
category: 'Validator'
|
@@ -853,6 +1005,14 @@
|
|
853
1005
|
name: 'Steve Webb'
|
854
1006
|
url: 'http://badcheese.com'
|
855
1007
|
|
1008
|
+
- regex: 'websitepulse[+ ]checker'
|
1009
|
+
name: 'WebSitePulse'
|
1010
|
+
category: 'Site Monitor'
|
1011
|
+
url: 'http://badcheese.com/crawler.html'
|
1012
|
+
producer:
|
1013
|
+
name: 'WebSitePulse'
|
1014
|
+
url: 'http://www.websitepulse.com/'
|
1015
|
+
|
856
1016
|
- regex: 'Wotbox'
|
857
1017
|
name: 'Wotbox'
|
858
1018
|
category: 'Search bot'
|
@@ -877,7 +1037,23 @@
|
|
877
1037
|
name: 'Yahoo! Inc.'
|
878
1038
|
url: 'http://www.yahoo.com'
|
879
1039
|
|
880
|
-
- regex: '
|
1040
|
+
- regex: 'Yahoo Link Preview|Yahoo:LinkExpander:Slingstone'
|
1041
|
+
name: 'Yahoo! Link Preview'
|
1042
|
+
category: 'Crawler'
|
1043
|
+
url: 'https://help.yahoo.com/kb/mail/yahoo-link-preview-SLN23615.html'
|
1044
|
+
producer:
|
1045
|
+
name: 'Yahoo! Inc.'
|
1046
|
+
url: 'http://www.yahoo.com'
|
1047
|
+
|
1048
|
+
- regex: 'YahooCacheSystem'
|
1049
|
+
name: 'Yahoo! Cache System'
|
1050
|
+
category: 'Crawler'
|
1051
|
+
url: ''
|
1052
|
+
producer:
|
1053
|
+
name: 'Yahoo! Inc.'
|
1054
|
+
url: 'http://www.yahoo.com'
|
1055
|
+
|
1056
|
+
- regex: 'Yandex(Bot|Images|Antivirus|Direct|Blogs|Favicons|ImageResizer|News(links)?|Metrika|\.Gazeta Bot)|YaDirectFetcher'
|
881
1057
|
name: 'Yandex Bot'
|
882
1058
|
category: 'Search bot'
|
883
1059
|
url: 'http://www.yandex.com/bots'
|
@@ -901,6 +1077,11 @@
|
|
901
1077
|
name: 'NetEase, Inc.'
|
902
1078
|
url: 'http://corp.163.com'
|
903
1079
|
|
1080
|
+
- regex: 'YOURLS v[0-9]'
|
1081
|
+
name: 'Yourls'
|
1082
|
+
category: 'Crawler'
|
1083
|
+
url: 'http://yourls.org'
|
1084
|
+
|
904
1085
|
- regex: 'YRSpider|YYSpider'
|
905
1086
|
name: 'Yunyun Bot'
|
906
1087
|
category: 'Search bot'
|
@@ -957,7 +1138,7 @@
|
|
957
1138
|
name: 'HubPages'
|
958
1139
|
url: 'http://hubpages.com/'
|
959
1140
|
|
960
|
-
- regex: 'Pinterest/\d\.\d.*www
|
1141
|
+
- regex: 'Pinterest/\d\.\d.*www\.pinterest\.com.*'
|
961
1142
|
name: 'Pinterest'
|
962
1143
|
url: ''
|
963
1144
|
category: 'Crawler'
|
@@ -973,7 +1154,7 @@
|
|
973
1154
|
name: 'Site24x7'
|
974
1155
|
url: 'https://www.site24x7.com'
|
975
1156
|
|
976
|
-
- regex: 'www
|
1157
|
+
- regex: 'www\.monitor\.us'
|
977
1158
|
name: 'Monitor.Us'
|
978
1159
|
category: 'Site Monitor'
|
979
1160
|
url: 'http://www.monitor.us'
|
@@ -981,6 +1162,9 @@
|
|
981
1162
|
name: 'Monitor.Us'
|
982
1163
|
url: 'http://www.monitor.us'
|
983
1164
|
|
1165
|
+
- regex: 'Zao/'
|
1166
|
+
name: 'Zao'
|
1167
|
+
category: 'Crawler'
|
984
1168
|
|
985
1169
|
- regex: 'lycos'
|
986
1170
|
name: 'Lycos'
|
@@ -1027,24 +1211,24 @@
|
|
1027
1211
|
- regex: 'NetLyzer FastProbe'
|
1028
1212
|
name: 'NetLyzer FastProbe'
|
1029
1213
|
|
1030
|
-
- regex: 'AdMantX.*admantx
|
1214
|
+
- regex: 'AdMantX.*admantx\.com'
|
1031
1215
|
name: 'ADMantX'
|
1032
1216
|
|
1033
1217
|
- regex: 'Server Density Service Monitoring.*'
|
1034
1218
|
name: 'Server Density'
|
1035
1219
|
|
1036
|
-
- regex: '(nuhk|TsolCrawler|Yammybot|Openbot|Gulper Web Bot|grub-client|Download Demon|SearchExpress|Microsoft URL Control|borg|altavista|teoma|blitzbot|oegp|furlbot|http%20client|polybot|htdig|mogimogi|larbin|scrubby|searchsight|seekbot|semanticdiscovery|snappy|vortex|
|
1037
|
-
name: 'Bot'
|
1220
|
+
- regex: '(A6-Indexer|nuhk|TsolCrawler|Yammybot|Openbot|Gulper Web Bot|grub-client|Download Demon|SearchExpress|Microsoft URL Control|borg|altavista|teoma|blitzbot|oegp|furlbot|http%20client|polybot|htdig|mogimogi|larbin|scrubby|searchsight|seekbot|semanticdiscovery|snappy|vortex(?! Build)|zeal|fast-webcrawler|converacrawler|dataparksearch|findlinks|BrowserMob|HttpMonitor|ThumbShotsBot|URL2PNG|ZooShot|GomezA|Catchpoint bot|Google SketchUp|Read%20Later|Minimo|RackspaceBot)'
|
1221
|
+
name: 'Generic Bot'
|
1038
1222
|
|
1039
1223
|
# Generic detections
|
1040
1224
|
|
1041
1225
|
- regex: 'Nutch'
|
1042
1226
|
name: 'Nutch-based Bot'
|
1043
|
-
category: '
|
1227
|
+
category: 'Crawler'
|
1044
1228
|
url: 'https://nutch.apache.org'
|
1045
1229
|
producer:
|
1046
1230
|
name: 'The Apache Software Foundation'
|
1047
1231
|
url: 'http://www.apache.org/foundation/'
|
1048
1232
|
|
1049
|
-
- regex: '[a-z0-9\-_]*(bot|crawler|archiver|transcoder|spider)'
|
1233
|
+
- regex: '[a-z0-9\-_]*((?<!cu)bot|crawler|archiver|transcoder|spider)([^a-z]|$)'
|
1050
1234
|
name: 'Generic Bot'
|