diff --git a/Parser/Client/Browser.php b/Parser/Client/Browser.php index ea66e62ed8..283c1b5e63 100644 --- a/Parser/Client/Browser.php +++ b/Parser/Client/Browser.php @@ -105,6 +105,7 @@ class Browser extends AbstractClientParser 'AV' => 'Amiga Voyager', 'AW' => 'Amiga Aweb', 'PN' => 'APN Browser', + '6A' => 'Arachne', 'RA' => 'Arc', 'AI' => 'Arvin', 'AK' => 'Ask.com', diff --git a/Parser/Client/Browser/Engine.php b/Parser/Client/Browser/Engine.php index 53c0b8cea6..2726da8eca 100644 --- a/Parser/Client/Browser/Engine.php +++ b/Parser/Client/Browser/Engine.php @@ -54,6 +54,7 @@ class Engine extends AbstractClientParser 'Servo', 'Goanna', 'EkiohFlow', + 'Arachne', ]; /** diff --git a/Parser/Client/Browser/Engine/Version.php b/Parser/Client/Browser/Engine/Version.php index 8d42e9d4e6..fd781fb078 100644 --- a/Parser/Client/Browser/Engine/Version.php +++ b/Parser/Client/Browser/Engine/Version.php @@ -62,6 +62,10 @@ public function parse(): ?array $engineToken = 'Chrome|Cronet'; } + if ('Arachne' === $this->engine) { + $engineToken = 'Arachne\/5\.'; + } + \preg_match( "~(?:{$engineToken})\s*/?\s*((?(?=\d+\.\d)\d+[.\d]*|\d{1,7}(?=(?:\D|$))))~i", $this->userAgent, diff --git a/Tests/Parser/Client/fixtures/browser.yml b/Tests/Parser/Client/fixtures/browser.yml index fa8ec3f882..763b0d11bc 100644 --- a/Tests/Parser/Client/fixtures/browser.yml +++ b/Tests/Parser/Client/fixtures/browser.yml @@ -9327,3 +9327,12 @@ engine: Gecko engine_version: "48.0" family: "" +- + user_agent: xChaos_Arachne/5.1.95;GPL,387+ (www.glennmcc.org) + client: + type: browser + name: Arachne + version: "1.95" + engine: Arachne + engine_version: "1.95" + family: "" diff --git a/regexes/client/browser_engine.yml b/regexes/client/browser_engine.yml index 86beb3632c..e58259c5d0 100644 --- a/regexes/client/browser_engine.yml +++ b/regexes/client/browser_engine.yml @@ -46,3 +46,6 @@ - regex: 'Ekioh(?:Flow)?' name: 'EkiohFlow' + +- regex: 'xChaos_Arachne' + name: 'Arachne' diff --git a/regexes/client/browsers.yml b/regexes/client/browsers.yml index 7621df207f..297d4e797d 100644 --- a/regexes/client/browsers.yml +++ b/regexes/client/browsers.yml @@ -5,6 +5,11 @@ # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later ############### +# Arachne (https://www.glennmcc.org/) +- regex: 'xChaos_Arachne/5\.(\d+\.[\.\d]+)' + name: 'Arachne' + version: '$1' + # Weltweitimnetz Browser (https://sourceforge.net/projects/weltweitimnetz/ | https://web.archive.org/web/20111108155328/http://www.weltweitimnetz.de/browser_en.htm) - regex: 'WeltweitimnetzBrowser/(\d+\.[\.\d]+)' name: 'Weltweitimnetz Browser'