[extensions] Detect OS from WhatsApp user agent

This commit is contained in:
Faisal Salman 2025-03-11 17:50:36 +07:00
parent 8f545f9e3f
commit f7f64a31ea
2 changed files with 14 additions and 0 deletions

View File

@ -244,6 +244,11 @@ const Fetchers = Object.freeze({
/((?:better uptime |telegram|vercel)bot|cohere-ai|feedfetcher-google|google(?:imageproxy|-read-aloud|-pagerenderer|producer)|snap url preview|yandex(?:sitelinks|userproxy))/i /((?:better uptime |telegram|vercel)bot|cohere-ai|feedfetcher-google|google(?:imageproxy|-read-aloud|-pagerenderer|producer)|snap url preview|yandex(?:sitelinks|userproxy))/i
], ],
[NAME, [TYPE, FETCHER]], [NAME, [TYPE, FETCHER]],
],
os : [
[/whatsapp\/[\d\.]+ (a|i)/i],
[[NAME, os => os == 'A' ? 'Android' : 'iOS' ]]
] ]
}); });
@ -362,6 +367,9 @@ const Bots = Object.freeze({
...Crawlers.browser, ...Crawlers.browser,
...Fetchers.browser, ...Fetchers.browser,
...Libraries.browser ...Libraries.browser
],
os : [
...Fetchers.os
] ]
}); });

View File

@ -61,6 +61,12 @@ describe('Extensions', () => {
major: '1', major: '1',
type: 'fetcher' type: 'fetcher'
}); });
const whatsapp = "WhatsApp/2.0 A";
assert.deepEqual(new UAParser(whatsapp, Fetchers).getOS(), {
name : 'Android',
version : undefined
});
}); });
describe('Merge', () => { describe('Merge', () => {