Added categories, custom script option

main
ElbertF 14 years ago
parent fb966de89c
commit 620484d0aa

@ -1,170 +1,194 @@
if ( typeof(wappalyzer) != 'undefined' )
{
wappalyzer.cats = {
1: { name: 'CMS', plural: 'CMS' },
2: { name: 'Message Board', plural: 'Message Boards' },
3: { name: 'Database manager', plural: 'Database managers' },
4: { name: 'Documentation tool', plural: 'Documentation tools' },
5: { name: 'Widget', plural: 'Widgets' },
6: { name: 'Web shop', plural: 'Web shops' },
7: { name: 'Photo gallery', plural: 'Photo galleries' },
8: { name: 'Wiki', plural: 'Wikis' },
9: { name: 'Hosting panel', plural: 'Hosting panels' },
10: { name: 'Analytics', plural: 'Analytics' },
11: { name: 'Blog', plural: 'Blogs' },
12: { name: 'JavaScript framework', plural: 'JavaScript frameworks' },
13: { name: 'Issue tracker', plural: 'Issue trackers' },
14: { name: 'Video Player', plural: 'Video Players' },
15: { name: 'Comment System', plural: 'Comment Systems' },
16: { name: 'CAPTCHA', plural: 'CAPTCHAs' },
17: { name: 'Font script', plural: 'Font scripts' },
18: { name: 'Web framework', plural: 'Web frameworks' },
19: { name: 'Miscellaneous', plural: 'Miscellaneous' },
20: { name: 'Editor', plural: 'Editors' }
};
wappalyzer.apps = {
'phpBB': { html: /(Powered by (<a href=("|')[^>]+)?phpBB|<meta name=("|')copyright("|') [^>]+phpBB Group)/i },
'WordPress': { html: /(<link rel=("|')stylesheet("|') [^>]+wp-content|<meta name=("|')generator("|') [^>]+WordPress)/i },
'MediaWiki': { html: /(<meta name=("|')generator("|') [^>]+MediaWiki|<a[^>]+>Powered by MediaWiki<\/a>)/i },
'Joomla': { html: /(<meta name=("|')generator("|') [^>]+Joomla|<!\-\- JoomlaWorks "K2")/i, headers: { 'X-Content-Encoded-By': /Joomla/ } },
'Drupal': { html: /(<script [^>]+drupal\.js|jQuery\.extend\(Drupal\.settings, \{|Drupal\.extend\(\{ settings: \{|<link[^>]+sites\/(default|all)\/themes\/|<style.+sites\/(default|all)\/(themes|modules)\/)/i, headers: { 'X-Drupal-Cache': /.*/ } },
'Kolibri CMS': { html: /<meta name=("|')copyright("|') [^>]+Kolibri/i },
'vBulletin': { html: /<meta name=("|')generator("|') [^>]+vBulletin/i },
'SMF': { html: /<script .+\s+var smf_/i },
'IPB': { html: /<script [^>]+jscripts\/ips_/i },
'Coppermine': { html: /<!--Coppermine Photo Gallery/i },
'MiniBB': { html: /<a href=("|')[^>]+minibb.+\s+<!--End of copyright link/i },
'punBB': { html: /Powered by <a href=("|')[^>]+punbb/i },
'XMB': { html: /<!-- Powered by XMB/i },
'YaBB': { html: /Powered by <a href=("|')[^>]+yabbforum/i },
's9y': { html: /<meta name=("|')Powered-By("|') [^>]+Serendipity/i },
'e107': { html: /<script [^>]+e107\.js/i },
'PHP-Fusion': { html: /Powered by <a href=("|')[^>]+php-fusion/i },
'DokuWiki': { html: /<meta name=("|')generator("|') [^>]+DokuWiki/i },
'Squarespace': { html: /Squarespace\.Constants\.CURRENT_MODULE_ID/i },
'MyBB': { html: /(<script .+\s+<!--\s+lang\.no_new_posts|<a[^>]* title=("|')Powered By MyBB)/i },
'FluxBB': { html: /Powered by (<strong>)?<a href=("|')[^>]+fluxbb/i },
'Vanilla': { html: /<body id=("|')(DiscussionsPage|vanilla)/i, headers: { 'X-Powered-By': /Vanilla/ } },
'TYPO3': { html: /(<meta name=("|')generator("|') [^>]+TYPO3|<(script[^>]* src|link[^>]* href)=[^>]*fileadmin)/i, url: /\/typo3/i },
'Prestashop': { html: /(<meta name=("|')generator("|') [^>]+PrestaShop|Powered by <a href=("|')[^>]+PrestaShop)/i },
'Zen Cart': { html: /<meta name=("|')generator("|') [^>]+Zen Cart/i },
'osCommerce': { html: /<!-- header_eof \/\/-->/i },
'WikkaWiki': { html: /(Powered by <a href=("|')[^>]+WikkaWiki|<meta name=("|')generator("|') [^>]+WikkaWiki)/i },
'osCSS': { html: /<body onload=("|')window\.defaultStatus='oscss templates';("|')/i },
'Google Analytics': { html: /(\.google\-analytics\.com\/ga\.js|<script src=("|')[^"]+google-analytics\.com\/urchin\.js("|'))/i },
'Crazy Egg': { html: /<script type=("|')text\/javascript("|') src=("|')http:\/\/cetrk\.com\/pages\/scripts\/[0-9]+\/[0-9]+\.js("|')/ },
'OneStat': { html: /var p=("|')http("|')\+\(d\.URL\.indexOf\('https:'\)==0\?'s':''\)\+("|'):\/\/stat\.onestat\.com\/stat\.aspx\?tagver/i },
'Clicky': { html: /<script src=("|')http:\/\/static\.getclicky\.com/i },
'Quantcast': { html: /<script[^>]* src=("|')http:\/\/edge\.quantserve\.com\/quant\.js("|')>/i },
'StatCounter': { html: /<script[^>]* src=("|')http:\/\/www\.statcounter\.com\/counter\/counter/i },
'W3Counter': { html: /<script[^>]* src=("|')http:\/\/www\.w3counter\.com\/tracker\.js("|')>/i },
'Site Meter': { html: /<script[^>]* src=("|')http:\/\/[^.]+\.sitemeter.com\/js\/counter\.js\?site=/i },
'CubeCart': { html: /Powered by <a href=.http:\/\/www\.cubecart\.com/i },
'jQuery': { html: /<script[^>]* src=("|')[^>]*jquery[^>]*\.js/i },
'MooTools': { html: /<script[^>]* src=("|')[^>]*mootools[^>]*\.js("|')/i },
'Prototype': { html: /<script[^>]* src=("|')[^>]*prototype\.js("|')/i },
'MochiKit': { html: /<script[^>]* src=("|')[^>]*MochiKit\.js/i },
'viennaCMS': { html: /powered by <a href=("|')[^>]+viennacms/i },
'Movable Type': { html: /<meta name=("|')generator("|') [^>]+Movable Type/i },
'Tumblr': { html: /<iframe src=("|')http:\/\/www\.tumblr\.com/i, url: /^(www.)?.+\.tumblr\.com/i, headers: { 'X-Tumblr-Usec': /.*/ } },
'Google Friend Connect': { html: /<script[^>]* src=("|')[^>]*google.com\/friendconnect/i },
'MyBlogLog': { html: /<script[^>]* src=("|')[^>]*pub\.mybloglog\.com/i },
'Google Maps': { html: /(<script[^>]* src=("|')[^>]*maps\.google\.com\/maps\?file=api|maps\.google\.com\/maps\/api\/staticmap)/i },
'AWStats': { html: /<meta name=("|')generator("|') [^>]+AWStats/i },
'phpMyAdmin': { html: /(var pma_absolute_uri = '|PMA_sendHeaderLocation\(|<title>phpMyAdmin<\/title>)/i },
'phpDocumentor': { html: /<!-- Generated by phpDocumentor/ },
'BigDump': { html: /<!-- <h1>BigDump: Staggered MySQL Dump Importer/ },
'MODx': { html: /(<a[^>]+>Powered by MODx<\/a>|var el= \$\('modxhost'\);|<script type=("|')text\/javascript("|')>var MODX_MEDIA_PATH = "media";)/i },
'VP-ASP': { html: /(<a[^>]+>Powered By VP\-ASP Shopping Cart<\/a>|<script[^>]* src=("|')[^>]*vs350\.js)/ },
'SPIP': { html: /<meta name=("|')generator("|') [^>]+SPIP/i, headers: { 'X-Spip-Cache': /.*/ } },
'Plesk': { html: /<script[^>]* src=("|')[^>]*common\.js\?plesk/i },
'Magento': { html: /var BLANK_URL = '[^>]+js\/blank\.html'/i },
'DirectAdmin': { html: /<a[^>]+>DirectAdmin<\/a> Web Control Panel/i },
'cPanel': { html: /<!-- cPanel/i },
'webEdition': { html: /(<meta name=("|')generator("|') [^>]+webEdition|<meta name=("|')DC.title("|') [^>]+webEdition)/i },
'CMS Made Simple': { html: /<meta name=("|')generator("|') [^>]+CMS Made Simple/i },
'xtCommerce': { html: /(<meta name=("|')generator("|') [^>]+xt:Commerce|<div class=("|')copyright("|')>.+<a[^>]+>xt:Commerce)/i },
'BIGACE': { html: /(<meta name=("|')generator("|') [^>]+BIGACE|Powered by <a href=("|')[^>]+BIGACE|<!--\s+Site is running BIGACE)/i },
'Ubercart': { html: /<script[^>]* src=("|')[^>]*uc_cart\/uc_cart_block\.js/i },
'Contao': { html: /(<!--\s+This website is powered by (TYPOlight|Contao)|<link[^>]+(typolight|contao).css)/i },
'posterous': { html: /<div class=("|')posterous/i },
'papaya CMS': { html: /<link[^>]*\/papaya-themes\//i },
'eZ Publish': { html: /<meta name=("|')generator("|') [^>]+eZ Publish/i },
'script.aculo.us': { html: /<script[^>]* src=("|')[^>]*scriptaculous\.js("|')/i },
'dojo': { html: /<script[^>]* src=("|')[^>]*dojo(\.xd)?\.js("|')/i },
'ExtJS': { html: /<script[^>]* src=("|')[^>]*ext\-base\.js("|')/i },
'WebPublisher': { html: /<meta name=("|')generator("|') [^>]+WEB\|Publisher/i },
'ConversionLab': { html: /<script[^>]* src=("|')http:\/\/conversionlab\.trackset\.com\/track\/tsend\.js("|')/ },
'Koego': { html: /<script[^>]* src=("|')http\:\/\/tracking\.koego\.com\/end\/ego\.js("|')/ },
'YUI': { html: /<script[^>]* src=("|')[^'"]*(\/yui\/|yui\.yahooapis\.com)[^'"]*("|')/ },
'VisualPath': { html: /<script[^>]* src=("|')http:\/\/visualpath[^\/]*\.trackset\.it\/[^\/]+\/track\/include\.js("|')/ },
'WebGUI': { html: /<meta name=("|')generator("|') [^>]+WebGUI/i },
'Plone': { html: /<meta name=("|')generator("|') [^>]+Plone/i },
'CS Cart': { html: /&nbsp;Powered by (<a href=.http:\/\/www\.cs\-cart\.com|CS\-Cart)/i },
'Web Optimizer': { html: /<title [^>]*lang=("|')wo("|')>/ },
'K2': { html: /<!\-\- JoomlaWorks "K2"/ },
'AddThis': { html: /<script[^>]* src=("|')[^>]*addthis\.com\/js/ },
'Koobi': { html: /<meta name=("|')generator("|') [^>]+Koobi/i },
'XiTi': { html: /<[^>]+src=("|')[^>]+xiti.com\/hit.xiti/i },
'Kampyle': { html: /<script[^>]* src=("|')http:\/\/cf\.kampyle\.com\/k_button\.js("|')/ },
'ClickTale': { html: /if\(typeof ClickTale(Tag)*==("|')function("|')\)/ },
'Yahoo! Web Analytics': { html: /<script[^>]* src=("|')[^>]*http:\/\/d\.yimg\.com\/mi\/ywa\.js/ },
'XOOPS': { html: /<meta name=("|')generator("|') [^>]+XOOPS/i },
'Amiro.CMS': { html: /<meta name=("|')generator("|') [^>]+Amiro/i },
'Blogger': { html: /<meta content=("|')blogger("|') [^>]+generator/i, url: /^(www.)?.+\.blogspot\.com/i },
'DataLife Engine': { html: /<meta name=("|')generator("|') [^>]+DataLife Engine/i },
'Nedstat': { html: /sitestat\(("|')http:\/\/nl\.sitestat\.com/ },
'Microsoft ASP.NET': { html: /<input[^>]+name=("|')__VIEWSTATE/, headers: { 'X-Powered-By': /ASP\.NET/ } },
'Yandex.Metrika': { html: /<script[^>]* src=("|')[^"']+mc\.yandex\.ru\/metrika\/watch\.js("|')/ },
'Snoobi': { html: /<script[^>]* src=("|')[^"']+snoobi\.com\/snoop\.php/ },
'Moogo': { html: /<script[^>]* src=("|')[^"']+kotisivukone.js/ },
'Trac': { html: /(<a id=("|')tracpowered)/i },
'MantisBT': { html: /<img[^>]+ alt=("|')Powered by Mantis Bugtracker/i },
'Bugzilla': { html: /<[^>]+(id|title|name)=("|')bugzilla/i },
'Redmine': { html: /(<meta name=("|')description("|')Redmine("|')|Powered by <a href=("|')[^>]+Redmine)/i },
'2z Project': { html: /<meta name=("|')generator("|') [^>]+2z project/i },
'Get Satisfaction': { html: /var feedback_widget = new GSFN\.feedback_widget\(feedback_widget_options\)/ },
'Swiftlet': { html: /(<meta name=("|')generator("|') [^>]+Swiftlet|Powered by <a href=("|')[^>]+Swiftlet)/i, headers: { 'X-Swiftlet-Cache': /.*/, 'X-Powered-By': /Swiftlet/ } },
'YouTube': { html: /<(param|embed)[^>]+youtube\.com\/v/i },
'Vimeo': { html: /<(param|embed)[^>]+vimeo\.com\/moogaloop/i },
'blip.tv': { html: /<(param|embed)[^>]+blip\.tv\/play/i },
'SWFObject': { html: /<script[^>]+swfobject\.js/i },
'Textpattern CMS': { html: /<meta name=("|')generator("|') [^>]+Textpattern/i },
'1C-Bitrix': { html: /(<link[^>]+components\/bitrix|<script[^>]+1c\-bitrix)/i },
'InstantCMS': { html: /<meta name=("|')generator("|') [^>]+InstantCMS/i },
'MaxSite CMS': { html: /<meta name=("|')generator("|') [^>]+MaxSite CMS/i },
'S.Builder': { html: /<meta name=("|')generator("|') [^>]+S\.Builder/i },
'openEngine': { html: /<meta[^>]+openEngine/i },
'SiteEdit': { html: /<meta name=("|')generator("|') [^>]+SiteEdit/i },
'Kentico CMS': { html: /<meta name=("|')generator("|') [^>]+Kentico CMS/i },
'ShareThis': { html: /<script[^>]+ src=("|')[^"']+w\.sharethis\.com\//i },
'chartbeat': { html: /function loadChartbeat\(\) {/i },
'Meebo': { html: /(<iframe id=("|')meebo\-iframe("|')|Meebo\('domReady'\))/ },
'Gravity Insights': { html: /gravityInsightsParams\.site_guid = '/ },
'Disqus': { html: /(<div[^>]+id=("|')disqus_thread("|')|<script[^>]+disqus_url)/ },
'reCAPTCHA': { html: /(<div[^>]+id=("|')recaptcha_image|<script[^>]+ src=("|')https:\/\/api\-secure\.recaptcha\.net)/ },
'DotNetNuke': { html: /(<meta name=("|')generator("|') [^>]+DotNetNuke|<!\-\- by DotNetNuke Corporation)/i },
'jQuery UI': { html: /<script[^>]* src=("|')[^>]*jquery\-ui[^>]*\.js/i },
'Typekit': { html: /<script[^>]* src=("|')[^>]*use.typekit.com/i },
'Mint': { html: /<script[^>]* src=("|')[^>]*mint\/\?js/i },
'cufon': { html: /(<script[^>]* src=("|')[^>]*cufon\-yui\.js|<script[^>]*>[^<]+Cufon\.now\(\))/i },
'sIFR': { html: /<script[^>]* src=("|')[^>]*sifr\.js/i },
'Mollom': { html: /(<script[^>]* src=("|')[^>]*mollom\.js|<img[^>]+\/.mollom\/.com)/i },
'YUI Doc': { html: /<html[^>]* yuilibrary\.com\/rdf\/[0-9.]+\/yui\.rdf/i },
'Piwik': { html: /var piwikTracker = Piwik\.getTracker\(/i },
'SOBI 2': { html: /(<!\-\- start of Sigsiu Online Business Index|<div[^>]* class=("|')sobi2)/i },
'DreamWeaver': { html: /(<!\-\-[^>]*(InstanceBeginEditable|Dreamweaver[^>]+target|DWLayoutDefaultTable)|function MM_preloadImages\(\) {)/ },
'FrontPage': { html: /<meta name=("|')GENERATOR("|') [^>]+Microsoft FrontPage/i },
'TypePad': { html: /<meta name=("|')generator("|') [^>]+typepad/i, url: /^(www.)?.+\.typepad\.com/i },
'LiveJournal': { url: /^(www.)?.+\.livejournal\.com/i },
'Vox': { url: /^(www.)?.+\.vox\.com/i },
'xajax': { html: /<script[^>]* src=("|')[^>]*xajax_core\.js/i },
'OpenCart': { html: /(Powered By <a href=("|')[^>]+OpenCart|route = getURLVar\(("|')route)/i },
'SQL Buddy': { html: /(<title>SQL Buddy<\/title>|<[^>]+onclick=("|')sideMainClick\(("|')home\.php)/i },
'phpPgAdmin': { html: /(<title>phpPgAdmin<\/title>|<span class=("|')appname("|')>phpPgAdmin)/i },
'Flyspray': { html: /(<a[^>]+>Powered by Flyspray|<map id=("|')projectsearchform)/ },
'swift.engine': { headers: { 'X-Powered-By': /swift\.engine/ } },
'sNews': { html: /<meta name=("|')Generator("|') [^>]+sNews/ },
'Plura': { html: /<iframe src="http:\/\/pluraserver\.com/ },
'comScore': { html: /<iframe[^>]* (id=("|')comscore("|')|scr=[^>]+comscore)/ },
'Google Font API': { html: /<link[^>]* href=("|')http:\/\/fonts\.googleapis\.com/ },
'CO2Stats': { html: /src=("|')http:\/\/www\.co2stats\.com\/propres\.php/ },
'Woopra': { html: /<script[^>]* src=("|')[^>]*static\.woopra\.com/i },
'Webtrekk': { html: /var webtrekk = new Object/ },
'Reinvigorate': { html: /reinvigorate\.track\("/ },
'Quick.Cart': { html: /<a href="[^>]+opensolution\.org\/">Powered by/i },
'VirtueMart': { html: /<div id=("|')vmMainPage/ },
'Cotonti': { html: /<meta name=("|')generator("|') [^>]+Cotonti/i },
'Mambo': { html: /<meta name=("|')generator("|') [^>]+Mambo/i },
'Concrete5': { html: /<meta name=("|')generator("|') [^>]+concrete5/i },
'Webtrends': { html: /<img[^>]+id=("|')DCSIMG("|')[^>]+webtrends/i },
'SiteCatalyst': { html: /var s_code=s\.t\(\);if\(s_code\)document\.write\(s_code\)/i },
'WebsiteBaker': { html: /<meta name=("|')generator("|') [^>]+WebsiteBaker/i },
'nopCommerce': { html: /(<!\-\-Powered by nopCommerce|Powered by: <a[^>]+nopcommerce)/i },
'JTL Shop': { html: /(<input[^>]+name=('|")JTLSHOP|<a href=('|")jtl\.php)/i },
'XenForo': { html: /(jQuery\.extend\(true, XenForo|Forum software by XenForo&trade;|<!\-\-XF:branding)/ },
'TomatoCart': { html: /<meta name=("|')generator("|') [^>]+TomatoCart/i },
'PHP-Nuke': { html: /(<meta name=("|')generator("|') [^>]+PHP-Nuke|<[^>]+Powered by PHP\-Nuke)/i },
'Twilight CMS': { headers: { 'X-Powered-CMS': /Twilight CMS/ } },
'Wolf CMS': { html: /<a href=("|')[^>]+wolfcms.org.+Wolf CMS.+inside/i },
'Burning Board': { html: /<a href=('|")[^>]+woltlab\.com.+Burning Board/i }
'1C-Bitrix': { cats: { 1: 1 }, html: /(<link[^>]+components\/bitrix|<script[^>]+1c\-bitrix)/i },
'2z Project': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+2z project/i },
'AddThis': { cats: { 1: 5 }, html: /<script[^>]* src=("|')[^>]*addthis\.com\/js/ },
'Amiro.CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Amiro/i },
'AWStats': { cats: { 1: 10 }, html: /<meta name=("|')generator("|') [^>]+AWStats/i },
'BIGACE': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+BIGACE|Powered by <a href=("|')[^>]+BIGACE|<!--\s+Site is running BIGACE)/i },
'BigDump': { cats: { 1: 3 }, html: /<!-- <h1>BigDump: Staggered MySQL Dump Importer/ },
'blip.tv': { cats: { 1: 14 }, html: /<(param|embed)[^>]+blip\.tv\/play/i },
'Blogger': { cats: { 1: 11 }, html: /<meta content=("|')blogger("|') [^>]+generator/i, url: /^(www.)?.+\.blogspot\.com/i },
'Bugzilla': { cats: { 1: 13 }, html: /<[^>]+(id|title|name)=("|')bugzilla/i },
'Burning Board': { cats: { 1: 2 }, html: /<a href=('|")[^>]+woltlab\.com.+Burning Board/i },
'chartbeat': { cats: { 1: 10 }, html: /function loadChartbeat\(\) {/i },
'ClickTale': { cats: { 1: 10 }, html: /if\(typeof ClickTale(Tag)*==("|')function("|')\)/ },
'Clicky': { cats: { 1: 10 }, html: /<script src=("|')http:\/\/static\.getclicky\.com/i },
'CMS Made Simple': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+CMS Made Simple/i },
'CO2Stats': { cats: { 1: 10 }, html: /src=("|')http:\/\/www\.co2stats\.com\/propres\.php/ },
'comScore': { cats: { 1: 10 }, html: /<iframe[^>]* (id=("|')comscore("|')|scr=[^>]+comscore)/ },
'Concrete5': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+concrete5/i },
'Contao': { cats: { 1: 1 }, html: /(<!--\s+This website is powered by (TYPOlight|Contao)|<link[^>]+(typolight|contao).css)/i },
'ConversionLab': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/conversionlab\.trackset\.com\/track\/tsend\.js("|')/ },
'Coppermine': { cats: { 1: 7 }, html: /<!--Coppermine Photo Gallery/i },
'Cotonti': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Cotonti/i },
'cPanel': { cats: { 1: 9 }, html: /<!-- cPanel/i },
'Crazy Egg': { cats: { 1: 10 }, html: /<script type=("|')text\/javascript("|') src=("|')http:\/\/cetrk\.com\/pages\/scripts\/[0-9]+\/[0-9]+\.js("|')/ },
'CS Cart': { cats: { 1: 6 }, html: /&nbsp;Powered by (<a href=.http:\/\/www\.cs\-cart\.com|CS\-Cart)/i },
'CubeCart': { cats: { 1: 6 }, html: /Powered by <a href=.http:\/\/www\.cubecart\.com/i },
'cufon': { cats: { 1: 17 }, html: /(<script[^>]* src=("|')[^>]*cufon\-yui\.js|<script[^>]*>[^<]+Cufon\.now\(\))/i },
'DataLife Engine': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+DataLife Engine/i },
'DirectAdmin': { cats: { 1: 9 }, html: /<a[^>]+>DirectAdmin<\/a> Web Control Panel/i },
'Disqus': { cats: { 1: 15 }, html: /(<div[^>]+id=("|')disqus_thread("|')|<script[^>]+disqus_url)/ },
'dojo': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*dojo(\.xd)?\.js("|')/i },
'DokuWiki': { cats: { 1: 8 }, html: /<meta name=("|')generator("|') [^>]+DokuWiki/i },
'DotNetNuke': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+DotNetNuke|<!\-\- by DotNetNuke Corporation)/i },
'DreamWeaver': { cats: { 1: 20 }, html: /(<!\-\-[^>]*(InstanceBeginEditable|Dreamweaver[^>]+target|DWLayoutDefaultTable)|function MM_preloadImages\(\) {)/ },
'Drupal': { cats: { 1: 1 }, html: /(<script [^>]+drupal\.js|jQuery\.extend\(Drupal\.settings, \{|Drupal\.extend\(\{ settings: \{|<link[^>]+sites\/(default|all)\/themes\/|<style.+sites\/(default|all)\/(themes|modules)\/)/i, headers: { 'X-Drupal-Cache': /.*/ } },
'e107': { cats: { 1: 1 }, html: /<script [^>]+e107\.js/i },
'ExtJS': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*ext\-base\.js("|')/i },
'eZ Publish': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+eZ Publish/i },
'FluxBB': { cats: { 1: 2 }, html: /Powered by (<strong>)?<a href=("|')[^>]+fluxbb/i },
'Flyspray': { cats: { 1: 13 }, html: /(<a[^>]+>Powered by Flyspray|<map id=("|')projectsearchform)/ },
'FrontPage': { cats: { 1: 20 }, html: /<meta name=("|')GENERATOR("|') [^>]+Microsoft FrontPage/i },
'Get Satisfaction': { cats: { 1: 13 }, html: /var feedback_widget = new GSFN\.feedback_widget\(feedback_widget_options\)/ },
'Google Analytics': { cats: { 1: 10 }, html: /(\.google\-analytics\.com\/ga\.js|<script src=("|')[^"]+google-analytics\.com\/urchin\.js("|'))/i },
'Google Font API': { cats: { 1: 17 }, html: /<link[^>]* href=("|')http:\/\/fonts\.googleapis\.com/ },
'Google Friend Connect': { cats: { 1: 5 }, html: /<script[^>]* src=("|')[^>]*google.com\/friendconnect/i },
'Google Maps': { cats: { 1: 5 }, html: /(<script[^>]* src=("|')[^>]*maps\.google\.com\/maps\?file=api|maps\.google\.com\/maps\/api\/staticmap)/i },
'Gravity Insights': { cats: { 1: 10 }, html: /gravityInsightsParams\.site_guid = '/ },
'InstantCMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+InstantCMS/i },
'IPB': { cats: { 1: 2 }, html: /<script [^>]+jscripts\/ips_/i },
'Joomla': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+Joomla|<!\-\- JoomlaWorks "K2")/i, headers: { 'X-Content-Encoded-By': /Joomla/ } },
'jQuery UI': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*jquery\-ui[^>]*\.js/i },
'jQuery': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*jquery[^>]*\.js/i },
'JTL Shop': { cats: { 1: 6 }, html: /(<input[^>]+name=('|")JTLSHOP|<a href=('|")jtl\.php)/i },
'K2': { cats: { 1: 19 }, html: /<!\-\- JoomlaWorks "K2"/ },
'Kampyle': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/cf\.kampyle\.com\/k_button\.js("|')/ },
'Kentico CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Kentico CMS/i },
'Koego': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http\:\/\/tracking\.koego\.com\/end\/ego\.js("|')/ },
'Kolibri CMS': { cats: { 1: 1 }, html: /<meta name=("|')copyright("|') [^>]+Kolibri/i },
'Koobi': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Koobi/i },
'LiveJournal': { cats: { 1: 11 }, url: /^(www.)?.+\.livejournal\.com/i },
'Magento': { cats: { 1: 6 }, html: /var BLANK_URL = '[^>]+js\/blank\.html'/i },
'Mambo': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Mambo/i },
'MantisBT': { cats: { 1: 13 }, html: /<img[^>]+ alt=("|')Powered by Mantis Bugtracker/i },
'MaxSite CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+MaxSite CMS/i },
'MediaWiki': { cats: { 1: 8 }, html: /(<meta name=("|')generator("|') [^>]+MediaWiki|<a[^>]+>Powered by MediaWiki<\/a>)/i },
'Meebo': { cats: { 1: 5 }, html: /(<iframe id=("|')meebo\-iframe("|')|Meebo\('domReady'\))/ },
'Microsoft ASP.NET': { cats: { 1: 18 }, html: /<input[^>]+name=("|')__VIEWSTATE/, headers: { 'X-Powered-By': /ASP\.NET/ } },
'MiniBB': { cats: { 1: 2 }, html: /<a href=("|')[^>]+minibb.+\s+<!--End of copyright link/i },
'Mint': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^>]*mint\/\?js/i },
'MochiKit': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*MochiKit\.js/i },
'MODx': { cats: { 1: 1 }, html: /(<a[^>]+>Powered by MODx<\/a>|var el= \$\('modxhost'\);|<script type=("|')text\/javascript("|')>var MODX_MEDIA_PATH = "media";)/i },
'Mollom': { cats: { 1: 16 }, html: /(<script[^>]* src=("|')[^>]*mollom\.js|<img[^>]+\/.mollom\/.com)/i },
'Moogo': { cats: { 1: 1 }, html: /<script[^>]* src=("|')[^"']+kotisivukone.js/ },
'MooTools': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*mootools[^>]*\.js("|')/i },
'Movable Type': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Movable Type/i },
'MyBB': { cats: { 1: 2 }, html: /(<script .+\s+<!--\s+lang\.no_new_posts|<a[^>]* title=("|')Powered By MyBB)/i },
'MyBlogLog': { cats: { 1: 5 }, html: /<script[^>]* src=("|')[^>]*pub\.mybloglog\.com/i },
'Nedstat': { cats: { 1: 10 }, html: /sitestat\(("|')http:\/\/nl\.sitestat\.com/ },
'nopCommerce': { cats: { 1: 6 }, html: /(<!\-\-Powered by nopCommerce|Powered by: <a[^>]+nopcommerce)/i },
'OneStat': { cats: { 1: 10 }, html: /var p=("|')http("|')\+\(d\.URL\.indexOf\('https:'\)==0\?'s':''\)\+("|'):\/\/stat\.onestat\.com\/stat\.aspx\?tagver/i },
'OpenCart': { cats: { 1: 6 }, html: /(Powered By <a href=("|')[^>]+OpenCart|route = getURLVar\(("|')route)/i },
'openEngine': { cats: { 1: 1 }, html: /<meta[^>]+openEngine/i },
'osCommerce': { cats: { 1: 6 }, html: /<!-- header_eof \/\/-->/i },
'osCSS': { cats: { 1: 6 }, html: /<body onload=("|')window\.defaultStatus='oscss templates';("|')/i },
'papaya CMS': { cats: { 1: 1 }, html: /<link[^>]*\/papaya-themes\//i },
'PHP-Fusion': { cats: { 1: 1 }, html: /Powered by <a href=("|')[^>]+php-fusion/i },
'PHP-Nuke': { cats: { 1: 2 }, html: /(<meta name=("|')generator("|') [^>]+PHP-Nuke|<[^>]+Powered by PHP\-Nuke)/i },
'phpBB': { cats: { 1: 2 }, html: /(Powered by (<a href=("|')[^>]+)?phpBB|<meta name=("|')copyright("|') [^>]+phpBB Group)/i },
'phpDocumentor': { cats: { 1: 4 }, html: /<!-- Generated by phpDocumentor/ },
'phpMyAdmin': { cats: { 1: 3 }, html: /(var pma_absolute_uri = '|PMA_sendHeaderLocation\(|<title>phpMyAdmin<\/title>)/i },
'phpPgAdmin': { cats: { 1: 3 }, html: /(<title>phpPgAdmin<\/title>|<span class=("|')appname("|')>phpPgAdmin)/i },
'Piwik': { cats: { 1: 10 }, html: /var piwikTracker = Piwik\.getTracker\(/i },
'Plesk': { cats: { 1: 9 }, html: /<script[^>]* src=("|')[^>]*common\.js\?plesk/i },
'Plone': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Plone/i },
'Plura': { cats: { 1: 19 }, html: /<iframe src="http:\/\/pluraserver\.com/ },
'posterous': { cats: { 1: 1, 2: 11 }, html: /<div class=("|')posterous/i },
'Prestashop': { cats: { 1: 6 }, html: /(<meta name=("|')generator("|') [^>]+PrestaShop|Powered by <a href=("|')[^>]+PrestaShop)/i },
'Prototype': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*prototype\.js("|')/i },
'punBB': { cats: { 1: 2 }, html: /Powered by <a href=("|')[^>]+punbb/i },
'Quantcast': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/edge\.quantserve\.com\/quant\.js("|')>/i },
'Quick.Cart': { cats: { 1: 6 }, html: /<a href="[^>]+opensolution\.org\/">Powered by/i },
'reCAPTCHA': { cats: { 1: 16 }, html: /(<div[^>]+id=("|')recaptcha_image|<script[^>]+ src=("|')https:\/\/api\-secure\.recaptcha\.net)/ },
'Reddit': { cats: { 1: 2 }, html: /(<script[^>]+>var reddit = {|<a[^>]+Powered by Reddit|powered by <a[^>]+>reddit<)/i, url: /^(www.)?reddit\.com/ },
'Redmine': { cats: { 1: 13 }, html: /(<meta name=("|')description("|')Redmine("|')|Powered by <a href=("|')[^>]+Redmine)/i },
'Reinvigorate': { cats: { 1: 10 }, html: /reinvigorate\.track\("/ },
'S.Builder': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+S\.Builder/i },
's9y': { cats: { 1: 1 }, html: /<meta name=("|')Powered-By("|') [^>]+Serendipity/i },
'script.aculo.us': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*scriptaculous\.js("|')/i },
'ShareThis': { cats: { 1: 5 }, html: /<script[^>]+ src=("|')[^"']+w\.sharethis\.com\//i },
'sIFR': { cats: { 1: 17 }, html: /<script[^>]* src=("|')[^>]*sifr\.js/i },
'Site Meter': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/[^.]+\.sitemeter.com\/js\/counter\.js\?site=/i },
'SiteCatalyst': { cats: { 1: 10 }, html: /var s_code=s\.t\(\);if\(s_code\)document\.write\(s_code\)/i },
'SiteEdit': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+SiteEdit/i },
'SMF': { cats: { 1: 2 }, html: /<script .+\s+var smf_/i },
'sNews': { cats: { 1: 1 }, html: /<meta name=("|')Generator("|') [^>]+sNews/ },
'Snoobi': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^"']+snoobi\.com\/snoop\.php/ },
'SOBI 2': { cats: { 1: 19 }, html: /(<!\-\- start of Sigsiu Online Business Index|<div[^>]* class=("|')sobi2)/i },
'SPIP': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+SPIP/i, headers: { 'X-Spip-Cache': /.*/ } },
'SQL Buddy': { cats: { 1: 3 }, html: /(<title>SQL Buddy<\/title>|<[^>]+onclick=("|')sideMainClick\(("|')home\.php)/i },
'Squarespace': { cats: { 1: 1 }, html: /Squarespace\.Constants\.CURRENT_MODULE_ID/i },
'StatCounter': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/www\.statcounter\.com\/counter\/counter/i },
'SWFObject': { cats: { 1: 19 }, html: /<script[^>]+swfobject\.js/i },
'swift.engine': { cats: { 1: 1 }, headers: { 'X-Powered-By': /swift\.engine/ } },
'Swiftlet': { cats: { 1: 1, 2: 18 }, html: /(<meta name=("|')generator("|') [^>]+Swiftlet|Powered by <a href=("|')[^>]+Swiftlet)/i, headers: { 'X-Swiftlet-Cache': /.*/, 'X-Powered-By': /Swiftlet/ } },
'Textpattern CMS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+Textpattern/i },
'TomatoCart': { cats: { 1: 6 }, html: /<meta name=("|')generator("|') [^>]+TomatoCart/i },
'Trac': { cats: { 1: 13 }, html: /(<a id=("|')tracpowered)/i },
'Tumblr': { cats: { 1: 11 }, html: /<iframe src=("|')http:\/\/www\.tumblr\.com/i, url: /^(www.)?.+\.tumblr\.com/i, headers: { 'X-Tumblr-Usec': /.*/ } },
'Twilight CMS': { cats: { 1: 1 }, headers: { 'X-Powered-CMS': /Twilight CMS/ } },
'Typekit': { cats: { 1: 17 }, html: /<script[^>]* src=("|')[^>]*use.typekit.com/i },
'TypePad': { cats: { 1: 11 }, html: /<meta name=("|')generator("|') [^>]+typepad/i, url: /^(www.)?.+\.typepad\.com/i },
'TYPO3': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+TYPO3|<(script[^>]* src|link[^>]* href)=[^>]*fileadmin)/i, url: /\/typo3/i },
'Ubercart': { cats: { 1: 6 }, html: /<script[^>]* src=("|')[^>]*uc_cart\/uc_cart_block\.js/i },
'Vanilla': { cats: { 1: 2 }, html: /<body id=("|')(DiscussionsPage|vanilla)/i, headers: { 'X-Powered-By': /Vanilla/ } },
'vBulletin': { cats: { 1: 2 }, html: /<meta name=("|')generator("|') [^>]+vBulletin/i },
'viennaCMS': { cats: { 1: 1 }, html: /powered by <a href=("|')[^>]+viennacms/i },
'Vimeo': { cats: { 1: 14 }, html: /<(param|embed)[^>]+vimeo\.com\/moogaloop/i },
'VirtueMart': { cats: { 1: 6 }, html: /<div id=("|')vmMainPage/ },
'VisualPath': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/visualpath[^\/]*\.trackset\.it\/[^\/]+\/track\/include\.js("|')/ },
'Vox': { cats: { 1: 11 }, url: /^(www.)?.+\.vox\.com/i },
'VP-ASP': { cats: { 1: 6 }, html: /(<a[^>]+>Powered By VP\-ASP Shopping Cart<\/a>|<script[^>]* src=("|')[^>]*vs350\.js)/ },
'W3Counter': { cats: { 1: 10 }, html: /<script[^>]* src=("|')http:\/\/www\.w3counter\.com\/tracker\.js("|')>/i },
'Web Optimizer': { cats: { 1: 10 }, html: /<title [^>]*lang=("|')wo("|')>/ },
'webEdition': { cats: { 1: 1 }, html: /(<meta name=("|')generator("|') [^>]+webEdition|<meta name=("|')DC.title("|') [^>]+webEdition)/i },
'WebGUI': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+WebGUI/i },
'WebPublisher': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+WEB\|Publisher/i },
'WebsiteBaker': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+WebsiteBaker/i },
'Webtrekk': { cats: { 1: 10 }, html: /var webtrekk = new Object/ },
'Webtrends': { cats: { 1: 10 }, html: /<img[^>]+id=("|')DCSIMG("|')[^>]+webtrends/i },
'WikkaWiki': { cats: { 1: 8 }, html: /(Powered by <a href=("|')[^>]+WikkaWiki|<meta name=("|')generator("|') [^>]+WikkaWiki)/i },
'Wolf CMS': { cats: { 1: 1 }, html: /<a href=("|')[^>]+wolfcms.org.+Wolf CMS.+inside/i },
'Woopra': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^>]*static\.woopra\.com/i },
'WordPress': { cats: { 1: 1, 2: 11 }, html: /(<link rel=("|')stylesheet("|') [^>]+wp-content|<meta name=("|')generator("|') [^>]+WordPress)/i },
'xajax': { cats: { 1: 12 }, html: /<script[^>]* src=("|')[^>]*xajax_core\.js/i },
'XenForo': { cats: { 1: 2 }, html: /(jQuery\.extend\(true, XenForo|Forum software by XenForo&trade;|<!\-\-XF:branding)/ },
'XiTi': { cats: { 1: 10 }, html: /<[^>]+src=("|')[^>]+xiti.com\/hit.xiti/i },
'XMB': { cats: { 1: 2 }, html: /<!-- Powered by XMB/i },
'XOOPS': { cats: { 1: 1 }, html: /<meta name=("|')generator("|') [^>]+XOOPS/i },
'xtCommerce': { cats: { 1: 6 }, html: /(<meta name=("|')generator("|') [^>]+xt:Commerce|<div class=("|')copyright("|')>.+<a[^>]+>xt:Commerce)/i },
'YaBB': { cats: { 1: 2 }, html: /Powered by <a href=("|')[^>]+yabbforum/i },
'Yahoo! Web Analytics': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^>]*http:\/\/d\.yimg\.com\/mi\/ywa\.js/ },
'Yandex.Metrika': { cats: { 1: 10 }, html: /<script[^>]* src=("|')[^"']+mc\.yandex\.ru\/metrika\/watch\.js("|')/ },
'YouTube': { cats: { 1: 14 }, html: /<(param|embed)[^>]+youtube\.com\/v/i },
'YUI Doc': { cats: { 1: 12 }, html: /<html[^>]* yuilibrary\.com\/rdf\/[0-9.]+\/yui\.rdf/i },
'YUI': { cats: { 1: 4 }, html: /<script[^>]* src=("|')[^'"]*(\/yui\/|yui\.yahooapis\.com)[^'"]*("|')/ },
'Zen Cart': { cats: { 1: 6 }, html: /<meta name=("|')generator("|') [^>]+Zen Cart/i }
};
}

@ -9,8 +9,6 @@ wappalyzer =
wappalyzer.log('init');
addEventListener('DOMContentLoaded', wappalyzer.onPageLoad, false);
//Browser.selectedBrowser.addProgressListener(wappalyzer.urlChange, Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);
},
log: function(message)

@ -0,0 +1,80 @@
if ( typeof('wappalyzer') != 'undefined' )
{
var wappalyzer = {};
}
wappalyzer.evaluateCustomApps = function(feedback)
{
wappalyzer.log('evaluateCustomApps');
if ( wappalyzer.customApps )
{
try
{
var customAppsJSON = JSON.parse(wappalyzer.customApps);
for ( appName in customAppsJSON )
{
wappalyzer.apps[appName] = {};
// Icon
if ( typeof(customAppsJSON[appName].icon) == 'string' )
{
wappalyzer.apps[appName].icon = customAppsJSON[appName].icon;
}
else
{
wappalyzer.apps[appName].icon = 'chrome://wappalyzer/skin/app_icons/_placeholder.ico';
}
// Categories
if ( typeof(customAppsJSON[appName].categories) == 'object' )
{
wappalyzer.apps[appName].cats = {};
for ( i in customAppsJSON[appName].categories )
{
wappalyzer.apps[appName].cats[i] = parseInt(customAppsJSON[appName].categories[i]);
}
}
// HTML
if ( typeof(customAppsJSON[appName].html) == 'string' )
{
wappalyzer.apps[appName].html = new RegExp(customAppsJSON[appName].html, 'i');
}
// URL
if ( typeof(customAppsJSON[appName].url) == 'string' )
{
wappalyzer.apps[appName].url = new RegExp(customAppsJSON[appName].url, 'i');
}
// Headers
if ( typeof(customAppsJSON[appName].headers) == 'object' )
{
wappalyzer.apps[appName].headers = {};
for ( headerName in customAppsJSON[appName].headers )
{
wappalyzer.apps[appName].headers[headerName] = new RegExp(customAppsJSON[appName].headers[headerName], 'i');
}
}
}
if ( feedback )
{
alert('Ok');
}
}
catch(e)
{
wappalyzer.log('JSON error in custom applications');
if ( feedback )
{
alert('Error: malformed JSON');
}
}
}
};

@ -1,6 +1,7 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin/"?>
<?xml-stylesheet type="text/css" href="chrome://wappalyzer/skin/overlay.css"?>
<!DOCTYPE overlay SYSTEM "chrome://wappalyzer/locale/overlay.dtd">
@ -10,66 +11,218 @@
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<prefpane label="&wappalyzer.options;">
<preferences>
<preference id="wappalyzer-location" name="wappalyzer.location" type="int" />
<preference id="wappalyzer-auto-detect" name="wappalyzer.autoDetect" type="bool"/>
<preference id="wappalyzer-enable-tracking" name="wappalyzer.enableTracking" type="bool"/>
<preference id="wappalyzer-show-app-names" name="wappalyzer.showAppNames" type="int" />
<preference id="wappalyzer-location" name="wappalyzer.location" type="int" />
<preference id="wappalyzer-auto-detect" name="wappalyzer.autoDetect" type="bool" />
<preference id="wappalyzer-enable-tracking" name="wappalyzer.enableTracking" type="bool" />
<preference id="wappalyzer-show-app-names" name="wappalyzer.showAppNames" type="int" />
<preference id="wappalyzer-custom-apps" name="wappalyzer.customApps" type="string"/>
<preference id="wappalyzer-cat1" name="wappalyzer.cat1" type="bool" />
<preference id="wappalyzer-cat2" name="wappalyzer.cat2" type="bool" />
<preference id="wappalyzer-cat3" name="wappalyzer.cat3" type="bool" />
<preference id="wappalyzer-cat4" name="wappalyzer.cat4" type="bool" />
<preference id="wappalyzer-cat5" name="wappalyzer.cat5" type="bool" />
<preference id="wappalyzer-cat6" name="wappalyzer.cat6" type="bool" />
<preference id="wappalyzer-cat7" name="wappalyzer.cat7" type="bool" />
<preference id="wappalyzer-cat8" name="wappalyzer.cat8" type="bool" />
<preference id="wappalyzer-cat9" name="wappalyzer.cat9" type="bool" />
<preference id="wappalyzer-cat10" name="wappalyzer.cat10" type="bool" />
<preference id="wappalyzer-cat11" name="wappalyzer.cat11" type="bool" />
<preference id="wappalyzer-cat12" name="wappalyzer.cat12" type="bool" />
<preference id="wappalyzer-cat13" name="wappalyzer.cat13" type="bool" />
<preference id="wappalyzer-cat14" name="wappalyzer.cat14" type="bool" />
<preference id="wappalyzer-cat15" name="wappalyzer.cat15" type="bool" />
<preference id="wappalyzer-cat16" name="wappalyzer.cat16" type="bool" />
<preference id="wappalyzer-cat17" name="wappalyzer.cat17" type="bool" />
<preference id="wappalyzer-cat18" name="wappalyzer.cat18" type="bool" />
<preference id="wappalyzer-cat19" name="wappalyzer.cat19" type="bool" />
<preference id="wappalyzer-cat20" name="wappalyzer.cat20" type="bool" />
</preferences>
<groupbox>
<caption label="&wappalyzer.behavior;"/>
<grid>
<columns>
<column/>
<column flex="1"/>
</columns>
<rows>
<row>
<hbox align="center">
<label control="wappalyzer-location" value="&wappalyzer.location;:"/>
</hbox>
<hbox align="center">
<menulist preference="wappalyzer-location" id="refresh-interval">
<menupopup>
<menuitem label="&wappalyzer.addressBar;" value="0"/>
<menuitem label="&wappalyzer.statusBar;" value="1"/>
</menupopup>
</menulist>
</hbox>
</row>
<row>
<hbox align="center">
<label control="wappalyzer-auto-detect" value="&wappalyzer.detect;:"/>
</hbox>
<hbox align="center">
<menulist preference="wappalyzer-auto-detect" id="refresh-interval">
<menupopup>
<menuitem label="&wappalyzer.auto;" value="true"/>
<menuitem label="&wappalyzer.manual;" value="false"/>
</menupopup>
</menulist>
</hbox>
</row>
<row>
<hbox align="center">
<label control="wappalyzer-show-app-names" value="&wappalyzer.appNames;:"/>
</hbox>
<hbox align="center">
<menulist preference="wappalyzer-show-app-names" id="refresh-interval">
<menupopup>
<menuitem label="&wappalyzer.always;" value="1"/>
<menuitem label="&wappalyzer.tooltip;" value="2"/>
<menuitem label="&wappalyzer.hover;" value="3"/>
</menupopup>
</menulist>
</hbox>
</row>
</rows>
</grid>
</groupbox>
<tabbox>
<tabs>
<tab label="&wappalyzer.general;" />
<tab label="&wappalyzer.categories;"/>
<tab label="&wappalyzer.custom;" />
</tabs>
<tabpanels>
<tabpanel id="tab-general">
<groupbox>
<grid>
<columns>
<column/>
<column flex="1"/>
</columns>
<rows>
<row>
<hbox align="center">
<label control="wappalyzer-location" value="&wappalyzer.location;:"/>
</hbox>
<hbox align="center">
<menulist preference="wappalyzer-location" id="wappalyzer-option-location">
<menupopup>
<menuitem label="&wappalyzer.addressBar;" value="0"/>
<menuitem label="&wappalyzer.statusBar;" value="1"/>
</menupopup>
</menulist>
</hbox>
</row>
<row>
<hbox align="center">
<label control="wappalyzer-auto-detect" value="&wappalyzer.detect;:"/>
</hbox>
<hbox align="center">
<menulist preference="wappalyzer-auto-detect" id="wappalyzer-option-auto-detect">
<menupopup>
<menuitem label="&wappalyzer.auto;" value="true"/>
<menuitem label="&wappalyzer.manual;" value="false"/>
</menupopup>
</menulist>
</hbox>
</row>
<row>
<hbox align="center">
<label control="wappalyzer-show-app-names" value="&wappalyzer.appNames;:"/>
</hbox>
<hbox align="center">
<menulist preference="wappalyzer-show-app-names" id="wappalyzer-option-show-app-names">
<menupopup>
<menuitem label="&wappalyzer.always;" value="1"/>
<menuitem label="&wappalyzer.tooltip;" value="2"/>
<menuitem label="&wappalyzer.hover;" value="3"/>
</menupopup>
</menulist>
</hbox>
</row>
</rows>
</grid>
<hbox align="center">
<checkbox preference="wappalyzer-enable-tracking" id="wappalyzer-option-enable-tracking" label="&wappalyzer.enableTracking;"/>
</hbox>
<separator/>
<grid>
<columns>
<column flex="1"/>
</columns>
<rows>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-enable-tracking" id="wappalyzer-option-enable-tracking" label="&wappalyzer.enableTracking;"/>
</hbox>
</row>
</rows>
</grid>
</groupbox>
</tabpanel>
<tabpanel id="tab-categories">
<groupbox>
<grid>
<columns>
<column flex="1"/>
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-cat1" id="wappalyzer-option-cat1" label="&wappalyzer.cat1;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat2" id="wappalyzer-option-cat2" label="&wappalyzer.cat2;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat3" id="wappalyzer-option-cat3" label="&wappalyzer.cat3;"/>
</hbox>
</row>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-cat4" id="wappalyzer-option-cat4" label="&wappalyzer.cat4;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat5" id="wappalyzer-option-cat5" label="&wappalyzer.cat5;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat6" id="wappalyzer-option-cat6" label="&wappalyzer.cat6;"/>
</hbox>
</row>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-cat7" id="wappalyzer-option-cat7" label="&wappalyzer.cat7;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat8" id="wappalyzer-option-cat8" label="&wappalyzer.cat8;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat9" id="wappalyzer-option-cat9" label="&wappalyzer.cat9;"/>
</hbox>
</row>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-cat10" id="wappalyzer-option-cat10" label="&wappalyzer.cat10;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat11" id="wappalyzer-option-cat11" label="&wappalyzer.cat11;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat12" id="wappalyzer-option-cat12" label="&wappalyzer.cat12;"/>
</hbox>
</row>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-cat13" id="wappalyzer-option-cat13" label="&wappalyzer.cat13;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat14" id="wappalyzer-option-cat14" label="&wappalyzer.cat14;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat15" id="wappalyzer-option-cat15" label="&wappalyzer.cat15;"/>
</hbox>
</row>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-cat16" id="wappalyzer-option-cat16" label="&wappalyzer.cat16;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat17" id="wappalyzer-option-cat17" label="&wappalyzer.cat17;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat18" id="wappalyzer-option-cat18" label="&wappalyzer.cat18;"/>
</hbox>
</row>
<row>
<hbox align="center">
<checkbox preference="wappalyzer-cat19" id="wappalyzer-option-cat19" label="&wappalyzer.cat19;"/>
</hbox>
<hbox align="center">
<checkbox preference="wappalyzer-cat20" id="wappalyzer-option-cat20" label="&wappalyzer.cat20;"/>
</hbox>
<hbox align="center">
</hbox>
</row>
</rows>
</grid>
</groupbox>
</tabpanel>
<tabpanel id="tab-custom">
<groupbox>
<grid>
<columns>
<column flex="1"/>
</columns>
<rows>
<row>
<hbox align="center">
<textbox preference="wappalyzer-custom-apps" id="wappalyzer-option-custom-apps" multiline="true" rows="10" cols="60"></textbox>
</hbox>
</row>
<row>
<hbox align="center">
<button label="&wappalyzer.evaluate;" oncommand="opener.wappalyzer.evaluateCustomApps(true);"/>
</hbox>
</row>
</rows>
</grid>
</groupbox>
</tabpanel>
</tabpanels>
</tabbox>
</prefpane>
</prefwindow>

@ -11,8 +11,10 @@ wappalyzer =
appsDetected: 0,
autoDetect: true,
browser: {},
currentTab: false,
cats: {},
checkUnique: {},
currentTab: false,
customApps: '',
enableTracking: true,
history: {},
hitCount: 0,
@ -26,6 +28,7 @@ wappalyzer =
req: false,
request: false,
showAppNames: 3,
showCats: [],
init: function()
{
@ -41,9 +44,15 @@ wappalyzer =
wappalyzer.showAppNames = wappalyzer.prefs.getIntPref( 'showAppNames');
wappalyzer.autoDetect = wappalyzer.prefs.getBoolPref('autoDetect');
wappalyzer.customApps = wappalyzer.prefs.getCharPref('customApps');
wappalyzer.enableTracking = wappalyzer.prefs.getBoolPref('enableTracking');
wappalyzer.newInstall = wappalyzer.prefs.getBoolPref('newInstall');
for ( i = 1; i <= 20; i ++ )
{
wappalyzer.showCats[i] = wappalyzer.prefs.getBoolPref('cat' + i);
}
var locationPref = wappalyzer.prefs.getIntPref('location');
wappalyzer.moveLocation(locationPref);
@ -69,6 +78,8 @@ wappalyzer =
// Listen for page loads
wappalyzer.browser.addEventListener('DOMContentLoaded', wappalyzer.onPageLoad, true);
wappalyzer.evaluateCustomApps();
},
log: function(message) {
@ -96,6 +107,10 @@ wappalyzer =
case 'autoDetect':
wappalyzer.autoDetect = wappalyzer.prefs.getBoolPref('autoDetect');
break;
case 'customApps':
wappalyzer.customApps = wappalyzer.prefs.getCharPref('customApps');
break;
case 'enableTracking':
wappalyzer.enableTracking = wappalyzer.prefs.getBoolPref('enableTracking');
@ -109,20 +124,50 @@ wappalyzer =
var locationPref = wappalyzer.prefs.getIntPref('location');
wappalyzer.moveLocation(locationPref);
break;
case 'cat1': wappalyzer.showCats[1] = wappalyzer.prefs.getIntPref('cat1'); break;
case 'cat2': wappalyzer.showCats[2] = wappalyzer.prefs.getIntPref('cat2'); break;
case 'cat3': wappalyzer.showCats[3] = wappalyzer.prefs.getIntPref('cat3'); break;
case 'cat4': wappalyzer.showCats[4] = wappalyzer.prefs.getIntPref('cat4'); break;
case 'cat5': wappalyzer.showCats[5] = wappalyzer.prefs.getIntPref('cat5'); break;
case 'cat6': wappalyzer.showCats[6] = wappalyzer.prefs.getIntPref('cat6'); break;
case 'cat7': wappalyzer.showCats[7] = wappalyzer.prefs.getIntPref('cat7'); break;
case 'cat8': wappalyzer.showCats[8] = wappalyzer.prefs.getIntPref('cat8'); break;
case 'cat9': wappalyzer.showCats[9] = wappalyzer.prefs.getIntPref('cat9'); break;
case 'cat10': wappalyzer.showCats[10] = wappalyzer.prefs.getIntPref('cat10'); break;
case 'cat11': wappalyzer.showCats[11] = wappalyzer.prefs.getIntPref('cat11'); break;
case 'cat12': wappalyzer.showCats[12] = wappalyzer.prefs.getIntPref('cat12'); break;
case 'cat13': wappalyzer.showCats[13] = wappalyzer.prefs.getIntPref('cat13'); break;
case 'cat14': wappalyzer.showCats[14] = wappalyzer.prefs.getIntPref('cat14'); break;
case 'cat15': wappalyzer.showCats[15] = wappalyzer.prefs.getIntPref('cat15'); break;
case 'cat16': wappalyzer.showCats[16] = wappalyzer.prefs.getIntPref('cat16'); break;
case 'cat17': wappalyzer.showCats[17] = wappalyzer.prefs.getIntPref('cat17'); break;
case 'cat18': wappalyzer.showCats[18] = wappalyzer.prefs.getIntPref('cat18'); break;
case 'cat19': wappalyzer.showCats[19] = wappalyzer.prefs.getIntPref('cat19'); break;
case 'cat20': wappalyzer.showCats[20] = wappalyzer.prefs.getIntPref('cat20'); break;
}
},
moveLocation: function(locationPref) {
wappalyzer.log('moveLocation');
var containerId = 'urlbar-icons';
switch ( locationPref )
{
case 1:
containerId = 'wappalyzer-statusbar';
// Show status bar panel
document.getElementById('wappalyzer-statusbar').style.visibility = '';
document.getElementById('wappalyzer-statusbar').style.padding = '1px';
break;
default:
var containerId = 'urlbar-icons';
// Hide status bar panel
document.getElementById('wappalyzer-statusbar').style.visibility = 'hidden';
document.getElementById('wappalyzer-statusbar').style.padding = '0';
}
var e = document.getElementById(containerId);
@ -131,6 +176,103 @@ wappalyzer =
e.appendChild(container);
},
evaluateCustomApps: function(feedback)
{
wappalyzer.log('evaluateCustomApps');
var appsAdded = {};
if ( wappalyzer.customApps )
{
try
{
var customAppsJSON = JSON.parse(wappalyzer.customApps);
for ( appName in customAppsJSON )
{
wappalyzer.apps[appName] = {};
appsAdded[appName] = true;
// Icon
if ( typeof(customAppsJSON[appName].icon) == 'string' )
{
wappalyzer.apps[appName].icon = customAppsJSON[appName].icon;
}
else
{
wappalyzer.apps[appName].icon = 'chrome://wappalyzer/skin/app_icons/_placeholder.ico';
}
// Categories
if ( typeof(customAppsJSON[appName].categories) == 'object' )
{
wappalyzer.apps[appName].cats = {};
for ( i in customAppsJSON[appName].categories )
{
wappalyzer.apps[appName].cats[i] = parseInt(customAppsJSON[appName].categories[i]);
}
}
// HTML
if ( typeof(customAppsJSON[appName].html) == 'string' )
{
wappalyzer.apps[appName].html = new RegExp(customAppsJSON[appName].html, 'i');
}
// URL
if ( typeof(customAppsJSON[appName].url) == 'string' )
{
wappalyzer.apps[appName].url = new RegExp(customAppsJSON[appName].url, 'i');
}
// Headers
if ( typeof(customAppsJSON[appName].headers) == 'object' )
{
wappalyzer.apps[appName].headers = {};
for ( headerName in customAppsJSON[appName].headers )
{
wappalyzer.apps[appName].headers[headerName] = new RegExp(customAppsJSON[appName].headers[headerName], 'i');
}
}
}
if ( feedback )
{
var text = '';
var count = 0;
for ( appName in appsAdded )
{
text += '\n- ' + appName;
count ++;
}
alert('Success. Added ' + count + ' application(s): \n' + text);
}
}
catch(e)
{
wappalyzer.log('JSON error in custom applications');
if ( feedback )
{
alert('Error: malformed JSON.');
}
}
}
else
{
if ( feedback )
{
alert('Nothing to evaluate!');
}
}
},
onPageLoad: function(event)
{
wappalyzer.log('onPageLoad');
@ -326,92 +468,113 @@ wappalyzer =
if ( detectedApp && typeof(wappalyzer.checkUnique[detectedApp]) == 'undefined' )
{
switch ( true )
var show = false;
for ( i in wappalyzer.apps[detectedApp].cats )
{
case wappalyzer.isBookmarklet:
var e = document.getElementById('wappalyzer-bookmarklet-apps');
e.innerHTML =
( wappalyzer.appsDetected ? e.innerHTML : '' ) +
'<a href="' + wappalyzer.homeUrl + 'stats/app/' + escape(wappalyzer.app[i]) + '" style="color: #332;">' +
wappalyzer.app[i] +
'</a><br/>'
;
if ( wappalyzer.showCats[wappalyzer.apps[detectedApp].cats[i]] )
{
show = true;
break;
case wappalyzer.isMobile:
default:
// Hide Wappalyzer icon
document.getElementById('wappalyzer-icon').style.display = 'none';
}
}
// Show app icon and label
var e = document.getElementById('wappalyzer-detected-apps');
if ( show )
{
switch ( true )
{
case wappalyzer.isBookmarklet:
var e = document.getElementById('wappalyzer-bookmarklet-apps');
var child = document.createElement('image');
e.innerHTML =
( wappalyzer.appsDetected ? e.innerHTML : '' ) +
'<a href="' + wappalyzer.homeUrl + 'stats/app/' + escape(wappalyzer.app[i]) + '" style="color: #332;">' +
wappalyzer.app[i] +
'</a><br/>'
;
child.setAttribute('src', 'chrome://wappalyzer/skin/app_icons/' + detectedApp + '.ico');
child.setAttribute('class', 'wappalyzer-icon');
break;
case wappalyzer.isMobile:
default:
// Hide Wappalyzer icon
document.getElementById('wappalyzer-icon').style.display = 'none';
if ( !wappalyzer.isMobile )
{
if ( wappalyzer.showAppNames == 2 )
{
var container = document.getElementById('wappalyzer-container');
// Show app icon and label
var e = document.getElementById('wappalyzer-detected-apps');
var tooltiptext = container.getAttribute('tooltiptext') + '\n' + detectedApp;
var child = document.createElement('image');
container.setAttribute('tooltiptext', tooltiptext);
if ( typeof(wappalyzer.apps[detectedApp].icon) == 'string' )
{
child.setAttribute('src', wappalyzer.apps[detectedApp].icon);
}
if ( wappalyzer.showAppNames == 3 )
else
{
child.setAttribute('onmouseover', 'wappalyzer.showLabels(true)');
child.setAttribute('onmouseout', 'wappalyzer.showLabels(false)');
child.setAttribute('src', 'chrome://wappalyzer/skin/app_icons/' + detectedApp + '.ico');
}
if ( wappalyzer.appsDetected )
child.setAttribute('class', 'wappalyzer-icon');
if ( !wappalyzer.isMobile )
{
child.setAttribute('style', 'margin-left: .5em');
}
}
if ( wappalyzer.showAppNames == 2 )
{
var container = document.getElementById('wappalyzer-container').parentNode;
e.appendChild(child);
var tooltiptext = container.getAttribute('tooltiptext') + '\n' + detectedApp;
if ( !wappalyzer.isMobile )
{
child = document.createElement('label');
if ( wappalyzer.apps[detectedApp].cats )
{
for ( i in wappalyzer.apps[detectedApp].cats )
{
tooltiptext += '\n ' + wappalyzer.cats[wappalyzer.apps[detectedApp].cats[i]].name;
}
child.setAttribute('value', detectedApp);
child.setAttribute('class', 'wappalyzer-app-name');
tooltiptext += '\n';
}
if ( wappalyzer.showAppNames != 1 )
{
child.setAttribute('style', 'display: none;');
}
container.setAttribute('tooltiptext', tooltiptext);
}
if ( wappalyzer.showAppNames == 3 )
{
child.setAttribute('onmouseover', 'wappalyzer.showLabels(true)');
child.setAttribute('onmouseout', 'wappalyzer.showLabels(false)');
if ( wappalyzer.appsDetected )
{
child.setAttribute('style', 'margin-left: .5em');
}
}
e.appendChild(child);
// Enable application statistics menu item
var e = document.getElementById('wappalyzer-app-stats');
if ( !wappalyzer.isMobile )
{
child = document.createElement('label');
child.setAttribute('value', detectedApp);
child.setAttribute('class', 'wappalyzer-app-name');
e.parentNode.setAttribute('disabled', false);
if ( wappalyzer.showAppNames != 1 )
{
child.setAttribute('style', 'display: none;');
}
var child = document.createElement('menuitem');
e.appendChild(child);
child.setAttribute('label', detectedApp);
child.setAttribute('class', 'menuitem-iconic');
child.setAttribute('type', '');
child.setAttribute('image', 'chrome://wappalyzer/skin/app_icons/' + detectedApp + '.ico');
child.setAttribute('oncommand', 'wappalyzer.openTab(\'' + wappalyzer.homeUrl + 'stats/app/' + escape(detectedApp) + '\');');
// Enable application statistics menu item
var e = document.getElementById('wappalyzer-app-stats');
e.appendChild(child);
}
e.parentNode.setAttribute('disabled', false);
var child = document.createElement('menuitem');
child.setAttribute('label', detectedApp);
child.setAttribute('class', 'menuitem-iconic');
child.setAttribute('type', '');
child.setAttribute('image', 'chrome://wappalyzer/skin/app_icons/' + detectedApp + '.ico');
child.setAttribute('oncommand', 'wappalyzer.openTab(\'' + wappalyzer.homeUrl + 'stats/app/' + escape(detectedApp) + '\');');
e.appendChild(child);
}
}
}
if ( doCount )
@ -535,9 +698,9 @@ wappalyzer =
if ( !wappalyzer.isMobile )
{
// Clear tooltip
var container = document.getElementById('wappalyzer-container');
var container = document.getElementById('wappalyzer-container').parentNode;
container.setAttribute('tooltiptext', wappalyzer.strings.getString('wappalyzer.title') + '\n---');
container.setAttribute('tooltiptext', wappalyzer.strings.getString('wappalyzer.title') + ( wappalyzer.showAppNames == 2 ? '\n---' : '' ));
// Disable and clear application statistics menu item
e = document.getElementById('wappalyzer-app-stats');
@ -553,11 +716,14 @@ wappalyzer =
showLabels: function(show)
{
e = document.getElementsByClassName('wappalyzer-app-name');
for ( i = 0; i < e.length; i ++ )
if ( wappalyzer.showAppNames == 3 )
{
e[i].style.display = show ? 'inline' : 'none';
e = document.getElementsByClassName('wappalyzer-app-name');
for ( i = 0; i < e.length; i ++ )
{
e[i].style.display = show ? 'inline' : 'none';
}
}
},
@ -575,7 +741,7 @@ wappalyzer =
bookmarklet: function()
{
if ( typeof(gBrowser) == 'undefined' && typeof(Browser) == 'undefined' )
if ( !wappalyzer.browser )
{
wappalyzer.isBookmarklet = true;

@ -19,9 +19,7 @@
>
<image
id="wappalyzer-icon"
onclick="wappalyzer.analyzePage(wappalyzer.browser.contentDocument.location.href, wappalyzer.browser.contentDocument.documentElement.innerHTML, false, true, true);"
class="wappalyzer-icon"
tooltiptext="&wappalyzer.title;"
label="&wappalyzer.title;"
src="chrome://wappalyzer/skin/icon16x16.ico"/>
@ -32,6 +30,7 @@
window.openDialog('chrome://wappalyzer/content/options.xul', 'wappalyzer-options', 'chrome, centerscreen, modal');
"/>
<menuseparator/>
<menuitem label="&wappalyzer.donate;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl + 'donate');"/>
<menuitem label="&wappalyzer.feedback;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl + '?redirect=feedback');"/>
<menuitem label="&wappalyzer.home;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl);"/>
<menuseparator/>
@ -42,9 +41,23 @@
</hbox>
</hbox>
<hbox id="urlbar-icons"></hbox>
<hbox
id="urlbar-icons"
tooltiptext="&wappalyzer.title;"
onclick="if ( !wappalyzer.autoDetect ) wappalyzer.analyzePage(wappalyzer.browser.contentDocument.location.href, wappalyzer.browser.contentDocument.documentElement.innerHTML, false, true, true);"
onmouseover="wappalyzer.showLabels(true);"
onmouseout="wappalyzer.showLabels(false);"
/>
<statusbar id="status-bar">
<statusbarpanel id="wappalyzer-statusbar" class="statusbarpanel-iconic"></statusbarpanel>
</statusbar>
<statusbarpanel
id="wappalyzer-statusbar"
class="statusbarpanel-iconic"
context="wappalyzer-menu"
tooltiptext="&wappalyzer.title;"
onclick="if ( !wappalyzer.autoDetect ) wappalyzer.analyzePage(wappalyzer.browser.contentDocument.location.href, wappalyzer.browser.contentDocument.documentElement.innerHTML, false, true, true);"
onmouseover="wappalyzer.showLabels(true);"
onmouseout="wappalyzer.showLabels(false);"
/>
</statusbar>
</overlay>

@ -1,8 +1,9 @@
<!ENTITY wappalyzer.title "Wappalyzer">
<!ENTITY wappalyzer.feedback "Feedback">
<!ENTITY wappalyzer.options "Settings">
<!ENTITY wappalyzer.enableTracking "Allow Wappalyzer to collect anonymous data">
<!ENTITY wappalyzer.behavior "Behavior">
<!ENTITY wappalyzer.custom "Custom script">
<!ENTITY wappalyzer.enableTracking "Allow anonymous application data collection for research">
<!ENTITY wappalyzer.general "General">
<!ENTITY wappalyzer.location "Display icons in">
<!ENTITY wappalyzer.addressBar "Address bar">
<!ENTITY wappalyzer.statusBar "Status bar">
@ -13,6 +14,31 @@
<!ENTITY wappalyzer.always "Always">
<!ENTITY wappalyzer.tooltip "Tooltip">
<!ENTITY wappalyzer.hover "Expand on mouse over">
<!ENTITY wappalyzer.categories "Categories">
<!ENTITY wappalyzer.home "Go to Wappalyzer">
<!ENTITY wappalyzer.privacy "Privacy">
<!ENTITY wappalyzer.appStats "View application statistics">
<!ENTITY wappalyzer.donate "Donate">
<!ENTITY wappalyzer.evaluate "Evaluate script">
<!ENTITY wappalyzer.cat1 "CMS">
<!ENTITY wappalyzer.cat2 "Message boards">
<!ENTITY wappalyzer.cat3 "Database managers">
<!ENTITY wappalyzer.cat4 "Documentation tools">
<!ENTITY wappalyzer.cat5 "Widgets">
<!ENTITY wappalyzer.cat6 "Web shops">
<!ENTITY wappalyzer.cat7 "Photo galleries">
<!ENTITY wappalyzer.cat8 "Wikis">
<!ENTITY wappalyzer.cat9 "Hosting panels">
<!ENTITY wappalyzer.cat10 "Analytics">
<!ENTITY wappalyzer.cat11 "Blogs">
<!ENTITY wappalyzer.cat12 "JavaScript frameworks">
<!ENTITY wappalyzer.cat13 "Issue trackers">
<!ENTITY wappalyzer.cat14 "Video players">
<!ENTITY wappalyzer.cat15 "Comment systems">
<!ENTITY wappalyzer.cat16 "CAPTCHAs">
<!ENTITY wappalyzer.cat17 "Font scripts">
<!ENTITY wappalyzer.cat18 "Web frameworks">
<!ENTITY wappalyzer.cat19 "Miscellaneous">
<!ENTITY wappalyzer.cat20 "Editors">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -13,5 +13,9 @@
}
#wappalyzer-detected-apps label {
margin: 0 0 0 .3em;
margin: 0 1px 0 4px;
}
#wappalyzer-option-custom-apps {
font-family: monospace !important;
}

@ -3,3 +3,25 @@ pref('wappalyzer.location', 0);
pref('wappalyzer.enableTracking', true);
pref('wappalyzer.newInstall', true);
pref('wappalyzer.showAppNames', 2);
pref('wappalyzer.customApps', '');
pref('wappalyzer.cat1', true);
pref('wappalyzer.cat2', true);
pref('wappalyzer.cat3', true);
pref('wappalyzer.cat4', true);
pref('wappalyzer.cat5', true);
pref('wappalyzer.cat6', true);
pref('wappalyzer.cat7', true);
pref('wappalyzer.cat8', true);
pref('wappalyzer.cat9', true);
pref('wappalyzer.cat10', true);
pref('wappalyzer.cat11', true);
pref('wappalyzer.cat12', true);
pref('wappalyzer.cat13', true);
pref('wappalyzer.cat14', true);
pref('wappalyzer.cat15', true);
pref('wappalyzer.cat16', true);
pref('wappalyzer.cat17', true);
pref('wappalyzer.cat18', true);
pref('wappalyzer.cat19', true);
pref('wappalyzer.cat20', true);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -5,7 +5,7 @@
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>wappalyzer@crunchlabz.com</em:id>
<em:version>1.11.1</em:version>
<em:version>1.11.3</em:version>
<em:type>2</em:type>
<em:targetApplication>