From baf7aa98c22331682bf93de6c249ddb7fbf25879 Mon Sep 17 00:00:00 2001 From: Peter Date: Mon, 6 Mar 2017 09:12:15 +0200 Subject: [PATCH 01/10] CloudCart logo updated --- src/icons/cloudcart.svg | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/icons/cloudcart.svg b/src/icons/cloudcart.svg index a97253618..9d608655b 100644 --- a/src/icons/cloudcart.svg +++ b/src/icons/cloudcart.svg @@ -1 +1,24 @@ - \ No newline at end of file + + + + + + + + + + + + + + From 44b4d2a6260e2149e4b97def8249fe1c71bcfa06 Mon Sep 17 00:00:00 2001 From: AlexByte Date: Sat, 11 Mar 2017 03:47:59 +0300 Subject: [PATCH 02/10] FIx false positive env detection of Nette Framework --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 975530295..8f299f0f9 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5280,7 +5280,7 @@ "cats": [ 18 ], - "env": "Nette", + "env": "^Nette$", "headers": { "Set-Cookie": "nette-browser=", "X-Powered-By": "Nette Framework" From 341c9d86c8ad71eae09e72f9aedc4f0c4071614e Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 13 Mar 2017 15:03:08 +0100 Subject: [PATCH 03/10] Express implies nodejs, no need to add it along. --- src/apps.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/apps.json b/src/apps.json index e36664ac0..cebb98f07 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4711,8 +4711,7 @@ "implies": [ "MongoDB", "Express", - "AngularJS", - "Node.js" + "AngularJS" ], "website": "http://mean.io" }, @@ -6775,10 +6774,7 @@ "X-Powered-By": "^Sails$" }, "icon": "Sails.js.svg", - "implies": [ - "Node.js", - "Express" - ], + "implies": "Express", "website": "http://sailsjs.org" }, "Sarka-SPIP": { From 4f6908e9b026eafb14ec7a0b95e74c6e8e095033 Mon Sep 17 00:00:00 2001 From: Craig London Date: Mon, 13 Mar 2017 22:52:03 -0400 Subject: [PATCH 04/10] Fix declaration of some variables --- src/drivers/bookmarklet/driver.js | 2 +- src/drivers/chrome/js/i18n.js | 5 ++--- src/drivers/chrome/js/inject.js | 3 ++- src/drivers/chrome/js/popup.js | 2 +- src/drivers/firefox/data/js/panel.js | 6 +++--- src/drivers/firefox/data/js/tab.js | 4 ++-- src/drivers/phantomjs/driver.js | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/drivers/bookmarklet/driver.js b/src/drivers/bookmarklet/driver.js index 5c5f0f368..a2e93a30e 100644 --- a/src/drivers/bookmarklet/driver.js +++ b/src/drivers/bookmarklet/driver.js @@ -9,7 +9,7 @@ var w = wappalyzer, - debug = true + debug = true, d = window.document, container = d.getElementById('wappalyzer-container'), domain = window.top.location.host, diff --git a/src/drivers/chrome/js/i18n.js b/src/drivers/chrome/js/i18n.js index f8207e6e1..2f11efbc5 100644 --- a/src/drivers/chrome/js/i18n.js +++ b/src/drivers/chrome/js/i18n.js @@ -1,9 +1,8 @@ document.addEventListener('DOMContentLoaded', function() { var i, value, - d = document - nodes = d.getElementsByTagName('*') - ; + d = document, + nodes = d.getElementsByTagName('*'); for ( i = 0; i < nodes.length; i ++ ) { if ( attr = nodes[i].dataset.i18n ) { diff --git a/src/drivers/chrome/js/inject.js b/src/drivers/chrome/js/inject.js index fd734182e..2a8856596 100644 --- a/src/drivers/chrome/js/inject.js +++ b/src/drivers/chrome/js/inject.js @@ -1,6 +1,7 @@ (function() { try { - var i, environmentVars, e = document.createEvent('Events'); + var i, environmentVars, + e = document.createEvent('Events'); e.initEvent('wappalyzerEvent', true, false); diff --git a/src/drivers/chrome/js/popup.js b/src/drivers/chrome/js/popup.js index a2657b67b..e3afa610a 100644 --- a/src/drivers/chrome/js/popup.js +++ b/src/drivers/chrome/js/popup.js @@ -37,7 +37,7 @@ document.addEventListener('DOMContentLoaded', function() { confidence = response.tabCache.appsDetected[appName].confidenceTotal; version = response.tabCache.appsDetected[appName].version; - html = + var html = '
' + '' + '' + diff --git a/src/drivers/firefox/data/js/panel.js b/src/drivers/firefox/data/js/panel.js index 60f97d102..8fbfc9d3d 100644 --- a/src/drivers/firefox/data/js/panel.js +++ b/src/drivers/firefox/data/js/panel.js @@ -1,7 +1,7 @@ (function() { self.port.on('displayApps', function(message) { var - div, a, img, label, name, slugify, + div, a, img, label, name, slugify, confidence, version, d = document, detectedApps = d.getElementById('detected-apps'), empty = d.getElementById('empty'); @@ -52,8 +52,8 @@ label.appendChild(name); label.appendChild(d.createTextNode(( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : ''))); - a.appendChild(img) - a.appendChild(label) + a.appendChild(img); + a.appendChild(label); div.appendChild(a); diff --git a/src/drivers/firefox/data/js/tab.js b/src/drivers/firefox/data/js/tab.js index c4bd3c65b..eafd3c507 100644 --- a/src/drivers/firefox/data/js/tab.js +++ b/src/drivers/firefox/data/js/tab.js @@ -4,8 +4,8 @@ try { if ( document && document.contentType === 'text/html' ) { var - html = new XMLSerializer().serializeToString(document) - env = []; + html = new XMLSerializer().serializeToString(document), + env = []; // TODO: Remove, `env` not used in this scope? self.port.emit('log', html); diff --git a/src/drivers/phantomjs/driver.js b/src/drivers/phantomjs/driver.js index 922e3cb05..3c409d279 100644 --- a/src/drivers/phantomjs/driver.js +++ b/src/drivers/phantomjs/driver.js @@ -5,8 +5,8 @@ scriptDir, scriptPath = require('fs').absolute(require('system').args[0]), resourceTimeout = 9000, - args = [], - debug = false; // Output debug messages + args = [], // TODO: Not used, maybe should be `arg` + debug = false, // Output debug messages quiet = false; // Don't output errors try { From 302bf61d33c4a24939cf38c63749d8a34a6cd6e3 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 15 Mar 2017 15:13:04 +0100 Subject: [PATCH 05/10] Remove the Elm language detection Elm detection was based on the `Elm` pattern in `env`, leading to false positives, as described [in the documentation](https://github.com/AliasIO/Wappalyzer/wiki/Specification#too-generic-patterns). --- src/apps.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/apps.json b/src/apps.json index e36664ac0..d3b9098de 100755 --- a/src/apps.json +++ b/src/apps.json @@ -2265,15 +2265,6 @@ }, "website": "http://eleanor-cms.ru" }, - "Elm": { - "cats": [ - 27, - 12 - ], - "env": "^Elm$", - "icon": "Elm.png", - "website": "http://elm-lang.org" - }, "Eloqua": { "cats": [ 32 From 0378f636abc6c51f837c4620662c29b9db78129f Mon Sep 17 00:00:00 2001 From: simonvdfr Date: Wed, 15 Mar 2017 15:33:38 +0100 Subject: [PATCH 06/10] Add CMS Translucide --- src/apps.json | 12 ++++++++++++ src/icons/translucide.svg | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/icons/translucide.svg diff --git a/src/apps.json b/src/apps.json index e36664ac0..99cfaa598 100755 --- a/src/apps.json +++ b/src/apps.json @@ -7811,6 +7811,18 @@ "script": "tracker.js", "website": "http://trackjs.com" }, + "Translucide": { + "cats": [ + 1 + ], + "implies": [ + "PHP", + "jQuery" + ], + "icon": "translucide.svg", + "script": "lucide\\.init\\.js", + "website": "http://www.translucide.net" + }, "Tumblr": { "cats": [ 11 diff --git a/src/icons/translucide.svg b/src/icons/translucide.svg new file mode 100644 index 000000000..1cadcf7ac --- /dev/null +++ b/src/icons/translucide.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 2b68636e0931729cf69613fbb9fdc651e30b1e4e Mon Sep 17 00:00:00 2001 From: AlexByte Date: Fri, 17 Mar 2017 03:24:17 +0300 Subject: [PATCH 07/10] Add meta generator MODX detection --- src/apps.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/apps.json b/src/apps.json index e36664ac0..b82952961 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4541,6 +4541,9 @@ ], "icon": "MODX.png", "implies": "PHP", + "meta": { + "generator": "MODX[^\\d.]*([\\d.]+)?\\;version:\\1" + }, "website": "http://modx.com" }, "MadAdsMedia": { From d7ca3bb252bd75f5d6ebd018a408f6583ca549f0 Mon Sep 17 00:00:00 2001 From: Arnaud Ligny Date: Sat, 18 Mar 2017 02:40:25 +0100 Subject: [PATCH 08/10] Update French translation. --- src/drivers/chrome/_locales/fr/messages.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/drivers/chrome/_locales/fr/messages.json b/src/drivers/chrome/_locales/fr/messages.json index 52fabcef7..122d43020 100644 --- a/src/drivers/chrome/_locales/fr/messages.json +++ b/src/drivers/chrome/_locales/fr/messages.json @@ -1,14 +1,14 @@ { - "github": { "message": "Forker Wappalyzer sur GitHub!" }, - "noAppsDetected": { "message": "Pas d'applications détectées." }, + "github": { "message": "Forker Wappalyzer sur GitHub !" }, + "noAppsDetected": { "message": "Aucune application détectée." }, "nothingToDo": { "message": "Rien à faire ici." }, - "optionTracking": { "message": "Envoyer anonymement des rapports sur les applications détectées à wappalyzer.com pour la recherche" }, - "optionUpgradeMessage": { "message": "M'afficher les mises à jour" }, + "optionTracking": { "message": "Envoyer anonymement des rapports sur les applications détectées à wappalyzer.com pour recherche" }, + "optionUpgradeMessage": { "message": "M'informer des mises à jour" }, "options": { "message": "Options de Wappalyzer" }, - "optionsSave": { "message": "Sauver les options" }, - "optionsSaved": { "message": "Sauvé" }, + "optionsSave": { "message": "Sauvegarder les options" }, + "optionsSaved": { "message": "Sauvegardé" }, "twitter": { "message": "Suivre Wappalyzer sur Twitter" }, - "website": { "message": "Aller à wappalyzer.com" }, + "website": { "message": "Aller sur wappalyzer.com" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Forum" }, "categoryName3": { "message": "Gestionnaire de base de données" }, From af705b4b67406236ff036240564001615be771e0 Mon Sep 17 00:00:00 2001 From: AlexByte Date: Sat, 18 Mar 2017 06:26:55 +0300 Subject: [PATCH 09/10] Fix category of PNP-NUKE PHP-NUKE is CMS --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index e36664ac0..590534f93 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5750,7 +5750,7 @@ }, "PHP-Nuke": { "cats": [ - 2 + 1 ], "html": "<[^>]+Powered by PHP-Nuke", "icon": "PHP-Nuke.png", From 03d649b3ea55a3368a4d67e637d42e8451eec59f Mon Sep 17 00:00:00 2001 From: jvoisin Date: Sat, 18 Mar 2017 21:44:19 +0100 Subject: [PATCH 10/10] Fix various warnings found by scrutinity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Some functions didn't return anything - Some `for…in` related variables weren't declared - Some variables were unused --- src/drivers/chrome/js/driver.js | 4 ++-- src/drivers/chrome/js/options.js | 6 +++--- src/drivers/firefox/data/js/tab.js | 6 +----- src/drivers/webextension/js/driver.js | 4 ++-- src/drivers/webextension/js/iframe.js | 4 ++-- src/wappalyzer.js | 2 +- 6 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/drivers/chrome/js/driver.js b/src/drivers/chrome/js/driver.js index 3b0fa13ff..d2ec6ae29 100644 --- a/src/drivers/chrome/js/driver.js +++ b/src/drivers/chrome/js/driver.js @@ -54,7 +54,7 @@ firstRun = true; // Set defaults - for ( option in defaults ) { + for ( var option in defaults ) { localStorage[option] = defaults[option]; } } else if ( version !== localStorage['version'] && parseInt(localStorage['upgradeMessage'], 10) ) { @@ -189,7 +189,7 @@ if ( count > 0 ) { // Find the main application to display - var i, appName, found = false; + var appName, found = false; w.driver.categoryOrder.forEach(function(match) { for ( appName in w.detected[url] ) { diff --git a/src/drivers/chrome/js/options.js b/src/drivers/chrome/js/options.js index 7ee9be839..92d1fe3f7 100644 --- a/src/drivers/chrome/js/options.js +++ b/src/drivers/chrome/js/options.js @@ -15,9 +15,9 @@ document.addEventListener('DOMContentLoaded', function() { }, load: function() { - for ( option in options.opts ) { - if ( value = localStorage[option] ) { - options.opts[option] = value; + for ( var option in options.opts ) { + if ( localStorage[option] ) { + options.opts[option] = localStorage[option]; } } diff --git a/src/drivers/firefox/data/js/tab.js b/src/drivers/firefox/data/js/tab.js index eafd3c507..72719ec2b 100644 --- a/src/drivers/firefox/data/js/tab.js +++ b/src/drivers/firefox/data/js/tab.js @@ -1,11 +1,7 @@ (function() { - var lastEnv = []; - try { if ( document && document.contentType === 'text/html' ) { - var - html = new XMLSerializer().serializeToString(document), - env = []; // TODO: Remove, `env` not used in this scope? + var html = new XMLSerializer().serializeToString(document), self.port.emit('log', html); diff --git a/src/drivers/webextension/js/driver.js b/src/drivers/webextension/js/driver.js index 9519d680d..f5583a670 100644 --- a/src/drivers/webextension/js/driver.js +++ b/src/drivers/webextension/js/driver.js @@ -54,7 +54,7 @@ firstRun = true; // Set defaults - for ( option in defaults ) { + for ( var option in defaults ) { localStorage[option] = defaults[option]; } } else if ( version !== localStorage['version'] && parseInt(localStorage['upgradeMessage'], 10) ) { @@ -195,7 +195,7 @@ if ( count > 0 ) { // Find the main application to display - var i, appName, found = false; + var appName, found = false; w.driver.categoryOrder.forEach(function(match) { for ( appName in w.detected[url] ) { diff --git a/src/drivers/webextension/js/iframe.js b/src/drivers/webextension/js/iframe.js index 70f6fc408..fcf40539f 100644 --- a/src/drivers/webextension/js/iframe.js +++ b/src/drivers/webextension/js/iframe.js @@ -112,8 +112,6 @@ var exports = {}; try { dict[key] = window.decodeURIComponent(val); } catch (e) { - - continue; } } return dict; @@ -307,6 +305,7 @@ var exports = {}; return div; } } + return null; }; TopSearcher.prototype._jumpedOut = function(el) { @@ -988,6 +987,7 @@ var exports = {}; } } } + return null; } function onPostMessage(event) { diff --git a/src/wappalyzer.js b/src/wappalyzer.js index 7bddd6930..8eb4f289f 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -242,7 +242,7 @@ var wappalyzer = (function() { */ analyze: function(hostname, url, data) { var - i, j, app, confidence, type, regexMeta, regexScript, match, content, meta, header, version, id, + i, app, confidence, type, regexMeta, regexScript, match, content, meta, header, version, id, profiler = new Profiler(), apps = {}, excludes = [],