Releases: hexydec/agentzero
AgentZero v1.3.1
This release adds detection for more app/crawlers/platforms/devices/browsers/features:
- Added support to detect Reddit/Pinterest/MXPlayer/Todoist/Trello/PurpleMash/Instapaper/LG Player/Roblox/nu.nl apps
- Added more detection for
Android
,MacOS
andiOS
- Moved
Headless Chrome
detection tocrawlers::get()
- Fixed
Amazon Kendra
detection - Added
Playstation 3
support - Added support for more
LG
andXiaomi
devices - Improved
width
andheight
processing to includedensity
- Improved JSON extraction to include device and platform information
- Added better URL detection in
url::get()
- Added category and type to
libwww-perl
framework - Added
Douyin
as an app name (Chinese TikTok) fixes #9 - Added
MIUI Browser
to browsers list. - Added tests.
- Updated dependencies.
AgentZero v1.3.0
This release improves normalisation of crawler names to enable analytics to be more consistent:
- Agent strings are now normalised to remove surrounding quotes and extra whitespace in
agentzero::parse()
- Reworked how crawler names are parsed to make them more consistent in
crawlers::normaliseAppname()
- Added
libwww-perl
as a framework - Added lots of new crawlers
- Fixed performance issue in
crawlers::get()
where acount()
call was in a loop - Added and updated tests
- Updated dependencies
- Fixed some PHPStan recommendations
AgentZero v1.2.1
This is a maintenance release:
- Added OpenAI and Claude bots
- Added tests
- Updated dependencies
AgentZero v1.2.0
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 toframeworks::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 withpreg_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
andMicroMessenger
apps - Fixed PHPStan issues to level 9
- Added and updated test
- Updated dependencies
AgentZero v1.1.0
This release enables capture of more crawlers, and adds a new ai
category:
- Apps are now not automatically type
human
- Moved
Powershell
andAppleExchangeWebServices
to crawlers, as there is no indication that these are human UA's - Added
Alamofire
as a framework - Fixed issue in
other::getApp()
where theapp
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
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
This release improves detection, adds some new properties, and improves performance. Also is now marked as stable:
- Added
PS Vita
andPSP
support - Added
Moblie
as an alternative toMobile
as some Samsung devices misspell it - Added new properties
framework
andframeworkversion
to capture the runtime that the app was built in - Added support for
Weibo
andWeChat
apps - Added support for
QQ Browser
- Improved how
IE
andTrident
is captured to account for the fact that theQQ Browser
can be eitherTrident
orWebKit
- Updated
Chromium
detection to set the rendering engine toWebKit
when the version is less than 28 - Languages can now be captured from
language/
orByteLocale
tokens - Updated config in
apps::get()
to unify how app names are processed, now going throughapps::getApp()
- Updated
other::get()
to normalise app names throughapps::getApp()
- Moved capture for
ByteFullLocale/
tolanguages::get()
. - Updated
crawlers::get()
to improve normalisation of theQwant
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 toprops::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
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
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
This release improves the output quality, and adds some new properties:
- Tightened up what
device
andmodel
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 withOcIdWebView
, addedimo
,Amazon Kids Browser
, andViber
- Added support for detecting
edge
on Android - Added
Phone
mapping incategories::get()
to map tomobile
- 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 asXiaomi
devices- Fixed issue in
other::get()
whereChrome
was mapped as an app - Added and updated tests
- Updated
README.md
to show the correct example now that the return value ofagentzero::parse()
is anagentzero
object