ElbertF 14 years ago
parent 620484d0aa
commit e318b77cb1

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

@ -0,0 +1,143 @@
if ( typeof(wappalyzer) == 'undefined' )
{
var wappalyzer = {};
wappalyzer.log = function(message)
{
if ( message )
{
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage("Wappalyzer: " + message);
}
};
}
wappalyzer.evaluateCustomApps = function(customApps, feedback)
{
wappalyzer.log('evaluateCustomApps');
var appsAdded = {};
if ( customApps || wappalyzer.customApps )
{
try
{
var customAppsJSON = JSON.parse(feedback ? customApps : wappalyzer.customApps);
for ( appName in customAppsJSON )
{
wappalyzer.apps[appName] = {
custom: true
};
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 )
{
var id = parseInt(customAppsJSON[appName].categories[i]);
if ( typeof(wappalyzer.cats[id]) != 'undefined' )
{
wappalyzer.apps[appName].cats[i] = id;
}
}
}
// 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\n' + appName;
if ( typeof(wappalyzer.apps[appName].cats) == 'object' )
{
for ( i in wappalyzer.apps[appName].cats )
{
text += ' [' + wappalyzer.cats[wappalyzer.apps[appName].cats[i]].name + ']';
}
}
text += '\n Icon [' + ( wappalyzer.apps[appName].icon ? 'Yes' : 'No' ) + ']';
text +=
' HTML [' + ( typeof(wappalyzer.apps[appName].html) == 'object' ? 'Yes' : 'No' ) + ']' +
' URL [' + ( typeof(wappalyzer.apps[appName].url) == 'object' ? 'Yes' : 'No' ) + ']'
;
if ( typeof(wappalyzer.apps[appName].headers) == 'object' )
{
text += ' Headers';
for ( header in wappalyzer.apps[appName].headers )
{
text += ' [' + header + ']';
}
}
count ++;
}
alert('Ok. Found ' + count + ' application(s):' + text);
}
}
catch(e)
{
wappalyzer.log('evaluateCustomApps: malformed JSON');
if ( feedback )
{
alert('Error: malformed JSON.');
}
}
}
else
{
if ( feedback )
{
alert('Nothing to evaluate!');
}
}
};

@ -9,6 +9,10 @@
id="wappalyzer-options" id="wappalyzer-options"
title="&wappalyzer.options;" title="&wappalyzer.options;"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://wappalyzer/content/evaluate.js"/>
<script type="application/x-javascript" src="chrome://wappalyzer/content/apps.js"/>
<prefpane label="&wappalyzer.options;"> <prefpane label="&wappalyzer.options;">
<preferences> <preferences>
<preference id="wappalyzer-location" name="wappalyzer.location" type="int" /> <preference id="wappalyzer-location" name="wappalyzer.location" type="int" />
@ -205,9 +209,22 @@
<groupbox> <groupbox>
<grid> <grid>
<columns> <columns>
<column flex="1"/> <column flex="0"/>
</columns> </columns>
<rows> <rows>
<row>
<hbox align="center">
<description>&wappalyzer.customBody;</description>
</hbox>
</row>
<row>
<hbox align="center">
<!--
<label class="text-link" onclick="window.open(wappalyzer.homeUrl + 'custom/', 'helpWindow'); void(0);" value="&wappalyzer.customMoreInfo;"/>
-->
<label class="text-link" onclick="window.open('http://wappalyzer.com/custom/', 'helpWindow'); void(0);" value="&wappalyzer.customMoreInfo;"/>
</hbox>
</row>
<row> <row>
<hbox align="center"> <hbox align="center">
<textbox preference="wappalyzer-custom-apps" id="wappalyzer-option-custom-apps" multiline="true" rows="10" cols="60"></textbox> <textbox preference="wappalyzer-custom-apps" id="wappalyzer-option-custom-apps" multiline="true" rows="10" cols="60"></textbox>
@ -215,7 +232,7 @@
</row> </row>
<row> <row>
<hbox align="center"> <hbox align="center">
<button label="&wappalyzer.evaluate;" oncommand="opener.wappalyzer.evaluateCustomApps(true);"/> <button label="&wappalyzer.evaluate;" oncommand="wappalyzer.evaluateCustomApps(document.getElementById('wappalyzer-option-custom-apps').value, true);"/>
</hbox> </hbox>
</row> </row>
</rows> </rows>

