Skip to content

Releases: hexydec/agentzero

AgentZero v1.2.1

02 Aug 16:22
Compare
Choose a tag to compare

This is a maintenance release:

  • Added OpenAI and Claude bots
  • Added tests
  • Updated dependencies

AgentZero v1.2.0

27 Jun 20:10
Compare
Choose a tag to compare

This update add support for lots of new crawlers, and improves token handling internally:

  • Reworked how tokens are ignored in agentzero::getTokens() to make them case-insensitive
  • Added loads of new crawlers to crawlers::get()
  • Added .NET CLR framework to frameworks::get()
  • Added special class to handle difficult captures
  • Updated Yahoo! Slurp parser
  • Fix issue #6 typo in README.md
  • "arm" is now "Arm" in architectures::get()
  • Improved how apps are normalised in crawlers::getApp()
  • Applebot is now categorised as AI
  • Added bytespider crawler
  • Fixed issue in agentzero::getTokens() where the single values array was encoded with preg_quote(), but the delimiter was not supplied
  • AppleWebKit/537.36 is now marked as single as it is sometime preceded by other tokens that get captured together
  • Added captures for Baidu and MicroMessenger apps
  • Fixed PHPStan issues to level 9
  • Added and updated test
  • Updated dependencies

AgentZero v1.1.0

08 Apr 19:06
Compare
Choose a tag to compare

This release enables capture of more crawlers, and adds a new ai category:

  • Apps are now not automatically type human
  • Moved Powershell and AppleExchangeWebServices to crawlers, as there is no indication that these are human UA's
  • Added Alamofire as a framework
  • Fixed issue in other::getApp() where the app was expected to exist
  • Added capture for iOS with a space after it
  • Added Blazer browser (PalmOS)
  • Added PalmOS and updated Windows captures to ignore PalmOS
  • Added a new ai category, to mark crawlers that are specifically for AI
  • Added specific mispellings that indicate a web scraper instead of the human it is trying to spoof
  • Added and updated tests.

AgentZero v1.0.1

15 Feb 18:27
Compare
Choose a tag to compare

This release adds detection for more strings and improves how some strings are handled internally:

  • Fixed issues parsing Google-Read-Aloud
  • Cleaned up how specific category names and app names are specified for generic bot captures
  • Added Cloudflare crawlers to capture list
  • Fixes issue #5, missing Huawei Browser
  • Added tests

AgentZero v1.0.0

25 Jan 21:24
Compare
Choose a tag to compare

This release improves detection, adds some new properties, and improves performance. Also is now marked as stable:

  • Added PS Vita and PSP support
  • Added Moblie as an alternative to Mobile as some Samsung devices misspell it
  • Added new properties framework and frameworkversion to capture the runtime that the app was built in
  • Added support for Weibo and WeChat apps
  • Added support for QQ Browser
  • Improved how IE and Trident is captured to account for the fact that the QQ Browser can be either Trident or WebKit
  • Updated Chromium detection to set the rendering engine to WebKit when the version is less than 28
  • Languages can now be captured from language/ or ByteLocale tokens
  • Updated config in apps::get() to unify how app names are processed, now going through apps::getApp()
  • Updated other::get() to normalise app names through apps::getApp()
  • Moved capture for ByteFullLocale/ to languages::get().
  • Updated crawlers::get() to improve normalisation of the Qwant crawler
  • Improved how iPhone is captured for certain app strings
  • Added tests/profile.php to process a load of UA strings so the code can be profiled
  • Updated agentzero::parse() to generate a lowercase copy of the tokens, which is then passed to props::match(), this is to prevent the tokens being lowercased for every match that is made
  • Added declare(strict_types = 1) to all test files
  • Added and updated tests
  • Updated README.md to remove beta flag

AgentZero v0.6.0

11 Jan 13:53
Compare
Choose a tag to compare

This release fixes some bugs and adds a new metric::

  • Fixed #2 where the normalisation of the app name was not specific enough, and lost detail. There is now a new metric appname that extracts the original app name as specified in the UA string
  • Fixed #4 where the version of Safari is specified in a different token, it is now extracted where available
  • Updated test
  • Updated docs and readme
  • Updated dependencies

AgentZero v0.5.1

