diff --git a/src/apps.json b/src/apps.json index ab3918712..ded3e86e5 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 @@ -4541,6 +4532,9 @@ ], "icon": "MODX.png", "implies": "PHP", + "meta": { + "generator": "MODX[^\\d.]*([\\d.]+)?\\;version:\\1" + }, "website": "http://modx.com" }, "MadAdsMedia": { @@ -4711,8 +4705,7 @@ "implies": [ "MongoDB", "Express", - "AngularJS", - "Node.js" + "AngularJS" ], "website": "http://mean.io" }, @@ -5287,7 +5280,7 @@ "cats": [ 18 ], - "env": "Nette", + "env": "^Nette$", "headers": { "Set-Cookie": "nette-browser=", "X-Powered-By": "Nette Framework" @@ -5750,7 +5743,7 @@ }, "PHP-Nuke": { "cats": [ - 2 + 1 ], "html": "<[^>]+Powered by PHP-Nuke", "icon": "PHP-Nuke.png", @@ -6775,10 +6768,7 @@ "X-Powered-By": "^Sails$" }, "icon": "Sails.js.svg", - "implies": [ - "Node.js", - "Express" - ], + "implies": "Express", "website": "http://sailsjs.org" }, "Sarka-SPIP": { @@ -7811,6 +7801,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/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/_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" }, 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/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/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/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..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 = []; + var html = new XMLSerializer().serializeToString(document), 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 { 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/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 + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 = [],