@ -10,11 +10,12 @@ wappalyzer =
apps: {}, apps: {},
appsDetected: 0, appsDetected: 0,
autoDetect: true, autoDetect: true,
browser: {}, browser: false,
cats: {}, cats: {},
checkUnique: {}, checkUnique: {},
currentTab: false, currentTab: false,
customApps: '', customApps: '',
debug: false,
enableTracking: true, enableTracking: true,
history: {}, history: {},
hitCount: 0, hitCount: 0,
@ -29,6 +30,8 @@ wappalyzer =
request: false, request: false,
showAppNames: 3, showAppNames: 3,
showCats: [], showCats: [],
strings: {},
version: '',
init: function() init: function()
{ {
@ -36,6 +39,8 @@ wappalyzer =
wappalyzer.browser = typeof(Browser) != 'undefined' ? Browser.selectedBrowser : gBrowser; wappalyzer.browser = typeof(Browser) != 'undefined' ? Browser.selectedBrowser : gBrowser;
wappalyzer.strings = document.getElementById('wappalyzer-strings');
// Preferences // Preferences
wappalyzer.prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBranch('wappalyzer.'); wappalyzer.prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBranch('wappalyzer.');
@ -45,8 +50,10 @@ wappalyzer =
wappalyzer.showAppNames = wappalyzer.prefs.getIntPref( 'showAppNames'); wappalyzer.showAppNames = wappalyzer.prefs.getIntPref( 'showAppNames');
wappalyzer.autoDetect = wappalyzer.prefs.getBoolPref('autoDetect'); wappalyzer.autoDetect = wappalyzer.prefs.getBoolPref('autoDetect');
wappalyzer.customApps = wappalyzer.prefs.getCharPref('customApps'); wappalyzer.customApps = wappalyzer.prefs.getCharPref('customApps');
wappalyzer.debug = wappalyzer.prefs.getBoolPref('debug');
wappalyzer.enableTracking = wappalyzer.prefs.getBoolPref('enableTracking'); wappalyzer.enableTracking = wappalyzer.prefs.getBoolPref('enableTracking');
wappalyzer.newInstall = wappalyzer.prefs.getBoolPref('newInstall'); wappalyzer.newInstall = wappalyzer.prefs.getBoolPref('newInstall');
wappalyzer.version = wappalyzer.prefs.getCharPref('version');
for ( i = 1; i <= 20; i ++ ) for ( i = 1; i <= 20; i ++ )
{ {
@ -57,6 +64,19 @@ wappalyzer =
wappalyzer.moveLocation(locationPref); wappalyzer.moveLocation(locationPref);
// Open page after upgrade
var enabledAddons = gPrefService.getCharPref('extensions.enabledAddons');
var version = enabledAddons.replace(/(^.*wappalyzer[^:]+:)([^,]+),.*$/, '$2');
if ( wappalyzer.version != version )
{
wappalyzer.browser.addEventListener('load', wappalyzer.upgradeSuccess, false);
wappalyzer.version = version;
wappalyzer.prefs.setCharPref('version', wappalyzer.version);
}
// Open page after installation // Open page after installation
if ( wappalyzer.newInstall ) if ( wappalyzer.newInstall )
{ {
@ -82,17 +102,14 @@ wappalyzer =
wappalyzer.evaluateCustomApps(); wappalyzer.evaluateCustomApps();
}, },
log: function(message) { log: function(message)
//return;
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage("Wappalyzer: " + message);
},
get strings()
{ {
return document.getElementById('wappalyzer-strings'); if ( wappalyzer.debug && message )
{
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage("Wappalyzer: " + message);
}
}, },
observe: function(subject, topic, data) observe: function(subject, topic, data)
@ -111,6 +128,10 @@ wappalyzer =
case 'customApps': case 'customApps':
wappalyzer.customApps = wappalyzer.prefs.getCharPref('customApps'); wappalyzer.customApps = wappalyzer.prefs.getCharPref('customApps');
break;
case 'debug':
wappalyzer.debug = wappalyzer.prefs.getBoolPref('debug');
break; break;
case 'enableTracking': case 'enableTracking':
wappalyzer.enableTracking = wappalyzer.prefs.getBoolPref('enableTracking'); wappalyzer.enableTracking = wappalyzer.prefs.getBoolPref('enableTracking');
@ -149,6 +170,11 @@ wappalyzer =
} }
}, },
openTab: function(url)
{
wappalyzer.browser.selectedTab = wappalyzer.browser.addTab(url);
},
moveLocation: function(locationPref) { moveLocation: function(locationPref) {
wappalyzer.log('moveLocation'); wappalyzer.log('moveLocation');
@ -176,103 +202,6 @@ wappalyzer =
e.appendChild(container); 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) onPageLoad: function(event)
{ {
wappalyzer.log('onPageLoad'); wappalyzer.log('onPageLoad');
@ -468,15 +397,20 @@ wappalyzer =
if ( detectedApp && typeof(wappalyzer.checkUnique[detectedApp]) == 'undefined' ) if ( detectedApp && typeof(wappalyzer.checkUnique[detectedApp]) == 'undefined' )
{ {
var show = false; var show = true;
for ( i in wappalyzer.apps[detectedApp].cats ) if ( !wappalyzer.isBookmarklet )
{ {
if ( wappalyzer.showCats[wappalyzer.apps[detectedApp].cats[i]] ) var show = false;
for ( i in wappalyzer.apps[detectedApp].cats )
{ {
show = true; if ( wappalyzer.showCats[wappalyzer.apps[detectedApp].cats[i]] )
{
show = true;
break; break;
}
} }
} }
@ -487,12 +421,33 @@ wappalyzer =
case wappalyzer.isBookmarklet: case wappalyzer.isBookmarklet:
var e = document.getElementById('wappalyzer-bookmarklet-apps'); var e = document.getElementById('wappalyzer-bookmarklet-apps');
e.innerHTML = if ( e )
( wappalyzer.appsDetected ? e.innerHTML : '' ) + {
'<a href="' + wappalyzer.homeUrl + 'stats/app/' + escape(wappalyzer.app[i]) + '" style="color: #332;">' + if ( !wappalyzer.appsDetected )
wappalyzer.app[i] + {
'</a><br/>' e.innerHTML = '';
; }
e.innerHTML +=
'<br/>' +
'<strong>' +
'<a href="' + wappalyzer.homeUrl + 'stats/app/' + escape(detectedApp) + '" style="color: #332;">' +
'<img src="' + wappalyzer.homeUrl + '_view/images/app_icons/' + escape(detectedApp) + '.ico" width="16" height="16" style="margin-right: 6px; vertical-align: middle;"/>' +
detectedApp +
'</a>' +
'</strong>'
;
if ( wappalyzer.apps[detectedApp].cats )
{
for ( i in wappalyzer.apps[detectedApp].cats )
{
e.innerHTML += '<br/><span style="margin-left: 22px;">' + wappalyzer.cats[wappalyzer.apps[detectedApp].cats[i]].name + '</span>';
}
e.innerHTML += '<br/>';
}
}
break; break;
case wappalyzer.isMobile: case wappalyzer.isMobile:
@ -545,7 +500,7 @@ wappalyzer =
e.appendChild(child); e.appendChild(child);
if ( !wappalyzer.isMobile ) if ( !wappalyzer.isMobile && typeof(wappalyzer.apps[detectedApp].custom) == 'undefined' )
{ {
child = document.createElement('label'); child = document.createElement('label');
@ -577,7 +532,7 @@ wappalyzer =
} }
} }
if ( doCount ) if ( doCount && typeof(wappalyzer.apps[detectedApp].custom) == 'undefined' )
{ {
wappalyzer.report(detectedApp, href); wappalyzer.report(detectedApp, href);
} }
@ -620,7 +575,7 @@ wappalyzer =
sendReport: function() sendReport: function()
// Anonymously send the name of the detected apps and domains to wappalyzer.com // Anonymously send the name of the detected apps and domains to wappalyzer.com
// You can turn this off in the options dialog // You can turn this off in the options dialog
// This is used to track the distibution of software, stats are publically available on the site // This is used to track the distribution of software, stats are publicly available on the site
{ {
wappalyzer.log('sendReport'); wappalyzer.log('sendReport');
@ -734,9 +689,11 @@ wappalyzer =
wappalyzer.openTab(wappalyzer.homeUrl + 'install/success/'); wappalyzer.openTab(wappalyzer.homeUrl + 'install/success/');
}, },
openTab: function(url) upgradeSuccess: function()
{ {
wappalyzer.browser.selectedTab = wappalyzer.browser.addTab(url); wappalyzer.browser.removeEventListener('load', wappalyzer.upgradeSuccess, false);
wappalyzer.openTab(wappalyzer.homeUrl + 'install/upgraded/');
}, },
bookmarklet: function() bookmarklet: function()
@ -757,6 +714,7 @@ wappalyzer =
'<div id="wappalyzer-bookmarklet" style="' + '<div id="wappalyzer-bookmarklet" style="' +
' color: #332;' + ' color: #332;' +
' font: 12px \'Trebuchet MS\';' + ' font: 12px \'Trebuchet MS\';' +
' line-height: 16px;' +
' position: fixed;' + ' position: fixed;' +
' text-align: right;' + ' text-align: right;' +
' right: 2em;' + ' right: 2em;' +
@ -764,22 +722,23 @@ wappalyzer =
' z-index: 9999999999;' + ' z-index: 9999999999;' +
' ">' + ' ">' +
' <div id="wappalyzer-container" style="' + ' <div id="wappalyzer-container" style="' +
' -moz-box-shadow: 0 0 5px rgba(0, 0, 0, .4);' +
' -moz-border-radius: 7px;' + ' -moz-border-radius: 7px;' +
' -webkit-border-radius: 7px;' + ' -webkit-border-radius: 7px;' +
' background: #FAFAFA;' + ' background: #FAFAFA;' +
' border: 7px solid #332;' + ' border: 7px solid #332;' +
' margin-bottom: .3em;' + ' margin-bottom: .3em;' +
' min-width: 15em;' + ' min-width: 15em;' +
' padding: 1em 2em;' + ' padding: 1em 1.5em 1.4em 1.5em;' +
' text-align: center;' + ' text-align: left;' +
' ">' + ' ">' +
' <div style="' + ' <div style="' +
' border-bottom: 1px solid #332;' + ' border-bottom: 1px solid #DDC;' +
' font-size: 13px;' + ' font-size: 13px;' +
' padding-bottom: 1em;' + ' padding-bottom: 1em;' +
' margin-bottom: 1em;' + ' text-align: center;' +
' "><strong>Wappalyzer</strong></div>' + ' "><strong>Wappalyzer</strong></div>' +
' <span id="wappalyzer-bookmarklet-apps"><em>No apps detected</em></span>' + ' <span id="wappalyzer-bookmarklet-apps"><br/><em>No apps detected</em></span>' +
' </div>' + ' </div>' +
' <span style="float: left;"><a href="http://wappalyzer.com" style="color: #332 !important;">home</a> | <a href="http://twitter.com/ElbertF" style="color: #332 !important;">follow me</a></span>' + ' <span style="float: left;"><a href="http://wappalyzer.com" style="color: #332 !important;">home</a> | <a href="http://twitter.com/ElbertF" style="color: #332 !important;">follow me</a></span>' +
' <span style="float: right;">click to close</span>' + ' <span style="float: right;">click to close</span>' +
@ -801,5 +760,3 @@ wappalyzer =
} }
} }
}; };
wappalyzer.bookmarklet();

