Skip to content

Commit f7f64a3

Browse files
committed
[extensions] Detect OS from WhatsApp user agent
1 parent 8f545f9 commit f7f64a3

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/extensions/ua-parser-extensions.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,11 @@ const Fetchers = Object.freeze({
244244
/((?:better uptime |telegram|vercel)bot|cohere-ai|feedfetcher-google|google(?:imageproxy|-read-aloud|-pagerenderer|producer)|snap url preview|yandex(?:sitelinks|userproxy))/i
245245
],
246246
[NAME, [TYPE, FETCHER]],
247+
],
248+
249+
os : [
250+
[/whatsapp\/[\d\.]+ (a|i)/i],
251+
[[NAME, os => os == 'A' ? 'Android' : 'iOS' ]]
247252
]
248253
});
249254

@@ -362,6 +367,9 @@ const Bots = Object.freeze({
362367
...Crawlers.browser,
363368
...Fetchers.browser,
364369
...Libraries.browser
370+
],
371+
os : [
372+
...Fetchers.os
365373
]
366374
});
367375

test/unit/extensions.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ describe('Extensions', () => {
6161
major: '1',
6262
type: 'fetcher'
6363
});
64+
65+
const whatsapp = "WhatsApp/2.0 A";
66+
assert.deepEqual(new UAParser(whatsapp, Fetchers).getOS(), {
67+
name : 'Android',
68+
version : undefined
69+
});
6470
});
6571

6672
describe('Merge', () => {

0 commit comments

Comments
 (0)