From 591bf33b4b497107ffc9657a952050528fcbdf1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20A=2E=20Sachs?= Date: Sun, 16 Mar 2014 19:37:05 -0300 Subject: [PATCH 1/6] Added Dart (JavaScript Framework) detection --- share/apps.json | 7 +++++++ share/images/icons/Dart.png | Bin 0 -> 787 bytes 2 files changed, 7 insertions(+) create mode 100644 share/images/icons/Dart.png diff --git a/share/apps.json b/share/apps.json index 45fd46e24..942868493 100644 --- a/share/apps.json +++ b/share/apps.json @@ -638,6 +638,13 @@ "meta": { "generator": "Danneo CMS ([\\d.]+)\\;version:\\1" }, "implies": [ "Apache", "PHP" ] }, + "Dart": { + "website": "dartlang.org", + "cats": [ 12 ], + "script": "dart(?:\\.min)?\\.js|interop(?:\\.min)?\\.js", + "env": "^DartObject$|^DartProxy$", + "html": "(?:]+(?:src=\"(?:.*\\.dart)\"|type=\"application/dart\"))" + }, "Darwin": { "website": "opensource.apple.com", "cats": [ 28 ], diff --git a/share/images/icons/Dart.png b/share/images/icons/Dart.png new file mode 100644 index 0000000000000000000000000000000000000000..0c4401a0f6a3ea7457ce4f4b7b1b7b7c766a9e2c GIT binary patch literal 787 zcmbVK{V&u37=LbFvM<+cZd}TClo4fp=Xstz&*$?zKRkO1yczC9#25hpq6eMk zi)V`3bu{out1s*aARPDh@^`~a;4MM2;smn~kqAKCOvgHL;7!k7lq_piv*PBzk&nyN z;4MPq29ZCfmf;lMNl}n%Wa=^!gN6|pVS{KL;*?M#y*tOn!U3fTi7Z}jg|fQSc=<&c2F zD=}1l2RfL7bdn_Z-BzRyg^twT+q; zy3eQ_pG(?5RQ-n?m2T%byIz@ym80X)oGN%(QUlsvp_tct#uQ6d-l% z)rPbmDwRi``7aBDtJ4R&j%oL1gSHn)DKXX0#y;{(H@BCA$Q-&;vDtUKv#Zw_uGZgL z_g=5fg`vFVnw3NGYFO__)A?1RN9i5J5Upiu^@m&wDroL?`o=>4PX_;oHG?j zn&M5V(8J;&J$LrAxDO9WR^D&zmn;!o2N$}4qD=|ZO?J5qJq}8 zSk~V9XOee5Q%_bs$X{;ex?=+3gd*^Q-NF` P^>=%?F=#EWVcCBG3@(1E literal 0 HcmV?d00001 From 99b930993dcafaee1286a58fd4c1745422abdb20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20A=2E=20Sachs?= Date: Sun, 16 Mar 2014 20:33:11 -0300 Subject: [PATCH 2/6] Added Dart (Programming Language) detection --- share/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/apps.json b/share/apps.json index 942868493..adfd90491 100644 --- a/share/apps.json +++ b/share/apps.json @@ -640,7 +640,7 @@ }, "Dart": { "website": "dartlang.org", - "cats": [ 12 ], + "cats": [ 27 ], "script": "dart(?:\\.min)?\\.js|interop(?:\\.min)?\\.js", "env": "^DartObject$|^DartProxy$", "html": "(?:]+(?:src=\"(?:.*\\.dart)\"|type=\"application/dart\"))" From e4a10fc8a202a86fa470edd800e4e4f435ab9e95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20A=2E=20Sachs?= Date: Sun, 16 Mar 2014 22:02:28 -0300 Subject: [PATCH 3/6] Added React (Facebook's MVC Framework) detection with version number, Added Vue.js (JavaScript Framework) detection with version number --- share/apps.json | 12 ++++++++++++ share/images/icons/React.png | Bin 0 -> 566 bytes share/images/icons/Vue.js.png | Bin 0 -> 601 bytes 3 files changed, 12 insertions(+) create mode 100644 share/images/icons/React.png create mode 100644 share/images/icons/Vue.js.png diff --git a/share/apps.json b/share/apps.json index adfd90491..0d79111fe 100644 --- a/share/apps.json +++ b/share/apps.json @@ -2294,6 +2294,12 @@ "cats": [ 1 ], "meta": { "generator": "^(?:RCMS|ReallyCMS)" } }, + "React": { + "website": "facebook.github.io/react", + "cats": [ 12 ], + "script": [ "react(?:\\-with\\-addons)?(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+)/react(\\.min)?\\.js\\;version:\\1", "react.*\\.js" ], + "env": "^React$" + }, "reCAPTCHA": { "website": "recaptcha.net", "cats": [ 16 ], @@ -2886,6 +2892,12 @@ "html": "]+>Powered By VP-ASP Shopping Cart", "implies": "Microsoft ASP.NET" }, + "Vue.js": { + "website": "vuejs.org", + "cats": [ 12 ], + "script": [ "vue(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+)/vue(\\.min)?\\.js\\;version:\\1", "vue.*\\.js" ], + "env": "^Vue$" + }, "W3Counter": { "website": "www.w3counter.com", "cats": [ 10 ], diff --git a/share/images/icons/React.png b/share/images/icons/React.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb3807353340ce8a2a0c09f8b83feff07c9eb09 GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyQ2{<7u0T5R)^A!M0maX!fu_rr z1o;Is@H{@H8M$l0LD5ZRt7aIyzTj!~u}2~CPgCYKR;THg@5D1OFy?u>IEGl9UOV|^ zUbBHf3olzuf-{qf!;A0#)q^#r&AOlD zwy+lq=Im)P=xP^`N@sG9W%)X1npke7`mYB{4$n&))}Ohu*P(H@=#|navAFc2TG1O@ zYLixbU3A-Lr`Ke@S2mmL)y~&1>t)R491h)Md$WM?N`cwNWXtOsaPKl0YmWI)y z-ExADD)ws&Miy99C0R1_3vX6%W{*=ox;FGR(u1Ez>g1qf)JMa?Jb_%tDfYvZkJKj@z0{z2Zz zT^aFg3&@o+B|(0{4Eu9c-5Ml0Eh4{On*3(XJ!Rwbj~6r@%~|jI=4x$gH_)4mUY;(F zAr`0CPP#s=*?`Aos$bQny$LY~uJ9_p{a>G}Dt*E;qT=QqacSOZ>3ux^pPzJXaxpyi zL|fvXYI2M!qh_|mrA_{uXBZzeTjF1E_^?iw$4sU@4<4}|7g+s?cLIOs|6}6!ofo>Z z`*bHPH;LQCdV}Lw$sX=+A@a;di(>19CKdl={m{F5LTlj$hQmF2ABB%@Jo@~ah0Sk0 zL&ihDdX!`z1+HZ^d-VH?mCnrBV(hKytq1J14Eg3SObYnb6R6T2`OjIDJxfe2t1(be zP>wlk!>ZISuOI1MtFEpqt61tk^-8ix=)9s|QU`fopHkPCJ@-KDxZBx70k;)-9`?=q zSlM~?pvjEGw#m|_m&-VqGYpLEx|P1a5ty~3LwsqR@&t_J<*k2Q0whQlTfT7Re>FVdQ&MBb@ E0H7BCX8-^I literal 0 HcmV?d00001 From 38b82b2d415b44929d0146ba6416ed017cf7fb24 Mon Sep 17 00:00:00 2001 From: q-- Date: Mon, 17 Mar 2014 11:10:22 +0100 Subject: [PATCH 4/6] Use non-capturing groups where appropriate Found using this regular expression: /^[^\n]+?version:\\\\[^1][^\n]+/gmi --- share/apps.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/share/apps.json b/share/apps.json index 2c0dbfa2c..5f66ed590 100644 --- a/share/apps.json +++ b/share/apps.json @@ -212,7 +212,7 @@ "ATEN": { "website": "www.aten.com", "cats": [ 22 ], - "headers": { "Server": "ATEN HTTP Server(\\(V?([\\d\\.]+)\\))?\\;version:\\2" } + "headers": { "Server": "ATEN HTTP Server(?:\\(V?(?:[\\d\\.]+)\\))?\\;version:\\1" } }, "ATG Web Commerce": { "website": "oracle.com/us/products/applications/web-commerce/atg", @@ -795,7 +795,7 @@ "eHTTP": { "website": "???", "cats": [ 22 ], - "headers": { "Server": "\\beHTTP( v?([\\d\\.]+))?\\;version:\\2" }, + "headers": { "Server": "\\beHTTP(?: v?([\\d\\.]+))?\\;version:\\1" }, "implies": [ "HP ProCurve"] }, "ELOG": { @@ -866,7 +866,7 @@ "EWS-NIC4": { "website": "dell.com", "cats": [ 22 ], - "headers": { "Server": "EWS-NIC4(\\/([\\d\\.a-z]+))?\\;version:\\2" }, + "headers": { "Server": "EWS-NIC4(?:\\/([\\d\\.a-z]+))?\\;version:\\1" }, "implies": "Dell" }, "Exhibit": { @@ -1128,7 +1128,7 @@ "Highstock": { "website": "highcharts.com/products/highstock", "cats": [ 25 ], - "script": "highstock(\\-|\\.)?([\\d\\.]*\\d).*\\.js\\;version:\\2" + "script": "highstock(?:\\-|\\.)?([\\d\\.]*\\d).*\\.js\\;version:\\1" }, "Hogan.js": { "website": "twitter.github.com/hogan.js", @@ -1297,7 +1297,7 @@ "Jetty": { "website": "www.eclipse.org/jetty", "cats": [ 22 ], - "headers": { "Server": "Jetty(\\(([\\d\\.]+\\d+))?\\;version:\\2" }, + "headers": { "Server": "Jetty(?:\\(([\\d\\.]+\\d+))?\\;version:\\1" }, "implies": "Java" }, "Jirafe": { @@ -1456,7 +1456,7 @@ "LabVIEW": { "website": "ni.com/labview", "cats": [ 22 ], - "headers": { "Server": "LabVIEW(/([\\d\\.]+))?\\;version:\\2" } + "headers": { "Server": "LabVIEW(?:/([\\d\\.]+))?\\;version:\\1" } }, "Laravel": { "website": "laravel.com", @@ -1479,7 +1479,7 @@ "libwww-perl-daemon": { "website": "search.cpan.org/~gaas/HTTP-Daemon-6.01/lib/HTTP/Daemon.pm", "cats": [ 22 ], - "headers": { "Server": "libwww-perl-daemon(/([\\d\\.]+))?\\;version:\\2" }, + "headers": { "Server": "libwww-perl-daemon(?:/([\\d\\.]+))?\\;version:\\1" }, "implies": "Perl" }, "Liferay": { @@ -1547,7 +1547,7 @@ "Logitech Media Server": { "website": "www.mysqueezebox.com", "cats": [ 22, 38 ], - "headers": { "Server": "Logitech Media Server( \\(([\\d\\.]+))?\\;version:\\2" } + "headers": { "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" } }, "Lotus Domino": { "website": "www-01.ibm.com/software/lotus/products/domino", @@ -1678,7 +1678,7 @@ "mod_auth_pam": { "website": "pam.sourceforge.net/mod_auth_pam", "cats": [ 33 ], - "headers": { "Server": "mod_auth_pam(/([\\d\\.]+))?\\;version:\\2" }, + "headers": { "Server": "mod_auth_pam(?:/([\\d\\.]+))?\\;version:\\1" }, "implies": "Apache" }, "mod_fastcgi": { @@ -1690,13 +1690,13 @@ "mod_jk": { "website": "tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html", "cats": [ 33 ], - "headers": { "Server": "mod_jk(/([\\d\\.]+))?\\;version:\\2" }, + "headers": { "Server": "mod_jk(?:/([\\d\\.]+))?\\;version:\\1" }, "implies": [ "Apache Tomcat", "Apache" ] }, "mod_perl": { "website": "perl.apache.org", "cats": [ 33 ], - "headers": { "Server": "mod_perl(/([\\d\\.]+))?\\;version:\\2" }, + "headers": { "Server": "mod_perl(?:/([\\d\\.]+))?\\;version:\\1" }, "implies": [ "Perl", "Apache" ] }, "mod_python": { @@ -2534,7 +2534,7 @@ "website": "splunk.com", "cats": [ 19 ], "meta": { "author": "Splunk Inc\\;confidence:50" }, - "html": "

© [-0-9]+ Splunk Inc.( Splunk ([\\d\\.]+( build [\\d\\.]*\\d)?))?[^<]*

\\;version:\\2" + "html": "

© [-0-9]+ Splunk Inc.(?: Splunk ([\\d\\.]+( build [\\d\\.]*\\d)?))?[^<]*

\\;version:\\1" }, "Splunkd": { "website": "splunk.com", From 26b352871ad62bba9f27cbb42ea85d1673f0f721 Mon Sep 17 00:00:00 2001 From: q-- Date: Wed, 19 Mar 2014 10:46:29 +0100 Subject: [PATCH 5/6] Detect Umbraco version --- share/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/apps.json b/share/apps.json index 92657ea4b..b271eca02 100644 --- a/share/apps.json +++ b/share/apps.json @@ -2794,7 +2794,7 @@ "website": "umbraco.com", "cats": [ 1 ], "meta": { "generator": "umbraco" }, - "headers": { "X-Umbraco-Version": ".+" }, + "headers": { "X-Umbraco-Version": "(.*)\\;version:\\1" }, "html": "powered by ]+umbraco", "implies": "Microsoft ASP.NET" }, From e22f9489c432c7e27246baf51ef01864503ded16 Mon Sep 17 00:00:00 2001 From: q-- Date: Wed, 19 Mar 2014 11:01:12 +0100 Subject: [PATCH 6/6] Added missing slashes before ;version: Found with RegEx: /[^\\];version/g --- share/apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/apps.json b/share/apps.json index 92657ea4b..17f9bfdfe 100644 --- a/share/apps.json +++ b/share/apps.json @@ -60,7 +60,7 @@ "2z Project": { "website": "2zproject-cms.ru", "cats": [ 1 ], - "meta": { "generator": "2z project ([\\d.]+);version:\\1" } + "meta": { "generator": "2z project ([\\d.]+)\\;version:\\1" } }, "3dCart": { "website": "www.3dcart.com", @@ -3010,7 +3010,7 @@ "env": "woocommerce", "html": "