@ -6,16 +6,19 @@
<overlay id="wappalyzer-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <overlay id="wappalyzer-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://wappalyzer/content/overlay.js"/> <script type="application/x-javascript" src="chrome://wappalyzer/content/overlay.js"/>
<script type="application/x-javascript" src="chrome://wappalyzer/content/evaluate.js"/>
<script type="application/x-javascript" src="chrome://wappalyzer/content/apps.js"/> <script type="application/x-javascript" src="chrome://wappalyzer/content/apps.js"/>
<stringbundleset id="stringbundleset"> <stringbundleset id="stringbundleset">
<stringbundle id="wappalyzer-strings" src="chrome://wappalyzer/locale/overlay.properties" /> <stringbundle id="wappalyzer-strings" src="chrome://wappalyzer/locale/overlay.properties"/>
</stringbundleset> </stringbundleset>
<hbox> <hbox>
<hbox <hbox
id="wappalyzer-container" id="wappalyzer-container"
context="wappalyzer-menu" context="wappalyzer-menu"
onmouseover="wappalyzer.showLabels(true);"
onmouseout="wappalyzer.showLabels(false);"
> >
<image <image
id="wappalyzer-icon" id="wappalyzer-icon"
@ -30,7 +33,7 @@
window.openDialog('chrome://wappalyzer/content/options.xul', 'wappalyzer-options', 'chrome, centerscreen, modal'); window.openDialog('chrome://wappalyzer/content/options.xul', 'wappalyzer-options', 'chrome, centerscreen, modal');
"/> "/>
<menuseparator/> <menuseparator/>
<menuitem label="&wappalyzer.donate;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl + 'donate');"/> <menuitem label="&wappalyzer.donate;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl + 'donate/');"/>
<menuitem label="&wappalyzer.feedback;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl + '?redirect=feedback');"/> <menuitem label="&wappalyzer.feedback;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl + '?redirect=feedback');"/>
<menuitem label="&wappalyzer.home;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl);"/> <menuitem label="&wappalyzer.home;" oncommand="wappalyzer.openTab(wappalyzer.homeUrl);"/>
<menuseparator/> <menuseparator/>
@ -45,8 +48,6 @@
id="urlbar-icons" id="urlbar-icons"
tooltiptext="&wappalyzer.title;" tooltiptext="&wappalyzer.title;"
onclick="if ( !wappalyzer.autoDetect ) wappalyzer.analyzePage(wappalyzer.browser.contentDocument.location.href, wappalyzer.browser.contentDocument.documentElement.innerHTML, false, true, true);" 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"> <statusbar id="status-bar">
@ -56,8 +57,6 @@
context="wappalyzer-menu" context="wappalyzer-menu"
tooltiptext="&wappalyzer.title;" tooltiptext="&wappalyzer.title;"
onclick="if ( !wappalyzer.autoDetect ) wappalyzer.analyzePage(wappalyzer.browser.contentDocument.location.href, wappalyzer.browser.contentDocument.documentElement.innerHTML, false, true, true);" 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> </statusbar>
</overlay> </overlay>

