From 7a0083076f30a1e0dee306dbf587e732971977f4 Mon Sep 17 00:00:00 2001 From: Julien Chanseaume Date: Fri, 27 Nov 2015 06:29:17 +0100 Subject: [PATCH 1/9] Updated Thelia specification Updated Thelia specification --- src/apps.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/apps.json b/src/apps.json index 4a18ed6fa..01eb1ec96 100755 --- a/src/apps.json +++ b/src/apps.json @@ -6541,17 +6541,12 @@ 1, 6 ], - "headers": { - "Set-Cookie": "thelia_cart=" - }, + "html": "<(?:link|style|script)[^>]+/assets/frontOffice/", "implies": [ "PHP", "Symfony" ], - "meta": { - "generator": "Thelia v([\\d.]+)\\;version:\\1" - }, - "website": "www.thelia.net", + "website": "thelia.net", "icon": "Thelia.png" }, "TiddlyWiki": { @@ -8697,4 +8692,4 @@ "50": "document-management-systems", "51": "landing-page-builders" } -} \ No newline at end of file +} From 603413ed3aefc7de916691b0e301297e7e7dae9d Mon Sep 17 00:00:00 2001 From: q-- Date: Mon, 21 Dec 2015 21:51:07 +0100 Subject: [PATCH 2/9] Add Bounce Exchange --- src/apps.json | 10 ++++++++++ src/icons/Bounce Exchange.svg | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/icons/Bounce Exchange.svg diff --git a/src/apps.json b/src/apps.json index f4f1813b6..4117b208e 100755 --- a/src/apps.json +++ b/src/apps.json @@ -822,6 +822,16 @@ "website": "cibonfire.com", "icon": "Bonfire.png" }, + "Bounce Exchange": { + "cats": [ + 32 + ], + "env": "^bouncex$", + "html": "]*>[^>]+\\.src\\s*=\\s*['\"](?:https?:)?//tag\\.bounceexchange\\.com/", + "script": "^https?://tag\\.bounceexchange\\.com/", + "website": "www.bounceexchange.com", + "icon": "Bounce Exchange.svg" + }, "Brother": { "cats": [ 40 diff --git a/src/icons/Bounce Exchange.svg b/src/icons/Bounce Exchange.svg new file mode 100644 index 000000000..12498c46c --- /dev/null +++ b/src/icons/Bounce Exchange.svg @@ -0,0 +1,16 @@ + + + + + + From 89abca5ca77796df4c46ea3695ffd9ab85c69848 Mon Sep 17 00:00:00 2001 From: pallxk Date: Sun, 27 Dec 2015 14:35:40 +0800 Subject: [PATCH 3/9] Add support for svg icons in drivers --- bin/wappalyzer-links | 4 ++++ src/drivers/bookmarklet/.gitignore | 1 + src/drivers/bookmarklet/js/driver.js | 2 +- src/drivers/chrome/.gitignore | 1 + src/drivers/chrome/js/driver.js | 2 +- src/drivers/chrome/js/popup.js | 2 +- src/drivers/firefox/.gitignore | 1 + src/drivers/firefox/data/js/panel.js | 2 +- src/drivers/firefox/driver.js | 4 ++-- src/drivers/html/.gitignore | 1 + src/drivers/html/js/driver.js | 2 +- 11 files changed, 15 insertions(+), 7 deletions(-) diff --git a/bin/wappalyzer-links b/bin/wappalyzer-links index 9501a383d..2afbfada0 100755 --- a/bin/wappalyzer-links +++ b/bin/wappalyzer-links @@ -30,19 +30,23 @@ echo "Creating hard links..." ln -f $path/wappalyzer.js $path/drivers/firefox/lib ln -f $path/apps.json $path/drivers/firefox/data ln -f $path/icons/*.png $path/drivers/firefox/data/images/icons +ln -f $path/icons/*.svg $path/drivers/firefox/data/images/icons ln -f $path/utils/*.js $path/drivers/firefox/data/js ln -f $path/wappalyzer.js $path/drivers/chrome/js ln -f $path/apps.json $path/drivers/chrome ln -f $path/icons/*.png $path/drivers/chrome/images/icons +ln -f $path/icons/*.svg $path/drivers/chrome/images/icons ln -f $path/utils/*.js $path/drivers/chrome/js ln -f $path/wappalyzer.js $path/drivers/bookmarklet/js ln -f $path/icons/*.png $path/drivers/bookmarklet/images/icons +ln -f $path/icons/*.svg $path/drivers/bookmarklet/images/icons ln -f $path/wappalyzer.js $path/drivers/html/js ln -f $path/apps.json $path/drivers/html ln -f $path/icons/*.png $path/drivers/html/images/icons +ln -f $path/icons/*.svg $path/drivers/html/images/icons ln -f $path/wappalyzer.js $path/drivers/php/js ln -f $path/apps.json $path/drivers/php diff --git a/src/drivers/bookmarklet/.gitignore b/src/drivers/bookmarklet/.gitignore index 0d9a93f5c..d03f42c47 100644 --- a/src/drivers/bookmarklet/.gitignore +++ b/src/drivers/bookmarklet/.gitignore @@ -1,3 +1,4 @@ images/icons/*.png +images/icons/*.svg js/wappalyzer.js js/apps.js diff --git a/src/drivers/bookmarklet/js/driver.js b/src/drivers/bookmarklet/js/driver.js index 65a6f64a7..a40554b11 100644 --- a/src/drivers/bookmarklet/js/driver.js +++ b/src/drivers/bookmarklet/js/driver.js @@ -147,7 +147,7 @@ '
' + '' + '' + - ' ' + app + + ' ' + app + '' + '' ; diff --git a/src/drivers/chrome/.gitignore b/src/drivers/chrome/.gitignore index 88270d2f7..60dc6455a 100644 --- a/src/drivers/chrome/.gitignore +++ b/src/drivers/chrome/.gitignore @@ -1,4 +1,5 @@ apps.json images/icons/*.png +images/icons/*.svg js/wappalyzer.js js/iframe.js diff --git a/src/drivers/chrome/js/driver.js b/src/drivers/chrome/js/driver.js index d4b035bde..2644d6ed0 100644 --- a/src/drivers/chrome/js/driver.js +++ b/src/drivers/chrome/js/driver.js @@ -193,7 +193,7 @@ for ( appName in w.detected[url] ) { w.apps[appName].cats.forEach(function(cat) { if ( cat == match && !found ) { - chrome.pageAction.setIcon({ tabId: tab.id, path: 'images/icons/' + appName + '.png' }); + chrome.pageAction.setIcon({ tabId: tab.id, path: 'images/icons/' + w.apps[appName].icon }); found = true; } diff --git a/src/drivers/chrome/js/popup.js b/src/drivers/chrome/js/popup.js index 15ed8bd2f..957b22b4f 100644 --- a/src/drivers/chrome/js/popup.js +++ b/src/drivers/chrome/js/popup.js @@ -35,7 +35,7 @@ document.addEventListener('DOMContentLoaded', function() { html = '
' + '' + - '' + + '' + '' + appName + '' + ( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : '' ) + '' + ''; diff --git a/src/drivers/firefox/.gitignore b/src/drivers/firefox/.gitignore index 975eec334..871b16778 100644 --- a/src/drivers/firefox/.gitignore +++ b/src/drivers/firefox/.gitignore @@ -1,4 +1,5 @@ data/apps.json data/images/icons/*.png +data/images/icons/*.svg data/js/iframe.js lib/wappalyzer.js diff --git a/src/drivers/firefox/data/js/panel.js b/src/drivers/firefox/data/js/panel.js index 40e233d96..16bb9986c 100644 --- a/src/drivers/firefox/data/js/panel.js +++ b/src/drivers/firefox/data/js/panel.js @@ -35,7 +35,7 @@ }); }(appName)); - img.setAttribute('src', 'images/icons/' + appName + '.png'); + img.setAttribute('src', 'images/icons/' + message.apps[appName].icon); img.setAttribute('height', '16'); img.setAttribute('width', '16'); diff --git a/src/drivers/firefox/driver.js b/src/drivers/firefox/driver.js index 5df3aa7c3..4e60afbe4 100644 --- a/src/drivers/firefox/driver.js +++ b/src/drivers/firefox/driver.js @@ -249,7 +249,7 @@ }; Button.prototype.setIcon = function(appName) { - var url = typeof appName === 'undefined' ? './images/icon32.png' : './images/icons/' + appName + '.png'; + var url = typeof appName === 'undefined' ? './images/icon32.png' : './images/icons/' + w.apps[appName].icon; this.button.icon = url; }; @@ -303,7 +303,7 @@ UrlBar.prototype.addIcon = function(appName) { var icon = this.document.createElement('image'), - url = typeof appName === 'undefined' ? 'images/icon32.png' : 'images/icons/' + appName + '.png', + url = typeof appName === 'undefined' ? 'images/icon32.png' : 'images/icons/' + w.apps[appName].icon, tooltipText = ( typeof appName !== 'undefined' ? appName + ' - ' + require('sdk/l10n').get('clickForDetails') + ' - ' : '' ) + require('sdk/l10n').get('name'); icon.setAttribute('src', require('sdk/self').data.url(url)); diff --git a/src/drivers/html/.gitignore b/src/drivers/html/.gitignore index c73e01d30..01d2786a1 100644 --- a/src/drivers/html/.gitignore +++ b/src/drivers/html/.gitignore @@ -1,3 +1,4 @@ apps.json images/icons/*.png +images/icons/*.svg js/wappalyzer.js diff --git a/src/drivers/html/js/driver.js b/src/drivers/html/js/driver.js index 1ad4a4986..0e14f59af 100644 --- a/src/drivers/html/js/driver.js +++ b/src/drivers/html/js/driver.js @@ -51,7 +51,7 @@ document.getElementById('apps').innerHTML = ''; for ( app in w.detected[url] ) { - document.getElementById('apps').innerHTML += ' ' + app + '
'; + document.getElementById('apps').innerHTML += ' ' + app + '
'; }; }, From a2027049265419591cc1e49f4ff0b8f5d1470728 Mon Sep 17 00:00:00 2001 From: pallxk Date: Mon, 28 Dec 2015 09:01:42 +0800 Subject: [PATCH 4/9] Add Marionette --- src/apps.json | 13 +++++++++++++ src/icons/Marionette.js.svg | 1 + 2 files changed, 14 insertions(+) create mode 100644 src/icons/Marionette.js.svg diff --git a/src/apps.json b/src/apps.json index f4f1813b6..42a6947cc 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4001,6 +4001,19 @@ "website": "www.manycontacts.com", "icon": "ManyContacts.png" }, + "Marionette.js": { + "cats": [ + 12 + ], + "env": "^Marionette$", + "implies": [ + "Underscore.js", + "Backbone.js" + ], + "script": "backbone\\.marionette.*\\.js", + "website": "marionettejs.com", + "icon": "Marionette.js.svg" + }, "Marketo": { "cats": [ 32 diff --git a/src/icons/Marionette.js.svg b/src/icons/Marionette.js.svg new file mode 100644 index 000000000..5352c9ced --- /dev/null +++ b/src/icons/Marionette.js.svg @@ -0,0 +1 @@ +marionette \ No newline at end of file From b3d76654e01f3ef02579eabd2cf6fb426fbe39bd Mon Sep 17 00:00:00 2001 From: CJ Patoilo Date: Mon, 4 Jan 2016 20:35:07 -0300 Subject: [PATCH 5/9] Added Milligram --- src/apps.json | 10 ++++++++++ src/icons/Milligram.png | Bin 0 -> 1832 bytes 2 files changed, 10 insertions(+) create mode 100644 src/icons/Milligram.png diff --git a/src/apps.json b/src/apps.json index f4f1813b6..d87b88f22 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4169,6 +4169,16 @@ "website": "sharepoint.microsoft.com", "icon": "Microsoft SharePoint.png" }, + "Milligram": { + "cats": [ + 18 + ], + "html": [ + "]+?href=\"[^\"]+milligram(?:\\.min)?\\.css" + ], + "website": "milligram.github.io", + "icon": "Milligram.png" + }, "MiniBB": { "cats": [ 2 diff --git a/src/icons/Milligram.png b/src/icons/Milligram.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7663c29bd6f84e78d643e2a93077ae68da02f0 GIT binary patch literal 1832 zcmaJ?X;2eq7~UKN1fw8F6s0T)R6NK90h18O1#*Sk2BzbYV}U5ihGdZ-q6vq9B0~`s zgicYJ5kV=UB9)P2KshRhN4+YF&{3=6QICPPu(?N0DBI6a?wkX(2a$o@HZ{VN;Y6y{m26d`N&oS`GpL99s+PqC8gP$PC z79RPtsRT(hD1vnm$fB~m6m*6U=*OlqSPY*vjMX5M&hVzuy=e?@F9wrCXLA@V@XJF+ zv+0ycoLF)2mt1JXBc~vUmP4auWMoh?ys5A*nZ{tV*)%$n#$Pf;FI7Q6`7e5gr+J`nd$Pc2-uS|I#M3VKjqGOJh*!=8|TB63PEV)#_Qa z9*Kp%`u$H~eSD@CqQydbI9;be4=#yfPNn6DbdU^zb@4EqI@87I6c~Z^DX5(y_%qeo;K1r#dgkx>b%N~Pp5n9N`wcCc6=WCb%AK`bGQEfmvPBC*hy z&1NzEX1HQlk*{Cr?aCz=3Nb}s9ChJ=8e<{$b0IclKaP}!D5+bA<_GdYlJOm>^#y}Z!C+7sm8|v z}Er2pLTsvU1pCD)6#hZ809;(@n~?s#scYN|+}RuaGcljwyYvsf4Dnv{4$kRVepnjD=rIN$kKCc2Hh*5_Hs++Jy&xX|7y zzb5|1-ixP3`&QUCkc`%;T4-bKc6siwMS&on5Pe0yEJ-W+jXpMD14di+46R|>?;?#5 z-_P&q;``f2z1h*54A5+0!nlJ!K|B5yJ5uSv4@9PqNm zW#p6iJ%yN66FB!~0RnxlU%T+eJjRQ%Pz*lZk zpUWTbKAdUU&c%{ivsF= Date: Tue, 5 Jan 2016 12:08:32 +0100 Subject: [PATCH 6/9] Lower confidence for all basket.js patterns Basket.js has patterns for "env" and "script" --- src/apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/apps.json b/src/apps.json index f4f1813b6..9b998e6e2 100755 --- a/src/apps.json +++ b/src/apps.json @@ -7842,8 +7842,8 @@ "cats": [ 12 ], - "env": "^basket$", - "script": "basket.*\\.js", + "env": "^basket$\\;confidence:20", + "script": "basket.*\\.js\\;confidence:10", "website": "addyosmani.github.io/basket.js/", "icon": "basket.js.png" }, From c9e8a1c33c750e82ace915510927cb9215234581 Mon Sep 17 00:00:00 2001 From: q-- Date: Tue, 5 Jan 2016 13:28:03 +0100 Subject: [PATCH 7/9] Re-add version detection for Arastta Version information in the headers was removed in version 1.2.1, but not all websites are using this version. Additionally, an empty "X-Arastta" header implies Arastta 1.2.1+ so detection was added for this as well. --- src/apps.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index f4f1813b6..4154cc5e5 100755 --- a/src/apps.json +++ b/src/apps.json @@ -508,7 +508,8 @@ ], "excludes": "OpenCart", "headers": { - "X-Arastta": "" + "Arastta": "(.*)\\;version:\\1", + "X-Arastta": "\\;version:1.2.1+" }, "html": "Powered by ]*href=\"https?://(?:www\\.)?arastta\\.org[^>]+>Arastta", "implies": "PHP", From 3a26550dbb23f885f70d6b7518b547f12f350592 Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Thu, 7 Jan 2016 08:47:28 +1100 Subject: [PATCH 8/9] Fixed iframe.js issues --- src/apps.json | 17512 ++++++++++++++--------------- src/drivers/chrome/manifest.json | 2 +- src/icons/PDF.js.svg | 2 +- src/icons/Shoptet.svg | 2 +- src/utils/iframe.js | 60 +- 5 files changed, 8784 insertions(+), 8794 deletions(-) diff --git a/src/apps.json b/src/apps.json index f4f1813b6..ab09fb599 100755 --- a/src/apps.json +++ b/src/apps.json @@ -1,8758 +1,8758 @@ { - "apps": { - "1C-Bitrix": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "BITRIX_", - "X-Powered-CMS": "Bitrix Site Manager" - }, - "html": "(?:]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))", - "implies": "PHP", - "script": "1c-bitrix", - "website": "www.1c-bitrix.ru", - "icon": "1C-Bitrix.png" - }, - "1und1": { - "cats": [ - 6 - ], - "implies": "PHP", - "url": "/shop/catalog/browse\\?sessid=", - "website": "1und1.de", - "icon": "1und1.png" - }, - "2z Project": { - "cats": [ - 1 - ], - "meta": { - "generator": "2z project ([\\d.]+)\\;version:\\1" - }, - "website": "2zproject-cms.ru", - "icon": "2z Project.png" - }, - "3DM": { - "cats": [ - 19 - ], - "html": "3ware 3DM([\\d\\.]+)?\\;version:\\1", - "implies": "3ware", - "website": "www.3ware.com", - "icon": "3DM.png" - }, - "3dCart": { - "cats": [ - 1, - 6 - ], - "headers": { - "Set-Cookie": "3dvisit", - "X-Powered-By": "3DCART" - }, - "script": "(?:twlh(?:track)?\\.asp|3d_upsell\\.js)", - "website": "www.3dcart.com", - "icon": "3dCart.png" - }, - "3ware": { - "cats": [ - 22 - ], - "headers": { - "Server": "3ware\\/?([\\d\\.]+)?\\;version:\\1" - }, - "website": "www.3ware.com", - "icon": "3ware.png" - }, - "AMPcms": { - "cats": [ - 1 - ], - "env": "^amp_js_init$", - "headers": { - "Set-Cookie": "^AMP=", - "X-AMP-Version": "([\\d.]+)\\;version:\\1" - }, - "implies": "PHP", - "website": "www.ampcms.org", - "icon": "AMPcms.png" - }, - "AOLserver": { - "cats": [ - 22 - ], - "headers": { - "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" - }, - "website": "aolserver.com", - "icon": "AOLserver.png" - }, - "AT Internet Analyzer": { - "cats": [ - 10 - ], - "env": "^xtsite$", - "website": "atinternet.com/en", - "icon": "AT Internet Analyzer.png" - }, - "AT Internet XiTi": { - "cats": [ - 10 - ], - "env": "^Xt_", - "script": "xiti\\.com/hit\\.xiti", - "website": "atinternet.com/en", - "icon": "AT Internet XiTi.png" - }, - "ATEN": { - "cats": [ - 22 - ], - "headers": { - "Server": "ATEN HTTP Server(?:\\(?V?([\\d\\.]+)\\)?)?\\;version:\\1" - }, - "website": "www.aten.com", - "icon": "ATEN.png" - }, - "Oracle Commerce": { - "cats": [ - 6 - ], - "headers": { - "X-ATG-Version": "(?:ATGPlatform/([\\d.]+))?\\;version:\\1" - }, - "html": "<[^>]+_dyncharset", - "website": "www.oracle.com/applications/customer-experience/commerce/products/commerce-platform/index.html", - "icon": "Oracle Commerce.png" - }, - "Oracle Commerce Cloud": { - "cats": [ - 6 - ], - "headers": { - "OracleCommerceCloud-Version": "(.*)\\;version:\\1" - }, - "html": "<[^>]+id=\"oracle-cc\"", - "website": "cloud.oracle.com/commerce-cloud", - "icon": "Oracle Commerce Cloud.png" - }, - "AWStats": { - "cats": [ - 10 - ], - "implies": "Perl", - "meta": { - "generator": "AWStats ([\\d.]+(?: \\(build [\\d.]+\\))?)\\;version:\\1" - }, - "website": "awstats.sourceforge.net", - "icon": "AWStats.png" - }, - "Accessible Portal": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "Accessible Portal" - }, - "website": "www.accessibleportal.com", - "icon": "Accessible Portal.png" - }, - "AdInfinity": { - "cats": [ - 36 - ], - "script": "adinfinity\\.com\\.au", - "website": "adinfinity.com.au", - "icon": "AdInfinity.png" - }, - "AdRiver": { - "cats": [ - 36 - ], - "env": "^adriver$", - "html": "(?:<embed[^>]+(?:src=\"https?://mh\\d?\\.adriver\\.ru/|flashvars=\"[^\"]*(?:http:%3A//(?:ad|mh\\d?)\\.adriver\\.ru/|adriver_banner))|<(?:(?:iframe|img)[^>]+src|a[^>]+href)=\"https?://ad\\.adriver\\.ru/)", - "script": "(?:adriver\\.core\\.\\d\\.js|https?://(?:content|ad|masterh\\d)\\.adriver\\.ru/)", - "website": "adriver.ru", - "icon": "AdRiver.png" - }, - "AdRoll": { - "cats": [ - 36 - ], - "env": "^adroll_", - "script": "(?:a|s)\\.adroll\\.com", - "website": "adroll.com", - "icon": "AdRoll.png" - }, - "Adcash": { - "cats": [ - 36 - ], - "env": "^(?:ac_bgclick_URL|ct_(?:siteunder|tag|n(?:SuUrl(?:Opp)?)|Su(?:Loaded|Url)))$", - "script": "^[^\\/]*//(?:[^\\/]+\\.)?adcash\\.com/(?:script|ad)/", - "url": "^https?://(?:[^\\/]+\\.)?adcash\\.com/script/pop_", - "website": "adcash.com", - "icon": "Adcash.png" - }, - "AddShoppers": { - "cats": [ - 5 - ], - "script": "cdn\\.shop\\.pe/widget/", - "website": "www.addshoppers.com", - "icon": "AddShoppers.png" - }, - "AddThis": { - "cats": [ - 5 - ], - "env": "^addthis", - "script": "addthis\\.com/js/", - "website": "www.addthis.com", - "icon": "AddThis.png" - }, - "Adobe ColdFusion": { - "cats": [ - 18 - ], - "env": "^_cfEmails$", - "headers": { - "Cookie": "CFTOKEN=" - }, - "html": "<!-- START headerTags\\.cfm", - "implies": "CFML", - "script": "/cfajax/", - "url": "\\.cfm(?:$|\\?)", - "website": "adobe.com/products/coldfusion-family.html", - "icon": "Adobe ColdFusion.png" - }, - "Adobe Experience Manager": { - "cats": [ - 1 - ], - "html": [ - "<div class=\"[^\"]*parbase", - "<div[^>]+data-component-path=\"[^\"+]jcr:" - ], - "implies": "Java", - "script": "/etc/designs/", - "website": "www.adobe.com/au/marketing-cloud/enterprise-content-management.html", - "icon": "Adobe Experience Manager.png" - }, - "Adobe GoLive": { - "cats": [ - 20 - ], - "meta": { - "generator": "Adobe GoLive(?:\\s([\\d.]+))?\\;version:\\1" - }, - "website": "www.adobe.com/products/golive", - "icon": "Adobe GoLive.png" - }, - "Adobe Muse": { - "cats": [ - 20 - ], - "meta": { - "generator": "^Muse(?:$| ?/?(\\d[\\d.]+))\\;version:\\1" - }, - "website": "muse.adobe.com", - "icon": "Adobe Muse.png" - }, - "Adobe RoboHelp": { - "cats": [ - 4 - ], - "env": "^gbWh(?:Ver|Lang|Msg|Util|Proxy)$", - "meta": { - "generator": "^Adobe RoboHelp(?: ([\\d]+))?\\;version:\\1" - }, - "script": "(?:wh(?:utils|ver|proxy|lang|topic|msg)|ehlpdhtm)\\.js", - "website": "adobe.com/products/robohelp.html", - "icon": "Adobe RoboHelp.png" - }, - "Advanced Web Stats": { - "cats": [ - 10 - ], - "html": "aws\\.src = [^<]+caphyon-analytics", - "implies": "Java", - "website": "www.advancedwebstats.com", - "icon": "Advanced Web Stats.png" - }, - "Advert Stream": { - "cats": [ - 36 - ], - "env": "^advst_is_above_the_fold$", - "script": "(?:ad\\.advertstream\\.com|adxcore\\.com)", - "website": "www.advertstream.com", - "icon": "Advert Stream.png" - }, - "Adzerk": { - "cats": [ - 36 - ], - "env": "^ados(?:Results)?$", - "html": "<iframe [^>]*src=\"[^\"]+adzerk\\.net", - "script": "adzerk\\.net/ados\\.js", - "website": "adzerk.com", - "icon": "Adzerk.png" - }, - "Aegea": { - "cats": [ - 11 - ], - "headers": { - "X-Powered-By": "^E2 Aegea v(\\d+)$\\;version:\\1" - }, - "implies": [ - "PHP", - "jQuery" - ], - "website": "blogengine.ru", - "icon": "Aegea.png" - }, - "Airee": { - "cats": [ - 31 - ], - "headers": { - "Server": "Airee" - }, - "website": "xn--80aqc2a.xn--p1ai", - "icon": "Airee.png" - }, - "Akamai": { - "cats": [ - 31 - ], - "headers": { - "X-Akamai-Transformed": "" - }, - "website": "akamai.com", - "icon": "Akamai.png" - }, - "Algolia Realtime Search": { - "cats": [ - 29 - ], - "env": "^AlgoliaSearch$", - "website": "www.algolia.com", - "icon": "Algolia Realtime Search.png" - }, - "Allegro RomPager": { - "cats": [ - 22 - ], - "headers": { - "Server": "Allegro-Software-RomPager(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "allegrosoft.com/embedded-web-server-s2", - "icon": "Allegro RomPager.png" - }, - "AlloyUI": { - "cats": [ - 12 - ], - "env": "^AUI$", - "implies": [ - "Twitter Bootstrap", - "YUI" - ], - "script": "^https?://cdn\\.alloyui\\.com/", - "website": "www.alloyui.com", - "icon": "AlloyUI.png" - }, - "Amaya": { - "cats": [ - 20 - ], - "meta": { - "generator": "Amaya(?: V?([\\d.]+[a-z]))?\\;version:\\1" - }, - "website": "www.w3.org/Amaya", - "icon": "Amaya.png" - }, - "Ametys": { - "cats": [ - 1 - ], - "implies": "Java", - "meta": { - "generator": "(?:Ametys|Anyware Technologies)" - }, - "script": "ametys\\.js", - "website": "ametys.org", - "icon": "Ametys.png" - }, - "Amiro.CMS": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "Amiro" - }, - "website": "amirocms.com", - "icon": "Amiro.CMS.png" - }, - "Anchor CMS": { - "cats": [ - 1, - 11 - ], - "implies": [ - "PHP", - "MySQL" - ], - "meta": { - "generator": "Anchor CMS" - }, - "website": "anchorcms.com", - "icon": "Anchor CMS.png" - }, - "AngularJS": { - "cats": [ - 12 - ], - "env": "^angular$", - "script": [ - "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", - "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular(?:\\.min)?\\.js\\;version:\\1", - "angular.*\\.js" - ], - "website": "angularjs.org", - "icon": "AngularJS.png" - }, - "Apache": { - "cats": [ - 22 - ], - "headers": { - "Server": "(?:Apache(?:$|/([\\d.]+)|[^/-])|(?:^|\b)HTTPD)\\;version:\\1" - }, - "website": "apache.org", - "icon": "Apache.png" - }, - "Apache HBase": { - "cats": [ - 34 - ], - "html": "<style[^>]+static/hbase", - "website": "hbase.apache.org", - "icon": "Apache HBase.png" - }, - "Apache Hadoop": { - "cats": [ - 34 - ], - "html": "<style[^>]+static/hadoop", - "website": "hadoop.apache.org", - "icon": "Apache Hadoop.png" - }, - "Apache JSPWiki": { - "cats": [ - 8 - ], - "html": "<html[^>]* xmlns:jspwiki=", - "script": "jspwiki", - "url": "wiki\\.jsp", - "website": "jspwiki.org", - "icon": "Apache JSPWiki.png" - }, - "Apache Tomcat": { - "cats": [ - 22 - ], - "headers": { - "Server": "Apache-Coyote(/1\\.1)?\\;version:\\1?4.1+:", - "X-Powered-By": "\bTomcat\b(?:-([\\d.]+))?\\;version:\\1" - }, - "website": "tomcat.apache.org", - "icon": "Apache Tomcat.png" - }, - "Apache Traffic Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "ATS/?([\\d.]+)?\\;version:\\1" - }, - "website": "trafficserver.apache.org/", - "icon": "Apache Traffic Server.png" - }, - "Apache Wicket": { - "cats": [ - 18 - ], - "env": "^Wicket", - "implies": "Java", - "website": "wicket.apache.org", - "icon": "Apache Wicket.png" - }, - "AppNexus": { - "cats": [ - 36 - ], - "html": "<(?:iframe|img)[^>]+adnxs\\.(?:net|com)", - "script": "adnxs\\.(?:net|com)", - "website": "appnexus.com", - "icon": "AppNexus.png" - }, - "Arastta": { - "cats": [ - 6 - ], - "excludes": "OpenCart", - "headers": { - "X-Arastta": "" - }, - "html": "Powered by <a [^>]*href=\"https?://(?:www\\.)?arastta\\.org[^>]+>Arastta", - "implies": "PHP", - "script": "arastta\\.js", - "website": "arastta.org", - "icon": "Arastta.png" - }, - "Arc Forum": { - "cats": [ - 2 - ], - "html": "ping\\.src = node\\.href;\\s+[^>]+\\s+}\\s+</script>", - "website": "arclanguage.org", - "icon": "Arc Forum.png" - }, - "Artifactory": { - "cats": [ - 47 - ], - "env": "^ArtifactoryUpdates$", - "html": [ - "<span class=\"version\">Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" - ], - "script": [ - "wicket/resource/org\\.artifactory\\." - ], - "website": "jfrog.com/open-source/#os-arti", - "icon": "Artifactory.png" - }, - "Artifactory Web Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" - }, - "implies": [ - "Artifactory" - ], - "website": "jfrog.com/open-source/#os-arti", - "icon": "Artifactory Web Server.png" - }, - "AsciiDoc": { - "cats": [ - 1, - 20, - 27 - ], - "env": "^asciidoc$", - "meta": { - "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" - }, - "website": "www.methods.co.nz/asciidoc", - "icon": "AsciiDoc.png" - }, - "Atlassian Bitbucket": { - "cats": [ - 47 - ], - "env": "^bitbucket$", - "meta": { - "application-name": "Bitbucket" - }, - "website": "www.atlassian.com/software/bitbucket/overview/", - "icon": "Atlassian Bitbucket.png" - }, - "Atlassian Confluence": { - "cats": [ - 8 - ], - "headers": { - "X-Confluence-Request-Time": "" - }, - "html": "Powered by <a href=[^>]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence</a> ([\\d.]+))?\\;version:\\1", - "implies": "Java", - "meta": { - "confluence-request-time": "" - }, - "website": "www.atlassian.com/software/confluence/overview/team-collaboration-software", - "icon": "Atlassian Confluence.png" - }, - "Atlassian FishEye": { - "cats": [ - 47 - ], - "headers": { - "Set-cookie": "FESESSIONID" - }, - "html": "<title>(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", - "website": "www.atlassian.com/software/fisheye/overview/", - "icon": "Atlassian FishEye.png" - }, - "Atlassian Jira": { - "cats": [ - 13 - ], - "env": "^jira$", - "html": "Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(?:\\.\\d+)?))?\\;version:\\1", - "implies": "Java", - "meta": { - "ajs-version-number": "([\\d\\.]+)\\;version:\\1", - "application-name": "JIRA" - }, - "website": "www.atlassian.com/software/jira/overview/", - "icon": "Atlassian Jira.png" - }, - "Atlassian Jira Issue Collector": { - "cats": [ - 13, - 47 - ], - "script": [ - "jira-issue-collector-plugin", - "atlassian\\.jira\\.collector\\.plugin" - ], - "website": "www.atlassian.com/software/jira/overview/", - "icon": "Atlassian Jira Issue Collector.png" - }, - "Avangate": { - "cats": [ - 6 - ], - "env": "^(?:__)?avng8_", - "html": "]* href=\"^https?://edge\\.avangate\\.net/", - "script": "^https?://edge\\.avangate\\.net/", - "website": "avangate.com", - "icon": "Avangate.png" - }, - "BIGACE": { - "cats": [ - 1 - ], - "html": "(?:Powered by ]+BIGACE|", - "script": "CatalystScripts", - "website": "businesscatalyst.com", - "icon": "Business Catalyst.png" - }, - "BuySellAds": { - "cats": [ - 36 - ], - "env": "^_bsa", - "html": "]*>[^<]+?bsa.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", - "script": "^https?://s\\d\\.buysellads\\.com/", - "website": "buysellads.com", - "icon": "BuySellAds.png" - }, - "C++": { - "cats": [ - 27 - ], - "website": "isocpp.org", - "icon": "C++.png" - }, - "CFML": { - "cats": [ - 27 - ], - "website": "adobe.com/products/coldfusion-family.html", - "icon": "CFML.png" - }, - "CKEditor": { - "cats": [ - 24 - ], - "env": "^CKEDITOR$", - "website": "ckeditor.com", - "icon": "CKEditor.png" - }, - "CMS Made Simple": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "^CMSSESSID" - }, - "implies": "PHP", - "meta": { - "generator": "CMS Made Simple" - }, - "website": "cmsmadesimple.org", - "icon": "CMS Made Simple.png" - }, - "CMSimple": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "CMSimple( [\\d.]+)?\\;version:\\1" - }, - "website": "www.cmsimple.org/en", - "icon": "CMSimple.png" - }, - "CO2Stats": { - "cats": [ - 10 - ], - "html": "src=[^>]+co2stats\\.com/propres\\.php", - "website": "co2stats.com", - "icon": "CO2Stats.png" - }, - "CPG Dragonfly": { - "cats": [ - 1 - ], - "headers": { - "X-Powered-By": "Dragonfly CMS" - }, - "implies": "PHP", - "meta": { - "generator": "CPG Dragonfly" - }, - "website": "dragonflycms.org", - "icon": "CPG Dragonfly.png" - }, - "CS Cart": { - "cats": [ - 6 - ], - "env": "^fn_compare_strings$", - "html": [ - " Powered by (?:]+cs-cart\\.com|CS-Cart)", - ".cm-noscript[^>]+" - ], - "implies": "PHP", - "website": "www.cs-cart.com", - "icon": "CS Cart.png" - }, - "CacheFly": { - "cats": [ - 31 - ], - "headers": { - "Server": "^CFS ", - "X-CF1": "", - "X-CF2": "" - }, - "website": "www.cachefly.com", - "icon": "CacheFly.png" - }, - "CakePHP": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "cakephp=" - }, - "implies": "PHP", - "meta": { - "application-name": "CakePHP" - }, - "website": "cakephp.org", - "icon": "CakePHP.png" - }, - "Canon": { - "cats": [ - 40 - ], - "website": "www.canon.com", - "icon": "Canon.png" - }, - "Canon HTTP Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" - }, - "implies": [ - "Canon" - ], - "website": "www.canon.com", - "icon": "Canon HTTP Server.png" - }, - "Captch Me": { - "cats": [ - 16, - 36 - ], - "env": "^Captchme", - "script": "^https?://api\\.captchme\\.net/", - "website": "captchme.com", - "icon": "Captch Me.svg" - }, - "Carbon Ads": { - "cats": [ - 36 - ], - "env": "^_carbonads", - "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", - "script": "[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", - "website": "carbonads.net", - "icon": "Carbon Ads.png" - }, - "Cargo": { - "cats": [ - 1 - ], - "html": "]+Cargo feed", - "implies": "PHP", - "meta": { - "cargo_title": "" - }, - "script": "/cargo\\.", - "website": "cargocollective.com", - "icon": "Cargo.png" - }, - "Catberry.js": { - "cats": [ - 12, - 18 - ], - "env": "^catberry$", - "headers": { - "X-Powered-By": "Catberry" - }, - "implies": "node.js", - "website": "catberry.org", - "icon": "Catberry.js.png" - }, - "Catwalk": { - "cats": [ - 22 - ], - "headers": { - "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" - }, - "implies": "Canon", - "website": "www.canon.com", - "icon": "Catwalk.png" - }, - "CentOS": { - "cats": [ - 28 - ], - "headers": { - "Server": "CentOS", - "X-Powered-By": "CentOS" - }, - "website": "centos.org", - "icon": "CentOS.png" - }, - "CenteHTTPd": { - "cats": [ - 22 - ], - "headers": { - "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "cente.jp/cente/app/HTTPdc.html", - "icon": "CenteHTTPd.png" - }, - "Chameleon": { - "cats": [ - 1 - ], - "implies": [ - "Apache", - "PHP" - ], - "meta": { - "generator": "chameleon-cms" - }, - "website": "chameleon-system.de", - "icon": "Chameleon.png" - }, - "Chamilo": { - "cats": [ - 21 - ], - "headers": { - "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "html": "\">Chamilo ([\\d.]+)\\;version:\\1", - "implies": "PHP", - "meta": { - "generator": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "website": "www.chamilo.org", - "icon": "Chamilo.png" - }, - "Chartbeat": { - "cats": [ - 10 - ], - "env": "^_sf_(?:endpt|async_config)$", - "script": "chartbeat\\.js", - "website": "chartbeat.com", - "icon": "Chartbeat.png" - }, - "Cherokee": { - "cats": [ - 22 - ], - "headers": { - "Server": "Cherokee/([\\d.]+)\\;version:\\1" - }, - "website": "www.cherokee-project.com", - "icon": "Cherokee.png" - }, - "CherryPy": { - "cats": [ - 18, - 22 - ], - "headers": { - "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" - }, - "implies": "Python", - "website": "www.cherrypy.org", - "icon": "CherryPy.png" - }, - "Chitika": { - "cats": [ - 36 - ], - "env": "ch_c(?:lient|olor_site_link)", - "script": "scripts\\.chitika\\.net/", - "website": "chitika.com", - "icon": "Chitika.png" - }, - "Ckan": { - "cats": [ - 1 - ], - "headers": { - "Access-Control-Allow-Headers": "X-CKAN-API-KEY", - "Link": "; rel=shortlink" - }, - "implies": [ - "Python", - "Solr", - "Java", - "PostgreSQL\\;confidence:80" - ], - "website": "ckan.org/", - "icon": "Ckan.png" - }, - "ClickHeat": { - "cats": [ - 10 - ], - "env": "^clickHeat", - "implies": "PHP", - "script": "clickheat.*\\.js", - "website": "www.labsmedia.com/clickheat/index.html", - "icon": "ClickHeat.png" - }, - "ClickTale": { - "cats": [ - 10 - ], - "env": "^ClickTale", - "website": "www.clicktale.com", - "icon": "ClickTale.png" - }, - "Clicky": { - "cats": [ - 10 - ], - "env": "^clicky$", - "script": "static\\.getclicky\\.com", - "website": "getclicky.com", - "icon": "Clicky.png" - }, - "Clientexec": { - "cats": [ - 6 - ], - "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", - "website": "www.clientexec.com", - "icon": "Clientexec.png" - }, - "CloudFlare": { - "cats": [ - 31 - ], - "env": "^CloudFlare$", - "headers": { - "Server": "cloudflare" - }, - "website": "www.cloudflare.com", - "icon": "CloudFlare.png" - }, - "Cloudera": { - "cats": [ - 34 - ], - "headers": { - "Server": "cloudera" - }, - "website": "www.cloudera.com", - "icon": "Cloudera.png" - }, - "CodeIgniter": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" - }, - "html": "]+name=\"ci_csrf_token\"\\;version:2+", - "implies": "PHP", - "website": "codeigniter.com", - "icon": "CodeIgniter.png" - }, - "CodeMirror": { - "cats": [ - 19 - ], - "env": "^CodeMirror$", - "website": "codemirror.net", - "icon": "CodeMirror.png" - }, - "Commerce Server": { - "cats": [ - 6 - ], - "headers": { - "COMMERCE-SERVER-SOFTWARE": "" - }, - "implies": "Microsoft ASP.NET", - "website": "commerceserver.net", - "icon": "Commerce Server.png" - }, - "CompaqHTTPServer": { - "cats": [ - 22 - ], - "headers": { - "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" - }, - "website": "www.hp.com", - "icon": "CompaqHTTPServer.png" - }, - "Concrete5": { - "cats": [ - 1 - ], - "env": "^CCM_IMAGE_PATH$", - "implies": "PHP", - "meta": { - "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" - }, - "script": "concrete/js/", - "website": "concrete5.org", - "icon": "Concrete5.png" - }, - "Connect": { - "cats": [ - 18 - ], - "headers": { - "X-Powered-By": "^Connect$" - }, - "implies": "node.js", - "website": "www.senchalabs.org/connect", - "icon": "Connect.png" - }, - "Contao": { - "cats": [ - 1 - ], - "html": [ - "", - "]+(?:typolight|contao)\\.css" - ], - "implies": "PHP", - "meta": { - "generator": "^Contao Open Source CMS$" - }, - "website": "contao.org", - "icon": "Contao.png" - }, - "Contenido": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "Contenido ([\\d.]+)\\;version:\\1" - }, - "website": "contenido.org/en", - "icon": "Contenido.png" - }, - "Contens": { - "cats": [ - 1 - ], - "implies": [ - "Java", - "CFML" - ], - "meta": { - "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" - }, - "website": "www.contens.com/en/pub/index.cfm", - "icon": "Contens.png" - }, - "ContentBox": { - "cats": [ - 1, - 11 - ], - "implies": "Adobe ColdFusion", - "meta": { - "generator": "ContentBox powered by ColdBox" - }, - "website": "www.gocontentbox.org", - "icon": "ContentBox.png" - }, - "ConversionLab": { - "cats": [ - 10 - ], - "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", - "website": "www.trackset.it/conversionlab", - "icon": "ConversionLab.png" - }, - "Coppermine": { - "cats": [ - 7 - ], - "html": "|", - "script": "brein/inproces/website/websitefuncties\\.js", - "website": "www.brein.nl/oplossing/product/website", - "icon": "InProces.png" - }, - "Incapsula": { - "cats": [ - 31 - ], - "headers": { - "X-CDN": "Incapsula" - }, - "website": "www.incapsula.com", - "icon": "Incapsula.png" - }, - "Indexhibit": { - "cats": [ - 1 - ], - "html": "<(?:link|a href) [^>]+ndxz-studio", - "implies": [ - "PHP", - "Apache", - "Exhibit" - ], - "meta": { - "generator": "Indexhibit" - }, - "website": "www.indexhibit.org", - "icon": "Indexhibit.png" - }, - "Indico": { - "cats": [ - 1 - ], - "headers": { - "Set-cookie": "MAKACSESSION" - }, - "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", - "website": "indico-software.org", - "icon": "Indico.png" - }, - "Indy": { - "cats": [ - 22 - ], - "headers": { - "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "indyproject.org", - "icon": "Indy.png" - }, - "InstantCMS": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "InstantCMS\\[logdate\\]=" - }, - "meta": { - "generator": "InstantCMS" - }, - "website": "www.instantcms.ru", - "icon": "InstantCMS.png" - }, - "Intel Active Management Technology": { - "cats": [ - 22, - 46 - ], - "headers": { - "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" - }, - "website": "intel.com", - "icon": "Intel Active Management Technology.png" - }, - "IntenseDebate": { - "cats": [ - 15 - ], - "script": "intensedebate\\.com", - "website": "intensedebate.com", - "icon": "IntenseDebate.png" - }, - "Intercom": { - "cats": [ - 10 - ], - "env": "^Intercom$", - "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", - "website": "intercom.io", - "icon": "Intercom.png" - }, - "Intershop": { - "cats": [ - 6 - ], - "script": "(?:is-bin|INTERSHOP)", - "website": "intershop.com", - "icon": "Intershop.png" - }, - "Invenio": { - "cats": [ - 50 - ], - "headers": { - "Set-cookie": "INVENIOSESSION" - }, - "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", - "website": "invenio-software.org", - "icon": "Invenio.png" - }, - "Ionicons": { - "cats": [ - 17 - ], - "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", - "website": "ionicons.com", - "icon": "Ionicons.png" - }, - "JAlbum": { - "cats": [ - 7 - ], - "implies": "Java", - "meta": { - "generator": "JAlbum( [\\d.]+)?\\;version:\\1" - }, - "website": "jalbum.net/en", - "icon": "JAlbum.png" - }, - "JBoss Application Server": { - "cats": [ - 22 - ], - "headers": { - "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" - }, - "website": "jboss.org/jbossas.html", - "icon": "JBoss Application Server.png" - }, - "JBoss Web": { - "cats": [ - 22 - ], - "excludes": "Apache Tomcat", - "headers": { - "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" - }, - "implies": "JBoss Application Server", - "website": "jboss.org/jbossweb", - "icon": "JBoss Web.png" - }, - "JC-HTTPD": { - "cats": [ - 22 - ], - "excludes": "Apache", - "headers": { - "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" - }, - "implies": [ - "Canon" - ], - "website": "canon.com", - "icon": "JC-HTTPD.png" - }, - "JS Charts": { - "cats": [ - 25 - ], - "env": "^JSChart$", - "script": "jscharts.*\\.js", - "website": "www.jscharts.com", - "icon": "JS Charts.png" - }, - "JTL Shop": { - "cats": [ - 6 - ], - "headers": { - "Set-Cookie": "JTLSHOP=" - }, - "html": "(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", - "implies": "PHP", - "meta": { - "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" - }, - "url": "option=com_", - "website": "joomla.org", - "icon": "Joomla.png" - }, - "K2": { - "cats": [ - 19 - ], - "env": "^K2RatingURL$", - "html": "", - "", - "]*/sites/[a-z\\d]{24}/theme/stylesheets", - "implies": [ - "Ruby on Rails", - "MongoDB" - ], - "website": "www.locomotivecms.com", - "icon": "Locomotive.png" - }, - "Logitech Media Server": { - "cats": [ - 22, - 38 - ], - "headers": { - "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" - }, - "website": "www.mysqueezebox.com", - "icon": "Logitech Media Server.png" - }, - "Lotus Domino": { - "cats": [ - 22 - ], - "headers": { - "Server": "Lotus-Domino" - }, - "website": "www-01.ibm.com/software/lotus/products/domino", - "icon": "Lotus Domino.png" - }, - "Lua": { - "cats": [ - 27 - ], - "headers": { - "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" - }, - "website": "www.lua.org", - "icon": "Lua.png" - }, - "Lucene": { - "cats": [ - 34 - ], - "website": "lucene.apache.org/core/", - "icon": "Lucene.png" - }, - "M.R. Inc BoxyOS": { - "cats": [ - 28 - ], - "website": "mrincworld.com", - "icon": "M.R. Inc BoxyOS.png" - }, - "M.R. Inc SiteFrame": { - "cats": [ - 18 - ], - "headers": { - "Powered-By": "M\\.R\\. Inc SiteFrame" - }, - "website": "mrincworld.com", - "icon": "M.R. Inc SiteFrame.png" - }, - "M.R. Inc Webserver": { - "cats": [ - 22 - ], - "headers": { - "Server": "M\\.R\\. Inc Webserver" - }, - "implies": [ - "M.R. Inc BoxyOS" - ], - "website": "mrincworld.com", - "icon": "M.R. Inc Webserver.png" - }, - "MOBOTIX": { - "cats": [ - 39 - ], - "meta": { - "author": "MOBOTIX AG\\;confidence:40", - "copyright": "MOBOTIX AG\\;confidence:40", - "publisher": "MOBOTIX AG\\;confidence:40" - }, - "url": "control/userimage\\.html\\;confidence:70", - "website": "mobotix.com", - "icon": "MOBOTIX.png" - }, - "MODx": { - "cats": [ - 1 - ], - "env": "^MODX_MEDIA_PATH$", - "headers": { - "Set-Cookie": "SN4[a-f\\d]{12}", - "X-Powered-By": "^MODx" - }, - "html": [ - "]+>Powered by MODx", - "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" - ], - "implies": "PHP", - "website": "modxcms.com", - "icon": "MODx.png" - }, - "MadAdsMedia": { - "cats": [ - 36 - ], - "env": "^setM(?:Iframe|RefURL)$", - "script": "^https?://(?:ads-by|pixel)\\.madadsmedia.com/", - "website": "madadsmedia.com", - "icon": "MadAdsMedia.png" - }, - "Magento": { - "cats": [ - 6 - ], - "env": "^(?:Mage|VarienForm)$", - "headers": { - "Set-Cookie": "frontend=\\;confidence:50" - }, - "implies": "PHP", - "script": [ - "js/mage", - "skin/frontend/(?:default|(enterprise))\\;version:\\1?Enterprise:Community" - ], - "website": "www.magentocommerce.com", - "icon": "Magento.png" - }, - "Mambo": { - "cats": [ - 1 - ], - "excludes": "Joomla", - "meta": { - "generator": "Mambo" - }, - "website": "mambo-foundation.org", - "icon": "Mambo.png" - }, - "MantisBT": { - "cats": [ - 13 - ], - "html": "]+ alt=\"Powered by Mantis Bugtracker", - "website": "www.mantisbt.org", - "icon": "MantisBT.png" - }, - "ManyContacts": { - "cats": [ - 5 - ], - "script": "\\/assets\\/js\\/manycontacts\\.min\\.js", - "website": "www.manycontacts.com", - "icon": "ManyContacts.png" - }, - "Marketo": { - "cats": [ - 32 - ], - "env": "^Munchkin$", - "script": "munchkin\\.marketo\\.net/munchkin\\.js", - "website": "www.marketo.com", - "icon": "Marketo.png" - }, - "Materialize CSS": { - "cats": [ - 18 - ], - "html": "]* href=\"[^\"]*materialize(?:\\.min)?\\.css", - "implies": "jQuery", - "script": "materialize(?:\\.min)?\\.js", - "website": "materializecss.com", - "icon": "Materialize CSS.png" - }, - "MathJax": { - "cats": [ - 25 - ], - "env": "^MathJax$", - "script": "mathjax\\.js", - "website": "mathjax.org", - "icon": "MathJax.png" - }, - "MaxCDN": { - "cats": [ - 31 - ], - "headers": { - "Server": "NetDNA" - }, - "website": "www.maxcdn.com", - "icon": "MaxCDN.png" - }, - "MaxSite CMS": { - "cats": [ - 1 - ], - "meta": { - "generator": "MaxSite CMS" - }, - "website": "max-3000.com", - "icon": "MaxSite CMS.png" - }, - "Mean.io": { - "cats": [ - 12 - ], - "headers": { - "X-Powered-CMS": "Mean\\.io" - }, - "implies": [ - "MongoDB", - "Express", - "AngularJS", - "node.js" - ], - "website": "mean.io", - "icon": "Mean.io.png" - }, - "MediaElement.js": { - "cats": [ - 14 - ], - "env": "^mejs$", - "website": "mediaelementjs.com", - "icon": "MediaElement.js.png" - }, - "MediaTomb": { - "cats": [ - 38 - ], - "headers": { - "Server": "MediaTomb(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "mediatomb.cc", - "icon": "MediaTomb.png" - }, - "MediaWiki": { - "cats": [ - 8 - ], - "html": "(?:]+>Powered by MediaWiki|<[^>]+id=\"t-specialpages)", - "meta": { - "generator": "MediaWiki" - }, - "website": "www.mediawiki.org", - "icon": "MediaWiki.png" - }, - "Meebo": { - "cats": [ - 5 - ], - "html": "(?:", + "icon": "Google Tag Manager.png", + "website": "www.google.com/tagmanager" + }, + "Google Wallet": { + "cats": [ + 41 + ], + "icon": "Google Wallet.png", + "script": [ + "checkout\\.google\\.com", + "wallet\\.google\\.com" + ], + "website": "wallet.google.com" + }, + "Google Web Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "gws" + }, + "icon": "Google Web Server.png", + "website": "en.wikipedia.org/wiki/Google_Web_Server" + }, + "Google Web Toolkit": { + "cats": [ + 18 + ], + "env": "^__gwt_", + "icon": "Google Web Toolkit.png", + "implies": "Java", + "meta": { + "gwt:property": "" + }, + "website": "developers.google.com/web-toolkit" + }, + "Graffiti CMS": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "graffitibot[^;]=" + }, + "icon": "Graffiti CMS.png", + "meta": { + "generator": "Graffiti CMS ([^\"]+)\\;version:\\1" + }, + "script": "/graffiti\\.js", + "website": "graffiticms.codeplex.com" + }, + "Grandstream": { + "cats": [ + 22, + 39 + ], + "headers": { + "Server": "Grandstream\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "Grandstream.png", + "website": "www.grandstream.com" + }, + "Grav": { + "cats": [ + 1 + ], + "icon": "Grav.png", + "implies": [ + "PHP" + ], + "meta": { + "generator": "GravCMS(?:\\s([\\d.]+))?\\;version:\\1" + }, + "website": "getgrav.org" + }, + "Gravatar": { + "cats": [ + 19 + ], + "env": "^Gravatar$", + "html": "<[^>]+gravatar\\.com/avatar/", + "icon": "Gravatar.png", + "website": "gravatar.com" + }, + "Gravity Insights": { + "cats": [ + 10 + ], + "env": "^GravityInsights$", + "icon": "Gravity Insights.png", + "website": "insights.gravity.com" + }, + "Green Valley CMS": { + "cats": [ + 1 + ], + "html": "]+/dsresource\\?objectid=", + "icon": "Green Valley CMS.png", + "meta": { + "DC.identifier": "/content\\.jsp\\?objectid=" + }, + "website": "www.greenvalley.nl/Public/Producten/Content_Management/CMS" + }, + "HERE": { + "cats": [ + 35 + ], + "icon": "HERE.png", + "script": "https?://js\\.cit\\.api\\.here\\.com/se/([\\d.]+)\\/\\;version:\\1", + "website": "developer.here.com" + }, + "HHVM": { + "cats": [ + 22 + ], + "headers": { + "X-Powered-By": "HHVM/?([\\d.]+)?\\;version:\\1" + }, + "icon": "HHVM.png", + "implies": "PHP\\;confidence:50", + "website": "hhvm.com" + }, + "HP": { + "cats": [ + 40 + ], + "icon": "HP.png", + "website": "hp.com" + }, + "HP ChaiServer": { + "cats": [ + 22 + ], + "headers": { + "Server": "HP-Chai(?:Server|SOE)(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "HP ChaiServer.png", + "implies": [ + "HP" + ], + "website": "hp.com" + }, + "HP Compact Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "HP_Compact_Server(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "HP Compact Server.png", + "website": "hp.com" + }, + "HP ProCurve": { + "cats": [ + 37 + ], + "icon": "HP ProCurve.png", + "website": "hp.com/networking" + }, + "HP System Management": { + "cats": [ + 46 + ], + "headers": { + "Server": "HP System Management" + }, + "icon": "HP System Management.png", + "website": "hp.com" + }, + "HP iLO": { + "cats": [ + 22, + 46 + ], + "headers": { + "Server": "HP-iLO-Server(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "HP iLO.png", + "website": "hp.com" + }, + "HTTP Kit": { + "cats": [ + 22 + ], + "headers": { + "Server": "^http-kit" + }, + "icon": "HTTP Kit.png", + "implies": "Java", + "website": "http-kit.org" + }, + "HTTP-Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "(?:^|[^-])\bHTTP-Server(?: ?/?V?([\\d.]+))?\\;version:\\1" + }, + "icon": "HTTP-Server.png", + "website": "???" + }, + "Hammer.js": { + "cats": [ + 12 + ], + "env": "^Hammer$", + "icon": "Hammer.js.png", + "script": "hammer(?:\\.min)?\\.js", + "website": "hammerjs.github.io" + }, + "Handlebars": { + "cats": [ + 12 + ], + "env": "^Handlebars$", + "html": "<[^>]*type=[^>]text\\/x-handlebars-template", + "icon": "Handlebars.png", + "script": "handlebars(?:\\.runtime)?(?:-v([\\d.]+?))?(?:\\.min)?\\.js\\;version:\\1", + "website": "handlebarsjs.com" + }, + "Happy ICS Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "Happy ICS Server(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Happy ICS Server.png", + "implies": "OmniTouch 8660 My Teamwork", + "website": "???" + }, + "Haskell": { + "cats": [ + 27 + ], + "icon": "Haskell.png", + "website": "wiki.haskell.org/Haskell" + }, + "HeadJS": { + "cats": [ + 12 + ], + "env": "^head$\\;confidence:50", + "html": "<[^>]*data-headjs-load", + "icon": "HeadJS.png", + "script": "head\\.(?:core|load)(?:\\.min)?\\.js", + "website": "headjs.com" + }, + "Heap": { + "cats": [ + 10 + ], + "env": "^heap$", + "icon": "Heap.png", + "script": "heap-\\d+.js", + "website": "heapanalytics.com" + }, + "Hello Bar": { + "cats": [ + 5 + ], + "env": "^HelloBar$", + "icon": "Hello Bar.png", + "script": "hellobar\\.js", + "website": "hellobar.com" + }, + "Hiawatha": { + "cats": [ + 22 + ], + "headers": { + "Server": "Hiawatha v([\\d.]+)\\;version:\\1" + }, + "icon": "Hiawatha.png", + "website": "hiawatha-webserver.org" + }, + "Highcharts": { + "cats": [ + 25 + ], + "env": "^Highcharts$", + "html": "]*>Created with Highcharts ([\\d.]*)\\;version:\\1", + "icon": "Highcharts.png", + "script": "highcharts.*\\.js", + "website": "highcharts.com" + }, + "Highstock": { + "cats": [ + 25 + ], + "html": "]*>Created with Highstock ([\\d.]*)\\;version:\\1", + "icon": "Highstock.png", + "script": "highstock(?:\\-|\\.)?([\\d\\.]*\\d).*\\.js\\;version:\\1", + "website": "highcharts.com/products/highstock" + }, + "Hippo": { + "cats": [ + 1 + ], + "html": " <[^>]+/binaries/(?:[^/]+/)*content/gallery/", + "icon": "Hippo.png", + "website": "onehippo.org" + }, + "Hogan.js": { + "cats": [ + 12 + ], + "env": "^Hogan$", + "icon": "Hogan.js.png", + "script": [ + "hogan-(?:-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", + "([\\d.]+)/hogan(?:\\.min)?\\.js\\;version:\\1" + ], + "website": "twitter.github.com/hogan.js" + }, + "Hotaru CMS": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "hotaru_mobile=" + }, + "icon": "Hotaru CMS.png", + "meta": { + "generator": "Hotaru CMS" + }, + "website": "hotarucms.org" + }, + "HubSpot": { + "cats": [ + 32 + ], + "env": "^(?:_hsq|hubspot)$", + "html": "", + "icon": "InProces.png", + "script": "brein/inproces/website/websitefuncties\\.js", + "website": "www.brein.nl/oplossing/product/website" + }, + "Incapsula": { + "cats": [ + 31 + ], + "headers": { + "X-CDN": "Incapsula" + }, + "icon": "Incapsula.png", + "website": "www.incapsula.com" + }, + "Indexhibit": { + "cats": [ + 1 + ], + "html": "<(?:link|a href) [^>]+ndxz-studio", + "icon": "Indexhibit.png", + "implies": [ + "PHP", + "Apache", + "Exhibit" + ], + "meta": { + "generator": "Indexhibit" + }, + "website": "www.indexhibit.org" + }, + "Indico": { + "cats": [ + 1 + ], + "headers": { + "Set-cookie": "MAKACSESSION" + }, + "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", + "icon": "Indico.png", + "website": "indico-software.org" + }, + "Indy": { + "cats": [ + 22 + ], + "headers": { + "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Indy.png", + "website": "indyproject.org" + }, + "InstantCMS": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "InstantCMS\\[logdate\\]=" + }, + "icon": "InstantCMS.png", + "meta": { + "generator": "InstantCMS" + }, + "website": "www.instantcms.ru" + }, + "Intel Active Management Technology": { + "cats": [ + 22, + 46 + ], + "headers": { + "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" + }, + "icon": "Intel Active Management Technology.png", + "website": "intel.com" + }, + "IntenseDebate": { + "cats": [ + 15 + ], + "icon": "IntenseDebate.png", + "script": "intensedebate\\.com", + "website": "intensedebate.com" + }, + "Intercom": { + "cats": [ + 10 + ], + "env": "^Intercom$", + "icon": "Intercom.png", + "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", + "website": "intercom.io" + }, + "Intershop": { + "cats": [ + 6 + ], + "icon": "Intershop.png", + "script": "(?:is-bin|INTERSHOP)", + "website": "intershop.com" + }, + "Invenio": { + "cats": [ + 50 + ], + "headers": { + "Set-cookie": "INVENIOSESSION" + }, + "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", + "icon": "Invenio.png", + "website": "invenio-software.org" + }, + "Ionicons": { + "cats": [ + 17 + ], + "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", + "icon": "Ionicons.png", + "website": "ionicons.com" + }, + "JAlbum": { + "cats": [ + 7 + ], + "icon": "JAlbum.png", + "implies": "Java", + "meta": { + "generator": "JAlbum( [\\d.]+)?\\;version:\\1" + }, + "website": "jalbum.net/en" + }, + "JBoss Application Server": { + "cats": [ + 22 + ], + "headers": { + "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "JBoss Application Server.png", + "website": "jboss.org/jbossas.html" + }, + "JBoss Web": { + "cats": [ + 22 + ], + "excludes": "Apache Tomcat", + "headers": { + "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "JBoss Web.png", + "implies": "JBoss Application Server", + "website": "jboss.org/jbossweb" + }, + "JC-HTTPD": { + "cats": [ + 22 + ], + "excludes": "Apache", + "headers": { + "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "JC-HTTPD.png", + "implies": [ + "Canon" + ], + "website": "canon.com" + }, + "JS Charts": { + "cats": [ + 25 + ], + "env": "^JSChart$", + "icon": "JS Charts.png", + "script": "jscharts.*\\.js", + "website": "www.jscharts.com" + }, + "JTL Shop": { + "cats": [ + 6 + ], + "headers": { + "Set-Cookie": "JTLSHOP=" + }, + "html": "(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", + "icon": "Joomla.png", + "implies": "PHP", + "meta": { + "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" + }, + "url": "option=com_", + "website": "joomla.org" + }, + "K2": { + "cats": [ + 19 + ], + "env": "^K2RatingURL$", + "html": "", + "", + "]*/sites/[a-z\\d]{24}/theme/stylesheets", + "icon": "Locomotive.png", + "implies": [ + "Ruby on Rails", + "MongoDB" + ], + "website": "www.locomotivecms.com" + }, + "Logitech Media Server": { + "cats": [ + 22, + 38 + ], + "headers": { + "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" + }, + "icon": "Logitech Media Server.png", + "website": "www.mysqueezebox.com" + }, + "Lotus Domino": { + "cats": [ + 22 + ], + "headers": { + "Server": "Lotus-Domino" + }, + "icon": "Lotus Domino.png", + "website": "www-01.ibm.com/software/lotus/products/domino" + }, + "Lua": { + "cats": [ + 27 + ], + "headers": { + "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" + }, + "icon": "Lua.png", + "website": "www.lua.org" + }, + "Lucene": { + "cats": [ + 34 + ], + "icon": "Lucene.png", + "website": "lucene.apache.org/core/" + }, + "M.R. Inc BoxyOS": { + "cats": [ + 28 + ], + "icon": "M.R. Inc BoxyOS.png", + "website": "mrincworld.com" + }, + "M.R. Inc SiteFrame": { + "cats": [ + 18 + ], + "headers": { + "Powered-By": "M\\.R\\. Inc SiteFrame" + }, + "icon": "M.R. Inc SiteFrame.png", + "website": "mrincworld.com" + }, + "M.R. Inc Webserver": { + "cats": [ + 22 + ], + "headers": { + "Server": "M\\.R\\. Inc Webserver" + }, + "icon": "M.R. Inc Webserver.png", + "implies": [ + "M.R. Inc BoxyOS" + ], + "website": "mrincworld.com" + }, + "MOBOTIX": { + "cats": [ + 39 + ], + "icon": "MOBOTIX.png", + "meta": { + "author": "MOBOTIX AG\\;confidence:40", + "copyright": "MOBOTIX AG\\;confidence:40", + "publisher": "MOBOTIX AG\\;confidence:40" + }, + "url": "control/userimage\\.html\\;confidence:70", + "website": "mobotix.com" + }, + "MODx": { + "cats": [ + 1 + ], + "env": "^MODX_MEDIA_PATH$", + "headers": { + "Set-Cookie": "SN4[a-f\\d]{12}", + "X-Powered-By": "^MODx" + }, + "html": [ + "]+>Powered by MODx", + "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" + ], + "icon": "MODx.png", + "implies": "PHP", + "website": "modxcms.com" + }, + "MadAdsMedia": { + "cats": [ + 36 + ], + "env": "^setM(?:Iframe|RefURL)$", + "icon": "MadAdsMedia.png", + "script": "^https?://(?:ads-by|pixel)\\.madadsmedia.com/", + "website": "madadsmedia.com" + }, + "Magento": { + "cats": [ + 6 + ], + "env": "^(?:Mage|VarienForm)$", + "headers": { + "Set-Cookie": "frontend=\\;confidence:50" + }, + "icon": "Magento.png", + "implies": "PHP", + "script": [ + "js/mage", + "skin/frontend/(?:default|(enterprise))\\;version:\\1?Enterprise:Community" + ], + "website": "www.magentocommerce.com" + }, + "Mambo": { + "cats": [ + 1 + ], + "excludes": "Joomla", + "icon": "Mambo.png", + "meta": { + "generator": "Mambo" + }, + "website": "mambo-foundation.org" + }, + "MantisBT": { + "cats": [ + 13 + ], + "html": "]+ alt=\"Powered by Mantis Bugtracker", + "icon": "MantisBT.png", + "website": "www.mantisbt.org" + }, + "ManyContacts": { + "cats": [ + 5 + ], + "icon": "ManyContacts.png", + "script": "\\/assets\\/js\\/manycontacts\\.min\\.js", + "website": "www.manycontacts.com" + }, + "Marketo": { + "cats": [ + 32 + ], + "env": "^Munchkin$", + "icon": "Marketo.png", + "script": "munchkin\\.marketo\\.net/munchkin\\.js", + "website": "www.marketo.com" + }, + "Materialize CSS": { + "cats": [ + 18 + ], + "html": "]* href=\"[^\"]*materialize(?:\\.min)?\\.css", + "icon": "Materialize CSS.png", + "implies": "jQuery", + "script": "materialize(?:\\.min)?\\.js", + "website": "materializecss.com" + }, + "MathJax": { + "cats": [ + 25 + ], + "env": "^MathJax$", + "icon": "MathJax.png", + "script": "mathjax\\.js", + "website": "mathjax.org" + }, + "MaxCDN": { + "cats": [ + 31 + ], + "headers": { + "Server": "NetDNA" + }, + "icon": "MaxCDN.png", + "website": "www.maxcdn.com" + }, + "MaxSite CMS": { + "cats": [ + 1 + ], + "icon": "MaxSite CMS.png", + "meta": { + "generator": "MaxSite CMS" + }, + "website": "max-3000.com" + }, + "Mean.io": { + "cats": [ + 12 + ], + "headers": { + "X-Powered-CMS": "Mean\\.io" + }, + "icon": "Mean.io.png", + "implies": [ + "MongoDB", + "Express", + "AngularJS", + "node.js" + ], + "website": "mean.io" + }, + "MediaElement.js": { + "cats": [ + 14 + ], + "env": "^mejs$", + "icon": "MediaElement.js.png", + "website": "mediaelementjs.com" + }, + "MediaTomb": { + "cats": [ + 38 + ], + "headers": { + "Server": "MediaTomb(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "MediaTomb.png", + "website": "mediatomb.cc" + }, + "MediaWiki": { + "cats": [ + 8 + ], + "html": "(?:]+>Powered by MediaWiki|<[^>]+id=\"t-specialpages)", + "icon": "MediaWiki.png", + "meta": { + "generator": "MediaWiki" + }, + "website": "www.mediawiki.org" + }, + "Meebo": { + "cats": [ + 5 + ], + "html": "(?: