@ -91,10 +91,12 @@
'DHTMLX' : { cats : { 1 : 12 } , script : /dhtmlxcommon\.js/ } ,
'DirectAdmin' : { cats : { 1 : 9 } , html : /<a[^>]+>DirectAdmin<\/a> Web Control Panel/i } ,
'Disqus' : { cats : { 1 : 15 } , script : /disqus_url/ , html : /<div[^>]+id=("|')disqus_thread("|')/ , env : /^DISQUS/i } ,
'Django' : { cats : { 1 : 18 } , script : /media\/cms\/js\/csrf\.js/ , html : /(Powered by <a[^>]+>Django|<input[^>]name=.csrfmiddlewaretoken)/i , headers : { 'Set-Cookie' : /^django/ } } ,
'Django CMS' : { cats : { 1 : 1 } , script : /media\/cms\/js\/csrf\.js/ , headers : { 'Set-Cookie' : /django/ } } ,
'dojo' : { cats : { 1 : 12 } , script : /dojo(\.xd)?\.js/ , env : /^dojo$/ } ,
'Dokeos' : { cats : { 1 : 21 } , meta : { 'generator' : /Dokeos/i } , html : /Portal <a[^>]+>Dokeos|@import "[^"]+dokeos_blue/i , headers : { 'X-Powered-By' : /Dokeos/ } } ,
'DokuWiki' : { cats : { 1 : 8 } , meta : { 'generator' : /DokuWiki/i } } ,
'DotNetNuke' : { cats : { 1 : 1 } , meta : { 'generator' : /DotNetNuke/i } , html : / <!\-\- by DotNetNuke Corporation/i } ,
'DotNetNuke' : { cats : { 1 : 1 } , meta : { 'generator' : /DotNetNuke/i } , html : / ( <!\-\- by DotNetNuke Corporation|<link[^>]+\/portals\/_default\/[^>]+\.css)/i, env : /^(DDN|DotNetNuke) /i } ,
'DreamWeaver' : { cats : { 1 : 20 } , html : /(<!\-\-[^>]*(InstanceBeginEditable|Dreamweaver[^>]+target|DWLayoutDefaultTable)|function MM_preloadImages\(\) {)/ } ,
'Drupal' : { cats : { 1 : 1 } , script : /drupal\.js/ , html : /(jQuery\.extend\(Drupal\.settings, \{|Drupal\.extend\(\{ settings: \{|<link[^>]+sites\/(default|all)\/themes\/|<style[^>]+sites\/(default|all)\/(themes|modules)\/)/i , headers : { 'X-Drupal-Cache' : /.*/ , 'X-Generator' : /Drupal/ , 'Expires' : /19 Nov 1978/ } , env : /^Drupal$/ } ,
'Drupal Commerce' : { cats : { 1 : 6 } , html : /id\=\"block\-commerce\-cart\-cart|class\=\"commerce\-product\-field/i } ,
@ -193,7 +195,7 @@
'PHP' : { cats : { 1 : 27 } , headers : { 'Server' : /php/i , 'X-Powered-By' : /php/i , 'Set-Cookie' : /PHPSESSID/ } , url : /\.php$/ } ,
'PHP-Fusion' : { cats : { 1 : 1 } , html : /Powered by <a href=("|')[^>]+php-fusion/i } ,
'PHP-Nuke' : { cats : { 1 : 2 } , meta : { 'generator' : /PHP-Nuke/i } , html : /<[^>]+Powered by PHP\-Nuke/i } ,
'phpBB' : { cats : { 1 : 2 } , meta : { 'copyright' : /phpBB Group/ } , html : /(Powered by <a[^>]+phpbb|<a[^>]+phpbb[^>]+class=.copyright|\tphpBB style name|<[^>]+styles\/(sub|pro)silver\/theme)/i , env : /^(style_cookie_settings|phpbb_)/ , headers : { 'Set-Cookie' : /^phpbb/ } ,
'phpBB' : { cats : { 1 : 2 } , meta : { 'copyright' : /phpBB Group/ } , html : /(Powered by <a[^>]+phpbb|<a[^>]+phpbb[^>]+class=.copyright|\tphpBB style name|<[^>]+styles\/(sub|pro)silver\/theme)/i , env : /^(style_cookie_settings|phpbb_)/ , headers : { 'Set-Cookie' : /^phpbb/ } } ,
'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 } ,
@ -206,6 +208,7 @@
'Prototype' : { cats : { 1 : 12 } , script : /(prototype|protoaculous)\.js/ , env : /^Prototype$/ } ,
'Protovis' : { cats : { 1 : 25 } , script : /protovis.*\.js/ , env : /^protovis$/ } ,
'punBB' : { cats : { 1 : 2 } , html : /Powered by <a href=("|')[^>]+punbb/i } ,
'Python' : { cats : { 1 : 27 } , script : /media\/cms\/js\/csrf\.js/ , html : /(Powered by <a[^>]+>Django|<input[^>]name=.csrfmiddlewaretoken)/i , headers : { 'Set-Cookie' : /django/ } } ,
'Quantcast' : { cats : { 1 : 10 } , script : /edge\.quantserve\.com\/quant\.js/ , env : /^quantserve$/ } ,
'Quick.Cart' : { cats : { 1 : 6 } , html : /<a href="[^>]+opensolution\.org\/">Powered by/i } ,
'Red Hat' : { cats : { 1 : 28 } , headers : { 'Server' : /Red Hat/i , 'X-Powered-By' : /Red Hat/i } } ,
@ -240,7 +243,6 @@
'swift.engine' : { cats : { 1 : 1 } , headers : { 'X-Powered-By' : /swift\.engine/ } } ,
'Swiftlet' : { cats : { 1 : 1 , 2 : 18 } , meta : { 'generator' : /Swiftlet/i } , html : /Powered by <a href=("|')[^>]+Swiftlet/i , headers : { 'X-Swiftlet-Cache' : /.*/ , 'X-Powered-By' : /Swiftlet/ } } ,
'Textpattern CMS' : { cats : { 1 : 1 } , meta : { 'generator' : /Textpattern/i } } ,
'Timeline' : { cats : { 1 : 25 } , script : /timeline.*\.js/ , env : /^Timeline$/ } ,
'Timeplot' : { cats : { 1 : 25 } , script : /timeplot.*\.js/ , env : /^Timeplot$/ } ,
'TinyMCE' : { cats : { 1 : 24 } , env : /^tinyMCE$/ } ,
'TomatoCart' : { cats : { 1 : 6 } , meta : { 'generator' : /TomatoCart/i } } ,
@ -284,7 +286,7 @@
'WordPress' : { cats : { 1 : 1 , 2 : 11 } , meta : { 'generator' : /WordPress/i } , html : /<link rel=("|')stylesheet("|') [^>]+wp-content/i , env : /^wp_username$/ } ,
'xajax' : { cats : { 1 : 12 } , script : /xajax_core.*\.js/i } ,
'XenForo' : { cats : { 1 : 2 } , html : /(jQuery\.extend\(true, XenForo|Forum software by XenForo™|<!\-\-XF:branding)/ } ,
'XiTi' : { cats : { 1 : 10 } , html : /<[^>]+src=("|')[^>]+xiti.com\/hit.xiti/i } ,
'XiTi' : { cats : { 1 : 10 } , html : /<[^>]+src=("|')[^>]+xiti.com\/hit.xiti/i , env : /^Xt_/ } ,
'XMB' : { cats : { 1 : 2 } , html : /<!-- Powered by XMB/i } ,
'xui' : { cats : { 1 : 26 , 2 : 12 } , script : /[^a-zA-Z]xui.*\.js/i , env : /^xui$/ } ,
'XOOPS' : { cats : { 1 : 1 } , meta : { 'generator' : /XOOPS/i } } ,