3
3
// Source: /src/extensions/ua-parser-extensions.js
4
4
5
5
///////////////////////////////////////////////
6
- /* Extensions for UAParser.js v2.0.0
6
+ /* Extensions for UAParser.js v2.0.1
7
7
https://github.com/faisalman/ua-parser-js
8
8
Author: Faisal Salman <[email protected] >
9
9
AGPLv3 License */
@@ -165,7 +165,7 @@ const ExtraDevices = Object.freeze({
165
165
/ \b ( z u r \d { 3 } ) b / i // Swiss ZUR Tablet
166
166
] , [ MODEL , [ VENDOR , 'Swiss' ] , [ TYPE , TABLET ] ] , [
167
167
168
- / \b ( ( z e k i ) ? t b .* \b ) b / i // Zeki Tablets
168
+ / ^ ( ( z e k i ) ? t b .* \b ) b / i // Zeki Tablets
169
169
] , [ MODEL , [ VENDOR , 'Zeki' ] , [ TYPE , TABLET ] ] , [
170
170
171
171
/ \b ( [ y r ] \d { 2 } ) b / i,
@@ -222,31 +222,25 @@ const Fetchers = Object.freeze({
222
222
// ChatGPT-User - https://platform.openai.com/docs/plugins/bot
223
223
// DuckAssistBot - https://duckduckgo.com/duckassistbot/
224
224
// BingPreview / Mastodon / Pinterestbot / Redditbot / Rogerbot / Telegrambot / Twitterbot / UptimeRobot
225
- / ( a h r e f s s i t e a u d i t | b i n g p r e v i e w | c h a t g p t - u s e r | m a s t o d o n | (?: d i s c o r d | d u c k a s s i s t | l i n k e d i n | p i n t e r e s t | r e d d i t | r o g e r | t e l e g r a m | t w i t t e r | u p t i m e r o ) b o t ) \/ ( [ \w \. ] + ) / i,
226
-
227
- // Google Site Verifier
228
- / ( g o o g l e - s i t e - v e r i f i c a t i o n ) \/ ( [ \w \. ] + ) / i,
225
+ // Google Site Verifier / Meta / Yahoo! Japan
226
+ // Yandex Bots - https://yandex.com/bots
227
+ / ( a h r e f s s i t e a u d i t | b i n g p r e v i e w | c h a t g p t - u s e r | m a s t o d o n | (?: d i s c o r d | d u c k a s s i s t | l i n k e d i n | p i n t e r e s t | r e d d i t | r o g e r | t e l e g r a m | t w i t t e r | u p t i m e r o ) b o t | g o o g l e - s i t e - v e r i f i c a t i o n | m e t a - e x t e r n a l f e t c h e r | y ! ? j - d l c | y a n d e x (?: c a l e n d a r | d i r e c t (?: d y n ) ? | s e a r c h s h o p ) | y a d i r e c t f e t c h e r ) \/ ( [ \w \. ] + ) / i,
229
228
230
- // Meta
231
- / ( m e t a - e x t e r n a l f e t c h e r ) \/ ( [ \w \. ] + ) / i,
229
+ // Bluesky
230
+ / ( b l u e s k y ) c a r d y b \/ ( [ \w \. ] + ) / i,
232
231
233
232
// Slackbot - https://api.slack.com/robots
234
233
/ ( s l a c k (?: b o t ) ? (?: - i m g p r o x y | - l i n k e x p a n d i n g ) ? ) ( [ \w \. ] + ) / i,
235
234
236
235
// WhatsApp
237
- / ( w h a t s a p p ) \/ ( [ \w \. ] + ) [ \/ ] [ i a n w ] / i,
238
-
239
- // Yahoo! Japan
240
- / ( y ! ? j - d l c ) \/ ( [ \w \. ] + ) / i,
241
-
242
- // Yandex Bots - https://yandex.com/bots
243
- / ( y a n d e x (?: c a l e n d a r | d i r e c t (?: d y n ) ? | s e a r c h s h o p ) | y a d i r e c t f e t c h e r ) \/ ( [ \w \. ] + ) / i,
244
- / ( y a n d e x (?: s i t e l i n k s | u s e r p r o x y ) ) / i
236
+ / ( w h a t s a p p ) \/ ( [ \w \. ] + ) [ \/ ] [ i a n w ] / i
245
237
] ,
246
238
[ NAME , VERSION , [ TYPE , FETCHER ] ] ,
247
239
248
- // Google Bots / Cohere / Snapchat / Vercelbot
249
- [ / ( c o h e r e - a i | v e r c e l b o t | f e e d f e t c h e r - g o o g l e | g o o g l e (?: - r e a d - a l o u d | p r o d u c e r ) | (? = b o t ; ) s n a p c h a t ) / i] ,
240
+ [
241
+ // Google Bots / Cohere / Snapchat / Vercelbot / Yandex Bots
242
+ / ( c o h e r e - a i | v e r c e l b o t | f e e d f e t c h e r - g o o g l e | g o o g l e (?: - r e a d - a l o u d | p r o d u c e r ) | (? = b o t ; ) s n a p c h a t | y a n d e x (?: s i t e l i n k s | u s e r p r o x y ) ) / i
243
+ ] ,
250
244
[ NAME , [ TYPE , FETCHER ] ] ,
251
245
]
252
246
} ) ;
@@ -271,104 +265,48 @@ const InApps = Object.freeze({
271
265
272
266
const MediaPlayers = Object . freeze ( {
273
267
browser : [ [
274
-
275
- / ( a p p l e (?: c o r e m e d i a | ) ) \/ ( [ \w \. _ ] + ) / i, // Generic Apple CoreMedia
276
- / ( c o r e m e d i a ) v ( [ \w \. _ ] + ) / i
277
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
278
-
279
- / ( a q u a l u n g | l y s s n a | b s p l a y e r ) \/ ( [ \w \. - ] + ) / i // Aqualung/Lyssna/BSPlayer
280
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
281
-
282
- / ( a r e s | o s s p r o x y ) \s ( [ \w \. - ] + ) / i // Ares/OSSProxy
283
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
284
-
285
- / ( a u d a c i o u s | a u d i m u s i c s t r e a m | a m a r o k | b a s s | c o r e | d a l v i k | g n o m e m p l a y e r | m u s i c o n c o n s o l e | n s p l a y e r | p s p - i n t e r n e t r a d i o p l a y e r | v i d e o s ) \/ ( [ \w \. - ] + ) / i,
286
- // Audacious/AudiMusicStream/Amarok/BASS/OpenCORE/Dalvik/GnomeMplayer/MoC
268
+ / ( a p p l e (?: c o r e m e d i a | t v ) ) \/ ( [ \w \. _ ] + ) / i, // Generic Apple CoreMedia
269
+ / ( c o r e m e d i a ) v ( [ \w \. _ ] + ) / i,
270
+ // Ares/Nexplayer/OSSProxy
271
+ / ( a r e s | c l e m e n t i n e | m u s i c p l a y e r d a e m o n | n e x p l a y e r | o s s p r o x y ) ( [ \w \. - ] + ) / i,
272
+ // Aqualung/Lyssna/BSPlayer/Clementine/MPD
273
+ // Audacious/AudiMusicStream/Amarok/BASS/OpenCORE/GnomeMplayer/MoC
287
274
// NSPlayer/PSP-InternetRadioPlayer/Videos
288
- / ( c l e m e n t i n e | m u s i c p l a y e r d a e m o n ) \s ( [ \w \. - ] + ) / i, // Clementine/MPD
289
- / ( l g p l a y e r | n e x p l a y e r ) \s ( [ \d \. ] + ) / i,
290
- / p l a y e r \/ ( n e x p l a y e r | l g p l a y e r ) \s ( [ \w \. - ] + ) / i // NexPlayer/LG Player
291
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
292
- / ( n e x p l a y e r ) \s ( [ \w \. - ] + ) / i // Nexplayer
275
+ // Nero Home/Nero Scout/Nokia
276
+ // QuickTime/RealMedia/RadioApp/RadioClientApplication/
277
+ // SoundTap/Totem/Stagefright/Streamium
278
+ // XBMC/gvfs/Xine/XMMS/irapp
279
+ / ^ ( a q u a l u n g | a u d a c i o u s | a u d i m u s i c s t r e a m | a m a r o k | b a s s | b s p l a y e r | c o r e | g n o m e m p l a y e r | g v f s | i r a p p | l y s s n a | m u s i c o n c o n s o l e | n e r o (?: h o m e | s c o u t ) | n o k i a \d + | n s p l a y e r | p s p - i n t e r n e t r a d i o p l a y e r | q u i c k t i m e | r m a | r a d i o a p p | r a d i o c l i e n t a p p l i c a t i o n | s o u n d t a p | s t a g e f r i g h t | s t r e a m i u m | t o t e m | v i d e o s | x b m c | x i n e | x m m s ) \/ ( [ \w \. - ] + ) / i,
280
+ / ( l g p l a y e r | n e x p l a y e r ) ( [ \d \. ] + ) / i,
281
+ / p l a y e r \/ ( n e x p l a y e r | l g p l a y e r ) ( [ \w \. - ] + ) / i, // NexPlayer/LG Player
282
+ / ( g s t r e a m e r ) s o u p h t t p s r c .+ l i b s o u p \/ ( [ \w \. - ] + ) / i, // Gstreamer
283
+ / ( h t c s t r e a m i n g p l a y e r ) [ \w _ ] + \/ ( [ \d \. ] + ) / i, // HTC Streaming Player
284
+ / ( l a v f ) ( [ \d \. ] + ) / i, // Lavf (FFMPEG)
285
+ // MPlayer SVN
286
+ / ( m p l a y e r ) (?: | \/ ) (?: (?: s h e r p y a - ) { 0 , 1 } s v n ) (?: - | ) ( r \d + (?: - \d + [ \w \. - ] + ) ) / i,
287
+ / ( s o n g b i r d ) \/ ( [ \w \. - ] + ) / i, // Songbird/Philips-Songbird
288
+ / ( w i n a m p ) (?: 3 v e r s i o n | m p e g | ) ( [ \w \. - ] + ) / i, // Winamp
289
+ / ( v l c ) (?: \/ | m e d i a p l a y e r - v e r s i o n ) ( [ \w \. - ] + ) / i, // VLC Videolan
290
+ / ^ ( f o o b a r 2 0 0 0 | i t u n e s | s m p ) \/ ( [ \d \. ] + ) / i, // Foobar2000/iTunes/SMP
291
+ / c o m \. ( r i s e u p r a d i o a l a r m ) \/ ( [ \d \. ] * ) / i, // RiseUP Radio Alarm
292
+ / ( m p l a y e r ) (?: \s | \/ | u n k n o w n - ) ( [ \w \. \- ] + ) / i, // MPlayer
293
+ // Windows Media Server
294
+ / ( w i n d o w s ) \/ ( [ \w \. - ] + ) u p n p \/ [ \d \. ] + d l n a d o c \/ [ \d \. ] + h o m e m e d i a s e r v e r / i
293
295
] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
294
296
295
297
/ ( f l r p ) \/ ( [ \w \. - ] + ) / i // Flip Player
296
298
] , [ [ NAME , 'Flip Player' ] , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
297
-
298
- / ( f s t r e a m | n a t i v e h o s t | q u e r y s e e k s p i d e r ) / i
299
299
// FStream/NativeHost/QuerySeekSpider
300
+ // MPlayer (no other info)/Media Player Classic/Nero ShowTime
301
+ // OCMS-bot/tap in radio/tunein/unknown/winamp (no other info)
302
+ // inlight radio / YourMuze
303
+ / ( f s t r e a m | m e d i a p l a y e r c l a s s i c | i n l i g h t r a d i o | m p l a y e r | n a t i v e h o s t | n e r o s h o w t i m e | o c m s - b o t | q u e r y s e e k s p i d e r | t a p i n r a d i o | t u n e i n r a d i o | w i n a m p | y o u r m u z e ) / i
300
304
] , [ NAME , [ TYPE , MEDIAPLAYER ] ] , [
301
305
302
- / ( g s t r e a m e r ) s o u p h t t p s r c .+ l i b s o u p \/ ( [ \w \. - ] + ) / i
303
- // Gstreamer
304
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
305
-
306
- / ( h t c s t r e a m i n g p l a y e r ) \s [ \w _ ] + \s \/ \s ( [ \d \. ] + ) / i, // HTC Streaming Player
307
- / ( l a v f ) ( [ \d \. ] + ) / i // Lavf (FFMPEG)
308
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
309
-
310
- / ( h t c _ o n e _ s ) \/ ( [ \d \. ] + ) / i, // HTC One S
311
- ] , [ [ NAME , / _ / g, ' ' ] , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
312
-
313
- / ( m p l a y e r ) (?: \s | \/ ) (?: (?: s h e r p y a - ) { 0 , 1 } s v n ) (?: - | \s ) ( r \d + (?: - \d + [ \w \. - ] + ) ) / i,
314
- // MPlayer SVN
315
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
316
-
317
- / ( m p l a y e r ) (?: \s | \/ ) ( [ \w \. - ] + ) / i, // MPlayer
318
- / ( m p l a y e r ) u n k n o w n - ( [ \w \. \- ] + ) / i // MPlayer UNKNOWN
319
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
320
-
321
- / ( m p l a y e r ) / i, // MPlayer (no other info)
322
- / ( y o u r m u z e ) / i, // YourMuze
323
- / ( m e d i a p l a y e r c l a s s i c | n e r o s h o w t i m e ) / i // Media Player Classic/Nero ShowTime
324
- ] , [ NAME , [ TYPE , MEDIAPLAYER ] ] , [
325
-
326
- / ( n e r o (?: h o m e | s c o u t ) ) \/ ( [ \w \. - ] + ) / i // Nero Home/Nero Scout
327
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
328
-
329
- / ( n o k i a \d + ) \/ ( [ \w \. - ] + ) / i // Nokia
330
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
331
-
332
- / \s ( s o n g b i r d ) \/ ( [ \w \. - ] + ) / i // Songbird/Philips-Songbird
333
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
334
-
335
- / ( w i n a m p ) 3 v e r s i o n ( [ \w \. - ] + ) / i, // Winamp
336
- / ( w i n a m p ) \s ( [ \w \. - ] + ) / i,
337
- / ( w i n a m p ) m p e g \/ ( [ \w \. - ] + ) / i
338
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
339
-
340
- / ( o c m s - b o t | t a p i n r a d i o | t u n e i n r a d i o | u n k n o w n | w i n a m p | i n l i g h t r a d i o ) / i // OCMS-bot/tap in radio/tunein/unknown/winamp (no other info)
341
- // inlight radio
342
- ] , [ NAME , [ TYPE , MEDIAPLAYER ] ] , [
343
-
344
- / ( q u i c k t i m e | r m a | r a d i o a p p | r a d i o c l i e n t a p p l i c a t i o n | s o u n d t a p | t o t e m | s t a g e f r i g h t | s t r e a m i u m ) \/ ( [ \w \. - ] + ) / i
345
- // QuickTime/RealMedia/RadioApp/RadioClientApplication/
346
- // SoundTap/Totem/Stagefright/Streamium
347
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
348
-
349
- / ( s m p ) ( [ \d \. ] + ) / i // SMP
350
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
306
+ / ( h t c _ o n e _ s | w i n d o w s - m e d i a - p l a y e r | w m p l a y e r ) \/ ( [ \w \. - ] + ) / i, // HTC One S / Windows Media Player
307
+ ] , [ [ NAME , / [ _ - ] / g, ' ' ] , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
351
308
352
- / ( v l c ) m e d i a p l a y e r - v e r s i o n ( [ \w \. ] + ) / i, // VLC Videolan
353
- / ( v l c ) \/ ( [ \w \. - ] + ) / i,
354
- / ( x b m c | g v f s | x i n e | x m m s | i r a p p ) \/ ( [ \w \. - ] + ) / i, // XBMC/gvfs/Xine/XMMS/irapp
355
- / ( f o o b a r 2 0 0 0 ) \/ ( [ \d \. ] + ) / i, // Foobar2000
356
- / ( i t u n e s ) \/ ( [ \d \. ] + ) / i // iTunes
357
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
358
-
359
- / ( w m p l a y e r ) \/ ( [ \w \. - ] + ) / i, // Windows Media Player
360
- / ( w i n d o w s - m e d i a - p l a y e r ) \/ ( [ \w \. - ] + ) / i
361
- ] , [ [ NAME , / - / g, ' ' ] , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
362
-
363
- / w i n d o w s \/ ( [ \w \. - ] + ) u p n p \/ [ \d \. ] + d l n a d o c \/ [ \d \. ] + ( h o m e m e d i a s e r v e r ) / i,
364
- // Windows Media Server
365
- ] , [ VERSION , [ NAME , 'Windows' ] , [ TYPE , MEDIAPLAYER ] ] , [
366
-
367
- / ( c o m \. r i s e u p r a d i o a l a r m ) \/ ( [ \d \. ] * ) / i // RiseUP Radio Alarm
368
- ] , [ NAME , VERSION , [ TYPE , MEDIAPLAYER ] ] , [
369
-
370
- / ( r a d .i o ) \s ( [ \d \. ] + ) / i, // Rad.io
371
- / ( r a d i o .(?: d e | a t | f r ) ) \s ( [ \d \. ] + ) / i
309
+ / ( r a d .i o | r a d i o .(?: d e | a t | f r ) ) ( [ \d \. ] + ) / i // Rad.io
372
310
] , [ [ NAME , 'rad.io' ] , VERSION , [ TYPE , MEDIAPLAYER ] ]
373
311
]
374
312
} ) ;
@@ -387,6 +325,24 @@ const Libraries = Object.freeze({
387
325
]
388
326
} ) ;
389
327
328
+ /////////////
329
+ // VEHICLES
330
+ ////////////
331
+
332
+ const Vehicles = Object . freeze ( {
333
+ device : [
334
+ [
335
+ / d i l i n k .+ ( b y d ) a u t o / i, // BYD
336
+ ] , [ VENDOR ] , [
337
+
338
+ / ( r i v i a n ) ( r 1 t ) / i, // Rivian
339
+ ] , [ VENDOR , MODEL ] , [
340
+
341
+ / v c c .+ n e t f r o n t / i, // Volvo
342
+ ] , [ [ VENDOR , 'Volvo' ] ]
343
+ ]
344
+ } ) ;
345
+
390
346
//////////
391
347
// BOTS
392
348
/////////
@@ -409,5 +365,6 @@ export {
409
365
Fetchers ,
410
366
InApps ,
411
367
Libraries ,
412
- MediaPlayers
368
+ MediaPlayers ,
369
+ Vehicles
413
370
} ;
0 commit comments