module WappalyzerRb CATEGORIES = [ nil, 'cms', 'message-boards', 'database-managers', 'documentation-tools', 'widgets', 'web-shops', 'photo-galleries', 'wikis', 'hosting-panels', 'analytics', 'blogs', 'javascript-frameworks', 'issue-trackers', 'video-players', 'comment-systems', 'captchas', 'font-scripts', 'web-frameworks', 'miscellaneous', 'editors', 'lms', 'web-servers', 'cache-tools', 'rich-text editors', 'javascript-graphics', 'mobile-frameworks', 'programming-languages', 'operating-systems', 'search-engines' ] APPS = { '1und1' => { cats: [ 6 ], url: /\/shop\/catalog\/browse\?sessid\=/ }, '1C-Bitrix' => { cats: [ 1 ], html: /]+components\/bitrix/i, script: /1c\-bitrix/i }, '2z Project' => { cats: [ 1 ], meta: { 'generator' => /2z project/i } }, 'AddThis' => { cats: [ 5 ], script: /addthis\.com\/js/, env: /^addthis$/ }, 'Adobe GoLive' => { cats: [ 20 ], meta: { 'generator' => /Adobe GoLive/i } }, 'Advanced Web Stats' => { cats: [ 10 ], html: /aws.src = [^<]+caphyon\-analytics/i }, 'Ametys' => { cats: [ 1 ], meta: { 'generator' => /(Ametys|Anyware Technologies)/i }, script: /STools.js/ }, 'Amiro.CMS' => { cats: [ 1 ], meta: { 'generator' => /Amiro/i } }, 'AOLserver' => { cats: [ 22 ], headers: { 'Server' => /AOLserver/i } }, 'Apache' => { cats: [ 22 ], headers: { 'Server' => /(Apache($|[^-])|HTTPD)/i } }, 'Apache Tomcat' => { cats: [ 22 ], headers: { 'Server' => /Apache-Coyote/i } }, 'Apache Traffic Server' => { cats: [ 22 ], headers: { 'Server' => /YTS/i } }, 'Arc Forum' => { cats: [ 2 ], html: /ping\.src = node\.href;/ }, 'ATG Web Commerce' => { cats: [ 6 ], headers: { 'X-ATG-Version' => /ATG/i }, html: /<[^>]+_DARGS/ }, 'Atlassian Confluence' => { cats: [ 8 ], html: /Powered by { cats: [ 13 ], env: /^jira$/i, html: /Powered by { cats: [ 12 ], env: /^AUI$/ }, 'AWStats' => { cats: [ 10 ], meta: { 'generator' => /AWStats/i } }, 'Banshee' => { cats: [ 1, 18 ], html: /Built upon the ]+banshee-php\.org/i }, 'Backbone.js' => { cats: [ 12 ], script: /backbone.*\.js/, env: /^Backbone$/ }, 'BIGACE' => { cats: [ 1 ], meta: { 'generator' => /BIGACE/ }, html: /Powered by ]+BIGACE|/ }, 'CakePHP' => { cats: [ 18 ], headers: { 'set-cookie' => /cakephp=/ }, meta: { 'application-name' => /CakePHP/ } }, 'Cargo' => { cats: [ 1 ], script: /\/cargo\./i, html: /]+Cargo feed/ }, 'CentOS' => { cats: [ 28 ], headers: { 'Server' => /CentOS/i, 'X-Powered-By' => /CentOS/i } }, 'Chameleon' => { cats: [ 1 ], meta: { 'generator' => /chameleon\-cms/i } }, 'chartbeat' => { cats: [ 10 ], html: /function loadChartbeat\(\) {/i }, 'Chamilo' => { cats: [ 21 ], meta: { 'generator' => /Chamilo/i }, headers: { 'X-Powered-By' => /Chamilo/ } }, 'Cherokee' => { cats: [ 22 ], headers: { 'Server' => /Cherokee/i } }, 'CKEditor' => { cats: [ 24 ], env: /^CKEDITOR$/ }, 'ClickHeat' => { cats: [ 10 ], script: /clickheat.*\.js/i, env: /^clickHeatBrowser$/ }, 'ClickTale' => { cats: [ 10 ], html: /if\(typeof ClickTale(Tag)*==("|')function("|')\)/, env: /^ClickTale/i }, 'Clicky' => { cats: [ 10 ], script: /static\.getclicky\.com/, env: /^clicky$/ }, 'CMS Made Simple' => { cats: [ 1 ], meta: { 'generator' => /CMS Made Simple/i } }, 'CO2Stats' => { cats: [ 10 ], html: /src=("|')http:\/\/www\.co2stats\.com\/propres\.php/ }, 'CodeIgniter' => { cats: [ 18 ], headers: { 'Set-Cookie' => /(exp_last_activity|exp_tracker|ci_session)/ }, implies: [ 'PHP' ] }, 'Commerce Server' => { cats: [ 6 ], headers: { 'COMMERCE-SERVER-SOFTWARE' => /.+/ } }, 'comScore' => { cats: [ 10 ], html: /]* (id=("|')comscore("|')|scr=[^>]+comscore)/, env: /^_?COMSCORE$/i }, 'Concrete5' => { cats: [ 1 ], meta: { 'generator' => /concrete5/i } }, 'Contao' => { cats: [ 1, 6 ], html: /(/, env: /^_?owa_/i }, 'Optimizely' => { cats: [ 10 ], env: /^optimizely/ }, 'Oracle Recommendations On Demand' => { cats: [ 10 ], script: /atgsvcs.+atgsvcs\.js/ }, 'osCommerce' => { cats: [ 6 ], html: /]*osCsid/i }, 'osCSS' => { cats: [ 6 ], html: / { cats: [ 6 ], html: /