From e38e32af10f4e54fa01012143c293766962bc183 Mon Sep 17 00:00:00 2001 From: Ward Oosterlijnck Date: Thu, 6 Apr 2017 22:46:55 +1000 Subject: [PATCH 1/6] Add clipboard.js --- src/apps.json | 9 +++++++++ src/icons/Clipboard.js.svg | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 src/icons/Clipboard.js.svg diff --git a/src/apps.json b/src/apps.json index 105484c2a..30ab43781 100755 --- a/src/apps.json +++ b/src/apps.json @@ -1431,6 +1431,15 @@ "icon": "Clientexec.png", "website": "http://www.clientexec.com" }, + "Clipboard.js": { + "cats": [ + "19" + ], + "env": "^Clipboard$", + "icon": "Clipboard.js.svg", + "script": "clipboard(?:\\.min)?\\.js", + "website": "https://clipboardjs.com/" + }, "CloudCart": { "cats": [ "6" diff --git a/src/icons/Clipboard.js.svg b/src/icons/Clipboard.js.svg new file mode 100644 index 000000000..007a950a7 --- /dev/null +++ b/src/icons/Clipboard.js.svg @@ -0,0 +1,3 @@ + + + From 7641fde55c0a47b9f4f7c29e7d8ddc6a6c9f2313 Mon Sep 17 00:00:00 2001 From: Ward Oosterlijnck Date: Thu, 6 Apr 2017 23:05:45 +1000 Subject: [PATCH 2/6] Add highlight.js --- src/apps.json | 11 +++++++++++ src/icons/Highlight.js.png | Bin 0 -> 772 bytes 2 files changed, 11 insertions(+) create mode 100644 src/icons/Highlight.js.png diff --git a/src/apps.json b/src/apps.json index 30ab43781..1803afc68 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3397,6 +3397,16 @@ "script": "highcharts.*\\.js", "website": "http://highcharts.com" }, + "Highlight.js": { + "cats": [ + "19" + ], + "env": "^hljs$", + "html": "]*href=\"[^\"]+highlight(?:\\.min)?\\.js[^\"]+.css", + "icon": "Highlight.js.png", + "script": "highlight(?:\\.min)?\\.js", + "website": "https://highlightjs.org/" + }, "Highstock": { "cats": [ "25" @@ -6608,6 +6618,7 @@ ], "env": "^Reveal$", "icon": "Reveal.js.png", + "implies": "Highlight.js", "script": "reveal(?:\\.min)?\\.js", "website": "http://lab.hakim.se/reveal-js" }, diff --git a/src/icons/Highlight.js.png b/src/icons/Highlight.js.png new file mode 100644 index 0000000000000000000000000000000000000000..525fafdb4910726040ba4621faeed07133b11401 GIT binary patch literal 772 zcmV+f1N;1mP)D-#m3RPyVAF}(6F$zm6f}cmAQ_Oz>SWw zc6gn3ccy4+lxAm)Uto(`TbfEtcRfFZG&gc7ENU1WXB8QH5f@<*7ElNcQv(R;N^pzPJX%ii<;uK^iIg830{fcJ-Vbo9v95qj-O zT()QJ29BO5Wkd6HU!jK9O4?_{E{#qGlDqS>BlAqoR#!+?h!5}{D+kml)VvLVsiw?= zJ}4wcac|4c{+-g!!G`a(2LjyAaD9pEbcWx|0_SIhtX zrEdVmX(l_M{Hp-4%2FUlV9^XgrSP?eyP$B3hhf3H2X7&_2F2Z0)FiqC`XhIGAbJFg zbO_-4%qihr5Rw#(!9WT=CM)A*fQnH(3)~l`Jmmlu;np0KHpwG!4;7Ls%q718{!n*^ z^)D0C6Yyy}1zKw|pZ^&Kllg_{c&t>599S&^z~@|OwMI%QYwO!o+|-*Upchx`dB{a; z%X Date: Sun, 9 Apr 2017 22:08:01 +1000 Subject: [PATCH 3/6] fetch upstream --- docker/Dockerfile | 16 +++- src/apps.json | 70 ++++++++++++------ src/drivers/phantomjs/driver.js | 39 +++++----- .../webextension/_locales/pl/messages.json | 61 +++++++++++++++ src/icons/Homeland.png | Bin 0 -> 19700 bytes src/icons/Netlify.svg | 9 +++ src/icons/Scholica.svg | 24 ++++++ src/icons/spin.js.png | Bin 1155 -> 0 bytes src/icons/typecho.svg | 10 +++ src/icons/vis.js.png | Bin 698 -> 0 bytes 10 files changed, 182 insertions(+), 47 deletions(-) create mode 100644 src/drivers/webextension/_locales/pl/messages.json create mode 100644 src/icons/Homeland.png create mode 100644 src/icons/Netlify.svg create mode 100644 src/icons/Scholica.svg delete mode 100644 src/icons/spin.js.png create mode 100644 src/icons/typecho.svg delete mode 100644 src/icons/vis.js.png diff --git a/docker/Dockerfile b/docker/Dockerfile index ec435c0bd..c4e7806c0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -8,11 +8,19 @@ ENV WAPPALYZER_ROOT /home/wappalyzer/synced ENV WAPPALYZER_NODE_PATH /home/wappalyzer/node # Install packages +RUN sed -i 's/^deb-src\ /\#deb-src\ /g' /etc/apt/sources.list RUN sed -i 's/archive\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list -RUN apt-get update && apt-get install -y sudo curl -RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - -RUN apt-get install -y nodejs bzip2 zip libfreetype6 libfontconfig rsync -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +RUN sed -i 's/security\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list +RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && \ + apt-get install -y \ + nodejs \ + bzip2 \ + zip \ + libfreetype6 \ + libfontconfig \ + rsync && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Add user diff --git a/src/apps.json b/src/apps.json index 1803afc68..bcf666d2b 100755 --- a/src/apps.json +++ b/src/apps.json @@ -1733,7 +1733,7 @@ ], "env": "^d3$", "icon": "D3.png", - "script": "d3(?:\\. v\\d+)?(?:\\.min)?\\.js", + "script": "/d3(?:\\. v\\d+)?(?:\\.min)?\\.js", "website": "http://d3js.org" }, "DHTMLX": { @@ -3196,6 +3196,18 @@ }, "website": "http://www.greenvalley.nl/Public/Producten/Content_Management/CMS" }, + "Homeland": { + "cats": [ + "1", + "2" + ], + "headers": { + "Set-Cookie:": "_homeland_" + }, + "icon": "Homeland.png", + "implies": "Ruby on Rails", + "website": "https://gethomeland.com" + }, "HERE": { "cats": [ "35" @@ -5379,6 +5391,17 @@ "icon": "Nepso.png", "website": "http://nepso.com" }, + "Netlify": { + "cats": [ + "22", + "31" + ], + "headers": { + "Server": "Netlify" + }, + "icon": "Netlify.svg", + "website": "https://www.netlify.com/" + }, "Netmonitor": { "cats": [ "10" @@ -6253,6 +6276,10 @@ "meta": { "generator": "PrestaShop" }, + "headers": { + "Set-Cookie": "^PrestaShop", + "Powered-By": "^Prestashop$" + }, "website": "http://www.prestashop.com" }, "Project Wonderful": { @@ -6619,7 +6646,7 @@ "env": "^Reveal$", "icon": "Reveal.js.png", "implies": "Highlight.js", - "script": "reveal(?:\\.min)?\\.js", + "script": "(?:^|/)reveal(?:\\.min)?\\.js", "website": "http://lab.hakim.se/reveal-js" }, "Revel": { @@ -6973,6 +7000,16 @@ ], "website": "http://schneider-electric.com" }, + "Scholica": { + "cats": [ + "21" + ], + "headers": { + "X-Scholica-Version": "" + }, + "icon": "Scholica.svg", + "website": "http://scholica.com" + }, "Scientific Linux": { "cats": [ "28" @@ -7763,6 +7800,15 @@ "url": "/typo3/", "website": "http://www.typo3.org" }, + "Typecho": { + "cats": [ + "11" + ], + "icon": "typecho.svg", + "implies": "PHP", + "url": "/admin/login\\.php?referer=http%3A%2F%2F", + "website": "http://typecho.org/" + }, "Taiga": { "cats": [ "13" @@ -9959,16 +10005,6 @@ "script": "shine(?:\\.min)?\\.js", "website": "http://bigspaceship.github.io/shine.js/" }, - "spin.js": { - "cats": [ - "12", - "25" - ], - "env": "^Spinner$", - "icon": "spin.js.png", - "script": "spin(?:\\.min)?\\.js", - "website": "http://fgnass.github.io/spin.js/" - }, "swift.engine": { "cats": [ "1" @@ -10076,16 +10112,6 @@ "icon": "default.svg", "website": "http://www.viennacms.nl" }, - "vis.js": { - "cats": [ - "25" - ], - "env": "^vis$", - "html": "]+?href=\"[^\"]+vis(?:\\.min)?\\.css", - "icon": "vis.js.png", - "script": "vis(?:\\.min)?\\.js", - "website": "http://visjs.org" - }, "webEdition": { "cats": [ "1" diff --git a/src/drivers/phantomjs/driver.js b/src/drivers/phantomjs/driver.js index a99f2612d..83851390d 100644 --- a/src/drivers/phantomjs/driver.js +++ b/src/drivers/phantomjs/driver.js @@ -73,31 +73,28 @@ displayApps: function() { var app, cats, - apps = [], - count = wappalyzer.detected[url] ? Object.keys(wappalyzer.detected[url]).length : 0; + apps = []; wappalyzer.log('driver.displayApps'); - if ( count ) { - for ( app in wappalyzer.detected[url] ) { - cats = []; - - wappalyzer.apps[app].cats.forEach(function(cat) { - cats.push(wappalyzer.categories[cat].name); - }); - - apps.push({ - name: app, - confidence: wappalyzer.detected[url][app].confidenceTotal.toString(), - version: wappalyzer.detected[url][app].version, - icon: wappalyzer.apps[app].icon, - website: wappalyzer.apps[app].website, - categories: cats - }); - } - - wappalyzer.driver.sendResponse(apps); + for ( app in wappalyzer.detected[url] ) { + cats = []; + + wappalyzer.apps[app].cats.forEach(function(cat) { + cats.push(wappalyzer.categories[cat].name); + }); + + apps.push({ + name: app, + confidence: wappalyzer.detected[url][app].confidenceTotal.toString(), + version: wappalyzer.detected[url][app].version, + icon: wappalyzer.apps[app].icon, + website: wappalyzer.apps[app].website, + categories: cats + }); } + + wappalyzer.driver.sendResponse(apps); }, /** diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json new file mode 100644 index 000000000..84fe6cc73 --- /dev/null +++ b/src/drivers/webextension/_locales/pl/messages.json @@ -0,0 +1,61 @@ +{ + "github": { "message": "Fork Wappalyzer on GitHub!" }, + "twitter": { "message": "Obserwuj Wappalyzer na Twitterze" }, + "website": { "message": "Przejdź do wappalyzer.com" }, + "options": { "message": "Opcje" }, + "optionsSave": { "message": "Zapisz opcje" }, + "optionsSaved": { "message": "Zapisano" }, + "optionUpgradeMessage": { "message": "Powiadamiaj mnie o aktualizacjach" }, + "optionTracking": { "message": "Przesyłaj anonimowe statystyki aplikacji wykrytych przez Wappalyzer do twórców" }, + "nothingToDo": { "message": "Nic tu nie ma." }, + "noAppsDetected": { "message": "Nie wykryto żadnych aplikacji." }, + "categoryName1": { "message": "CMS" }, + "categoryName2": { "message": "Forum" }, + "categoryName3": { "message": "Menedżer baz danych" }, + "categoryName4": { "message": "Narzędzia dokumentacji" }, + "categoryName5": { "message": "Widżet" }, + "categoryName10": { "message": "Statystyki" }, + "categoryName11": { "message": "Blog" }, + "categoryName12": { "message": "Framework JavaScript" }, + "categoryName13": { "message": "Lista problemów" }, + "categoryName14": { "message": "Odtwarzacz wideo" }, + "categoryName15": { "message": "System komentarzy" }, + "categoryName16": { "message": "Captcha" }, + "categoryName17": { "message": "Skrypt czcionek" }, + "categoryName18": { "message": "Framework webowy" }, + "categoryName19": { "message": "Różne" }, + "categoryName20": { "message": "Edytor" }, + "categoryName21": { "message": "LMS" }, + "categoryName22": { "message": "Serwer internetowy" }, + "categoryName23": { "message": "Narzędzia cache" }, + "categoryName24": { "message": "Rich Text Editor" }, + "categoryName25": { "message": "Grafika JavaScript" }, + "categoryName26": { "message": "Framework mobilny" }, + "categoryName27": { "message": "Język programowania" }, + "categoryName28": { "message": "System operacyjny" }, + "categoryName29": { "message": "Silnik wyszukiwarki" }, + "categoryName30": { "message": "Poczta internetowa" }, + "categoryName31": { "message": "CDN" }, + "categoryName32": { "message": "Automatyzacja marketingu" }, + "categoryName33": { "message": "Rozszerzenie serwera WWW" }, + "categoryName34": { "message": "Baza danych" }, + "categoryName35": { "message": "Mapy" }, + "categoryName36": { "message": "Sieć reklamowa" }, + "categoryName37": { "message": "Usługa sieciowa" }, + "categoryName38": { "message": "Serwer mediów" }, + "categoryName39": { "message": "Kamera internetowa" }, + "categoryName40": { "message": "Drukarka" }, + "categoryName41": { "message": "Procesor płatności" }, + "categoryName42": { "message": "Menedżer tagów" }, + "categoryName43": { "message": "Menedżer płatności" }, + "categoryName44": { "message": "System Build/CI" }, + "categoryName45": { "message": "System SCADA" }, + "categoryName46": { "message": "Dostęp zdalny" }, + "categoryName47": { "message": "Narzędzia deweloperskie" }, + "categoryName48": { "message": "Magazyn sieciowy" }, + "categoryName49": { "message": "Czytnik" }, + "categoryName50": { "message": "Systemy zarządzania dokumentami" }, + "categoryName51": { "message": "Konstruktory stron" }, + "categoryName52": { "message": "Czat na żywo" }, + "categoryName53": { "message": "CRM" } +} diff --git a/src/icons/Homeland.png b/src/icons/Homeland.png new file mode 100644 index 0000000000000000000000000000000000000000..a269934c4dba63a1cca807535b5f18438300a762 GIT binary patch literal 19700 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 aJmYkoQP$Hf%s>0jEr!2gs{a;4i25HJ@=X^2 literal 0 HcmV?d00001 diff --git a/src/icons/Netlify.svg b/src/icons/Netlify.svg new file mode 100644 index 000000000..370591793 --- /dev/null +++ b/src/icons/Netlify.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/icons/Scholica.svg b/src/icons/Scholica.svg new file mode 100644 index 000000000..b35216915 --- /dev/null +++ b/src/icons/Scholica.svg @@ -0,0 +1,24 @@ + + + + logo-green-icon + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/src/icons/spin.js.png b/src/icons/spin.js.png deleted file mode 100644 index 4d79611b6efc80ad49c90e502a5f5398f2701903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmV-}1bq96P)YNBh1DQMp^Fd^&BAXNq9Uq&dSOv7Xo00 zhlgtdfxtW3L0Bdt0??6jQmItlgoFf*m@-f{H8q(}PEOwQW#ZuApqLLJE-p?B(OYQ8 zkovovoSbd=4ZIArnh@l~+Z{Mp&r zzeE-J=H_M!?EjxZE?PS~JD$0@x$TaQ4l8_G7$G9em<*(YV*H`1s>)wiSGQbWU+>~m zb#=A!Q)AiN+nWSuY$QST2dq|Wkx($O-4r!7HT&R%jU)hYaoJ1U+S*zW0ysQ8d^bBg zE7(Y2{k35HS0Mm{!QkUg&=kAfK6G?+6cJ!!W8+PEd3m7_KvGiDmlYKiULk<8vNAha zG6@5P^EFia>-P3`$3vQ!n6QtIj(!)(xyfXTHJi<*hK2?Qbi@Y*S$dtCnpy%sc_AS; z87v?#*F&&mFKGa9_-%iG{|yH)Ffef2)z#&E$gbelTwGj~uB@!s zImetl!)_kDL>J4$=VV9CnL=Y#lWZfEwSWr>7ebf(C%)2||YSf&iVJon=c) zOK*81=X(47g@gxyyOQBI#dId1AkU#cln4UAN%s}3vzsS!?hFtDz;BZ2Of)w)JE2J_ z#gqY_bQ+`4I0UDlmE2^K=}Tz@0B+!Kib_jMt$Mw_3vG(M5yg-Xl|+fu=_eK-+>V0B z&ZCD|fd6gW1B{G}1g58_SrpEn5 + + typecho-logo + Created with Sketch (http://www.bohemiancoding.com/sketch) + + + + + + \ No newline at end of file diff --git a/src/icons/vis.js.png b/src/icons/vis.js.png deleted file mode 100644 index f40c5df55f6a9c807375d6621e7df03435dc27d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)}S8yfDoSFDzec!`eK|X7l;Te>2vxcAkCBl`|8TH0+nZp$zf$*F?-J zQ*6m?!;|Zt#q8>1Stn$5Lcl1yUH(KFZi>}8SAtt+i zr~FR9sL3|J)cW_n>CO1e--gWDhr~A_GY=!qbp&P{C9d-JL-`d;()K*-=4Xg!CtCMr zWX2JK=hu*uzZl!He8hPanO@F>(r)xtSCkB9Tj6a=?}E_W79^nvaWs&SQ_N?tz)cmd z3I{8uAaQ%q6wFON!-QLR)OaZet0qtciMC$>pr7r z7njI@nAI&ua_)lbFf2R{#=LeUvW&=_HE>m+zlRrZpzT^8^q*!+`7k8+6&6oTr3?tr zN1NlzA6#GB0jXYa?s<#M*o4Fv)6=E}ZqU}%i*aHSAMPz8qacy+IvAg{wL-oL6%nf` zp>(IWlUNldUq8gU6uGwNksy6#qtwXtCN6`N(naH5`(2* z!efy!cElWwm~DtT3Nb~Z#-*W#Pi>VyQhh>|z|c%3#9Xb>MbvBb6I(R;NoO?%>jjO$ g+OBB*C&|D13hF>J*?FA4BLDyZ07*qoM6N<$f&w#7hyVZp From fa32d079d7054b0bed5247c3a95a6faf6f4b6d1a Mon Sep 17 00:00:00 2001 From: Ward Oosterlijnck Date: Sun, 9 Apr 2017 22:11:15 +1000 Subject: [PATCH 4/6] Highlight.js remove html and env patterns --- src/apps.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/apps.json b/src/apps.json index bcf666d2b..d725f0086 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3413,10 +3413,8 @@ "cats": [ "19" ], - "env": "^hljs$", - "html": "]*href=\"[^\"]+highlight(?:\\.min)?\\.js[^\"]+.css", "icon": "Highlight.js.png", - "script": "highlight(?:\\.min)?\\.js", + "script": "/highlight\\.js/([\\d.]+?)/highlight\\.min\\.js", "website": "https://highlightjs.org/" }, "Highstock": { From 419ca89b6ea23440cd1c482192d96bacb995ab48 Mon Sep 17 00:00:00 2001 From: Ward Oosterlijnck Date: Sun, 9 Apr 2017 22:21:37 +1000 Subject: [PATCH 5/6] Remove regex capture group --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index d725f0086..b84b56c32 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3414,7 +3414,7 @@ "19" ], "icon": "Highlight.js.png", - "script": "/highlight\\.js/([\\d.]+?)/highlight\\.min\\.js", + "script": "/highlight\\.js/[\\d.]+?/highlight\\.min\\.js", "website": "https://highlightjs.org/" }, "Highstock": { From bdbc518c4d85d94deb7fa9cf5b31f3ce02755b2b Mon Sep 17 00:00:00 2001 From: Ward Oosterlijnck Date: Sun, 9 Apr 2017 22:24:10 +1000 Subject: [PATCH 6/6] Remove empty lines --- src/apps.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/apps.json b/src/apps.json index cab41b9c1..b84b56c32 100755 --- a/src/apps.json +++ b/src/apps.json @@ -9,7 +9,6 @@ "url": "/shop/catalog/browse\\?sessid=", "website": "http://1and1.com" }, - "1C-Bitrix": { "cats": [ "1" @@ -5484,7 +5483,6 @@ "script": "^/nodebb\\.min\\.js\\?", "website": "https://nodebb.org" }, - "OWL Carousel": { "cats": [ "5",