diff --git a/src/apps.json b/src/apps.json index c83f970fa..7985fc341 100644 --- a/src/apps.json +++ b/src/apps.json @@ -763,6 +763,14 @@ "script": "adnxs\\.(?:net|com)", "website": "http://appnexus.com" }, + "Appcues": { + "cats": [ + 58 + ], + "icon": "Appcues.svg", + "script": "fast\\.appcues.com*\\.js", + "website": "https://appcues.com" + }, "Arastta": { "cats": [ 6 @@ -7381,6 +7389,14 @@ "implies": "Node.js", "website": "http://pencilblue.org" }, + "Pendo": { + "cats": [ + 58 + ], + "icon": "Pendo.svg", + "script": "cdn\\.pendo\\.io*\\.js", + "website": "https://pendo.io" + }, "Percussion": { "cats": [ 1 @@ -10204,6 +10220,20 @@ }, "website": "https://userengage.com" }, + "UserGuiding": { + "cats": [ + 58, + 10 + ], + "icon": "UserGuiding.svg", + "implies": [ + "React", + "webpack", + "Node.js" + ], + "script": "static\\.userguiding*\\.js", + "website": "https://userguiding.com" + }, "UserLike": { "cats": [ 52 @@ -12745,6 +12775,10 @@ "57": { "name": "Static Site Generator", "priority": 1 + }, + "58": { + "name": "User Onboarding", + "priority": 1 } } } diff --git a/src/drivers/webextension/js/driver.js b/src/drivers/webextension/js/driver.js index 51b183bb5..126d70c79 100644 --- a/src/drivers/webextension/js/driver.js +++ b/src/drivers/webextension/js/driver.js @@ -330,7 +330,7 @@ wappalyzer.driver.getRobotsTxt = (host, secure = false) => { /** * Anonymously track detected applications for research purposes */ -wappalyzer.driver.ping = (hostnameCache, adCache) => { +wappalyzer.driver.ping = (hostnameCache = {}, adCache = []) => { getOption('tracking', true) .then(tracking => { if ( tracking ) { diff --git a/src/wappalyzer.js b/src/wappalyzer.js index 7735819d9..762915a1e 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -200,10 +200,15 @@ class Wappalyzer { * */ ping() { - if ( Object.keys(this.hostnameCache).length + this.adCache.length > 50 ) { - this.driver.ping(this.hostnameCache, this.adCache); + if ( Object.keys(this.hostnameCache).length > 1 ) { + this.driver.ping(this.hostnameCache); this.hostnameCache = {}; + } + + if ( this.adCache.length > 1 ) { + this.driver.ping({}, this.adCache); + this.adCache = []; } }