18 Dec 22:32
Compare
Choose a tag to compare

This is a service release that adds some improvements:

  • The original UA string is now a property of the returned object
  • Added snap preview crawler
  • Updated tests
  • Updated dependencies

AgentZero v0.5.0

19 Nov 21:59
Compare
Choose a tag to compare

This release improves the output quality, and adds some new properties:

  • Tightened up what device and model represent, and upgraded parsers to produce the correct value
  • Added RAM, CPU model number, and CPU clock metrics to output, as this is revealed by some app UA strings
  • Added lowercase versions of some ignore strings in config::get()
  • Added Google Quick Search Box to the apps list, fixed duplication with OcIdWebView, added imo, Amazon Kids Browser, and Viber
  • Added support for detecting edge on Android
  • Added Phone mapping in categories::get() to map to mobile
  • Added a load of scrapers to crawlers::get()
  • Fixed issues capturing some Amazon Fire Tablets in devices::get()
  • Added support for capturing Samsung and Blackberry devices
  • Redmi devices are now not mapped as Xiaomi devices
  • Fixed issue in other::get() where Chrome was mapped as an app
  • Added and updated tests
  • Updated README.md to show the correct example now that the return value of agentzero::parse() is an agentzero object

AgentZero v0.4.0

16 Oct 22:09
Compare
Choose a tag to compare

This release normalises the output names better for platforms and browsers, improves information capture and parsing, and supports more browsers, vendors, and crawlers:

  • Improved mappings for handling apps, to account for Oracle Webview, and information contained in the ByteDance (TikTok) app UA string
  • Improved how Chrome browsers are handled and added detection from Cronet Android Webview
  • Fixed issue in devices::getDevice() where the build and device was not separated properly if the build marker was a different case
  • Added darkmode output from other::get(), where the information is contained within a JSON string
  • Updated platforms::get() to handle short and full locale markers in the build string for Android devices
  • Updated tests to only filter out values that are null for when tests are run, also in the indexphp test script
  • Swapped other ahead of apps in the config as it decodes app JSON, which should override standard app info
  • Updated apps::get() to normalise the app names for some common apps
  • Updated browsers::get() to improve how the browser version is detected, to compensate for some odd strings
  • Added detection for Vivo devices
  • Fixed platform issues to allow text-based platform versions
  • Some app names and device vendor names are now normalised
  • Added more vendors to devices::getDevice()
  • Platform names are now normalised to make sure the case is always consistent
  • Improved parsing of the Instagram app when it is in proprietary format
  • Added libcurl to scrapers
  • Added in as a language code
  • Added missing end command to agentzero::parse() to match strings at the end of a token
  • Added some App captures, OculusBrowser and YaBrowser are now considered apps instead of browsers
  • Improved architecture captures
  • Added a load of new browsers such as Links, Elinks, BonEcho (Firefox), minimo, and some new Firefox captures to take into account unmatched patterns
  • Improved and added crawler captures
  • Improved and added device captures, added vendors, and added a generic capture for screen dimensions
  • Engines now define captures as human, improved capturing
  • Added more Linux flavours, and improved generic Linux version capturing
  • Added and updated tests
  • Updated support documentation

AgentZero v0.3.0

14 Sep 09:28
Compare
Choose a tag to compare

This release tightens up how human devices are detected, improves string parsing, and adds more devices/crawlers:

  • Updated agentzero::getTokens() to split tokens by commas
  • Updated configurations to handle the new token layout
  • Updated browsers::get() to set all browsers as type=human
  • Removed setting of type=human from platforms::get()
  • Mappings in architectures::get() now specify category=desktop where possible
  • Moved engines and browsers up the pecking order over apps, platforms and architectures, as browsers define whether the UA is human
  • Updated browsers::get() to normalise the browser name
  • Updated Facebook app language parser to normalise it, and account for odd strings
  • Fixed issue with Silk browser where it shouldn't define that the category is tablet
  • Normalised the name of Samsung Browser in browsers::get()
  • Added AndroidDownloadManager to apps list
  • Added support for more Kindle Fire tablets.
  • Added OS/2 to platform mappings.
  • Added some monitoring service crawlers
  • Added exact match for Android as well as with a space after it
  • Updated workflow to fix run issue
  • Added and updated tests.