diff --git a/src/apps.json b/src/apps.json index 666f8b3f1..14619fdf8 100644 --- a/src/apps.json +++ b/src/apps.json @@ -17,7 +17,8 @@ }, "1C-Bitrix": { "cats": [ - 1 + 1, + 6 ], "headers": { "Set-Cookie": "BITRIX_", @@ -78,6 +79,14 @@ "icon": "ebis.png", "website": "http://www.ebis.ne.jp" }, + "Alpine.js": { + "cats": [ + 12 + ], + "html": "<[^>]+x-data[^<]+", + "icon": "Alpine.js.png", + "website": "https://github.com/alpinejs/alpine" + }, "AOLserver": { "cats": [ 22 @@ -562,7 +571,7 @@ 61 ], "html": [ - "]+?action=\"[^\"]+airform\\.io" + "]+?action=\"[^\"]*airform\\.io[^>]+?>" ], "icon": "Airform.svg", "website": "https://airform.io" @@ -715,12 +724,24 @@ "implies": "Amazon Web Services", "website": "https://aws.amazon.com/elasticloadbalancing/" }, + "Amazon ALB": { + "cats": [ + 65 + ], + "cookies": { + "AWSALB": "", + "AWSALBCORS": "" + }, + "icon": "aws-elb.png", + "implies": "Amazon Web Services", + "website": "https://aws.amazon.com/elasticloadbalancing/" + }, "Amazon S3": { "cats": [ 19 ], "headers": { - "Server": "^AmazonS3$" + "server": "^AmazonS3$" }, "icon": "aws-s3.svg", "implies": "Amazon Web Services", @@ -960,6 +981,14 @@ "icon": "apostrophecms.svg", "implies": "Node.js", "website": "http://apostrophecms.org" + }, + "AppDynamics": { + "cats": [ + 10 + ], + "icon": "AppDynamics.png", + "script": "adrum\\.js|adrum.([0-9].*)\\.js\\;version:\\1", + "website": "https://appdynamics.com" }, "AppNexus": { "cats": [ @@ -1141,6 +1170,19 @@ ], "website": "http://www.atlassian.com/software/jira/overview/" }, + "Atlassian Statuspage": { + "cats": [ + 13, + 62 + ], + "headers": { + "X-StatusPage-Skip-Logging": "", + "X-StatusPage-Version": "" + }, + "html": "]*href=\"https?://(?:www\\.)?statuspage\\.io/powered-by[^>]+>", + "icon": "Atlassian Statuspage.svg", + "website": "https://www.statuspage.io/" + }, "Aurelia": { "cats": [ 12 @@ -1304,6 +1346,16 @@ "implies": "Python", "website": "http://docs.python.org/2/library/basehttpserver.html" }, + "Big Cartel": { + "cats": [ + 6 + ], + "icon": "bigcartel.png", + "meta": { + "generator": "Big Cartel" + }, + "website": "https://www.bigcartel.com" + }, "BigDump": { "cats": [ 3 @@ -1386,6 +1438,17 @@ "blazor\\.webassembly\\.js" ] }, + "Blessing Skin": { + "cats": [ + 7 + ], + "icon": "Blessing Skin.png", + "website": "https://github.com/bs-community/blessing-skin-server", + "implies": "Laravel", + "js": { + "blessing.version": "^(.+)$\\;version:\\1" + } + }, "Blesta": { "cats": [ 6 @@ -1875,7 +1938,7 @@ ], "script": "/website/JavaScript/Vertoshop\\.js", "icon": "ccvshop.png", - "website": "https://www.ccvshop.nl" + "website": "https://ccvshop.be" }, "CentOS": { "cats": [ @@ -2127,6 +2190,16 @@ }, "icon": "cnzz.ico", "website": "https://web.umeng.com/" +}, + "CloudSuite": { + "cats": [ + 6 + ], + "cookies": { + "cs_secure_session": "" + }, + "icon": "CloudSuite.svg", + "website": "https://cloudsuite.com" }, "Coaster CMS": { "cats": [ @@ -3183,10 +3256,13 @@ "cats": [ 6 ], + "headers": { + "X-epages-RequestId": "" + }, + "icon": "epages.png", "js": { "epages": "" }, - "icon": "epages.png", "website": "http://www.epages.com/" }, "EPiServer": { @@ -5275,6 +5351,15 @@ "icon": "Ionicons.png", "website": "http://ionicons.com" }, + "J2Store": { + "cats": [ + 6 + ], + "html": "var j2storeURL", + "icon": "j2store.png", + "implies": "Joomla", + "website": "https://www.j2store.org/" + }, "JAlbum": { "cats": [ 7 @@ -6651,17 +6736,34 @@ "icon": "Meebo.png", "website": "http://www.meebo.com" }, - "Melis CMS V2": { + "Melis Platform": { "cats": [ 1, - 6 + 6, + 11, + 32 + ], + "cpe": "cpe:/a:melisplatform:melisplatform", + "html": [ + " + cloudsuite-logo-rgb + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/src/icons/RebelMouse.svg b/src/icons/RebelMouse.svg new file mode 100644 index 000000000..980595369 --- /dev/null +++ b/src/icons/RebelMouse.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/icons/SlickStack.png b/src/icons/SlickStack.png new file mode 100644 index 000000000..24b48486f Binary files /dev/null and b/src/icons/SlickStack.png differ diff --git a/src/icons/Swell.svg b/src/icons/Swell.svg new file mode 100644 index 000000000..ae3cfb497 --- /dev/null +++ b/src/icons/Swell.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/src/icons/Tsoft.png b/src/icons/Tsoft.png new file mode 100644 index 000000000..6b05a85d8 Binary files /dev/null and b/src/icons/Tsoft.png differ diff --git a/src/icons/bigcartel.png b/src/icons/bigcartel.png new file mode 100644 index 000000000..8425619da Binary files /dev/null and b/src/icons/bigcartel.png differ diff --git a/src/icons/j2store.png b/src/icons/j2store.png new file mode 100644 index 000000000..65798b62f Binary files /dev/null and b/src/icons/j2store.png differ diff --git a/src/icons/kolors4u.png b/src/icons/kolors4u.png new file mode 100644 index 000000000..611b8b53a Binary files /dev/null and b/src/icons/kolors4u.png differ diff --git a/src/icons/melis-platform.svg b/src/icons/melis-platform.svg new file mode 100644 index 000000000..103ae55c6 --- /dev/null +++ b/src/icons/melis-platform.svg @@ -0,0 +1,37 @@ + + + + diff --git a/src/icons/mycashflow.png b/src/icons/mycashflow.png new file mode 100644 index 000000000..50a8b455f Binary files /dev/null and b/src/icons/mycashflow.png differ diff --git a/src/icons/tagcommander.png b/src/icons/tagcommander.png new file mode 100644 index 000000000..43f91fcea Binary files /dev/null and b/src/icons/tagcommander.png differ diff --git a/src/icons/vercel.svg b/src/icons/vercel.svg new file mode 100644 index 000000000..552a450b4 --- /dev/null +++ b/src/icons/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/zeit.svg b/src/icons/zeit.svg deleted file mode 100644 index 8ce0bfb63..000000000 --- a/src/icons/zeit.svg +++ /dev/null @@ -1 +0,0 @@ -ZeitCreated with Sketch. \ No newline at end of file diff --git a/src/wappalyzer.js b/src/wappalyzer.js index f6ff1b8b5..771de8426 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -172,7 +172,7 @@ class Wappalyzer { let matches = data.html.match(new RegExp(']*[: ]lang="([a-z]{2}((-|_)[A-Z]{2})?)"', 'i')); - language = matches && matches.length ? matches[1] : null; + language = matches && matches.length ? matches[1] : data.language || null; // Meta tags const regex = /]+>/ig;