@ -1,7 +1,7 @@
<!ENTITY wappalyzer.title "Wappalyzer"> <!ENTITY wappalyzer.title "Wappalyzer">
<!ENTITY wappalyzer.feedback "Feedback"> <!ENTITY wappalyzer.feedback "Feedback">
<!ENTITY wappalyzer.options "Settings"> <!ENTITY wappalyzer.options "Settings">
<!ENTITY wappalyzer.custom "Custom script"> <!ENTITY wappalyzer.custom "Custom code">
<!ENTITY wappalyzer.enableTracking "Allow anonymous application data collection for research"> <!ENTITY wappalyzer.enableTracking "Allow anonymous application data collection for research">
<!ENTITY wappalyzer.general "General"> <!ENTITY wappalyzer.general "General">
<!ENTITY wappalyzer.location "Display icons in"> <!ENTITY wappalyzer.location "Display icons in">
@ -19,7 +19,9 @@
<!ENTITY wappalyzer.privacy "Privacy"> <!ENTITY wappalyzer.privacy "Privacy">
<!ENTITY wappalyzer.appStats "View application statistics"> <!ENTITY wappalyzer.appStats "View application statistics">
<!ENTITY wappalyzer.donate "Donate"> <!ENTITY wappalyzer.donate "Donate">
<!ENTITY wappalyzer.evaluate "Evaluate script"> <!ENTITY wappalyzer.evaluate "Evaluate code">
<!ENTITY wappalyzer.customBody "Add applications for personal use with JSON and regular expressions.">
<!ENTITY wappalyzer.customMoreInfo "Click here to learn more">
<!ENTITY wappalyzer.cat1 "CMS"> <!ENTITY wappalyzer.cat1 "CMS">
<!ENTITY wappalyzer.cat2 "Message boards"> <!ENTITY wappalyzer.cat2 "Message boards">

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

@ -1,9 +1,11 @@
pref('wappalyzer.autoDetect', true); pref('wappalyzer.autoDetect', true);
pref('wappalyzer.debug', false);
pref('wappalyzer.location', 0); pref('wappalyzer.location', 0);
pref('wappalyzer.enableTracking', true); pref('wappalyzer.enableTracking', true);
pref('wappalyzer.newInstall', true); pref('wappalyzer.newInstall', true);
pref('wappalyzer.showAppNames', 2); pref('wappalyzer.showAppNames', 2);
pref('wappalyzer.customApps', ''); pref('wappalyzer.customApps', '');
pref('wappalyzer.version', '');
pref('wappalyzer.cat1', true); pref('wappalyzer.cat1', true);
pref('wappalyzer.cat2', true); pref('wappalyzer.cat2', true);

@ -5,15 +5,15 @@
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <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"> <Description about="urn:mozilla:install-manifest">
<em:id>wappalyzer@crunchlabz.com</em:id> <em:id>wappalyzer@crunchlabz.com</em:id>
<em:version>1.11.3</em:version> <em:version>1.12.4</em:version>
<em:type>2</em:type> <em:type>2</em:type>
<em:targetApplication> <em:targetApplication>
<!-- Firefox --> <!-- Firefox -->
<Description> <Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3.0</em:minVersion> <em:minVersion>3.5</em:minVersion>
<em:maxVersion>4.0b8pre</em:maxVersion> <em:maxVersion>4.0.*</em:maxVersion>
</Description> </Description>
</em:targetApplication> </em:targetApplication>