device_detector 1.0.7 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -36,8 +36,10 @@ FiiO:
36
36
  regex: 'FiiO'
37
37
  device: 'portable media player'
38
38
  models:
39
- - regex: 'M15'
40
- model: 'M15'
39
+ - regex: 'M11 Plus LTD'
40
+ model: 'M11 Plus LTD'
41
+ - regex: 'M(1[57])'
42
+ model: 'M$1'
41
43
 
42
44
  Microsoft:
43
45
  regex: 'Microsoft ZuneHD'
@@ -84,3 +86,17 @@ SONOS:
84
86
  model: 'Play:5'
85
87
  - regex: 'Sonos;One;'
86
88
  model: 'One'
89
+
90
+ # Shanling
91
+ Shanling:
92
+ regex: 'Shanling M6'
93
+ device: 'portable media player'
94
+ models:
95
+ - regex: 'Shanling (M6\(21\))'
96
+ model: '$1'
97
+
98
+ # Sylvania
99
+ Sylvania:
100
+ regex: '(SLTDVD102[34])'
101
+ device: 'portable media player'
102
+ model: '$1'
@@ -110,8 +110,19 @@ Loview:
110
110
  device: 'tv'
111
111
  model: ''
112
112
 
113
+ # Supra
114
+ Supra:
115
+ regex: 'Supra Shell'
116
+ device: 'tv'
117
+ model: ''
118
+
113
119
  # Yuno (yuno.bbk.ru)
114
120
  Yuno:
115
121
  regex: 'Yuno Shell'
116
122
  device: 'tv'
117
123
  model: ''
124
+
125
+ TCL:
126
+ regex: 'TCL/TCL-'
127
+ device: 'tv'
128
+ model: ''
@@ -26,7 +26,9 @@ Airties:
26
26
  'ALDI SÜD':
27
27
  regex: 'ALDISUED[;,]'
28
28
  device: 'tv'
29
- model: ''
29
+ models:
30
+ - regex: 'ALDISUED, ([a-z0-9_ \-]+), (?:wired|wireless)'
31
+ model: ''
30
32
 
31
33
  # Altech UEC
32
34
  'Altech UEC':
@@ -152,7 +154,9 @@ GoGEN:
152
154
  Grundig:
153
155
  regex: '(OWB|Grundig|Arcelik)'
154
156
  device: 'tv'
155
- model: ''
157
+ models:
158
+ - regex: 'G7'
159
+ model: 'G7'
156
160
 
157
161
  # Haier
158
162
  Haier:
@@ -212,13 +216,21 @@ Hotel:
212
216
 
213
217
  # Humax
214
218
  Humax:
215
- regex: 'Humax'
219
+ regex: 'Humax|hdr1000s'
216
220
  device: 'tv'
217
221
  models:
218
222
  - regex: '(HD-FOX C|HD (FOX\+|NANO)|iCord (HD\+|MINI|Cable)|(CX|IR)HD-5100(C|S)|HM9503HD)'
219
223
  model: '$1'
220
224
  - regex: 'HMS1000S'
221
225
  model: 'HMS-1000S'
226
+ - regex: 'FVP4000T'
227
+ model: 'FVP-4000T'
228
+ - regex: 'HGS1000S'
229
+ model: 'HGS-1000S'
230
+ - regex: 'HDR1000S'
231
+ model: 'HDR-1000S'
232
+ - regex: 'HDR4000T'
233
+ model: 'HDR-4000T'
222
234
  - regex: 'Humax; ([^);/]+)'
223
235
  model: '$1'
224
236
 
@@ -364,7 +376,9 @@ MediaTek:
364
376
  Medion:
365
377
  regex: 'Medion'
366
378
  device: 'tv'
367
- model: ''
379
+ models:
380
+ - regex: 'MEDION, ([a-z0-9_ \-]+), (?:wired|wireless)'
381
+ model: ''
368
382
 
369
383
  # Miray
370
384
  Miray:
@@ -517,6 +531,8 @@ Sharp:
517
531
  regex: '(?:UMC-)?Sharp'
518
532
  device: 'tv'
519
533
  models:
534
+ - regex: 'SHARP, ([a-z0-9_ \-]+), (?:wired|wireless)'
535
+ model: ''
520
536
  - regex: 'Sharp[,;] ?((?! |HbbTV)[^),;/]+)'
521
537
  model: '$1'
522
538
  - regex: '(LE[0-9]{3}[A-Z]{0,3})'
@@ -699,3 +715,9 @@ Vestel:
699
715
  regex: '(?:Vestel.+VESTEL|VESTEL;)'
700
716
  device: 'tv'
701
717
  model: ''
718
+
719
+ # Unknown
720
+ Unknown:
721
+ regex: 'OEM, ([a-z0-9_ \-]+), (?:wired|wireless)'
722
+ device: 'tv'
723
+ model: ''
data/regexes/oss.yml CHANGED
@@ -5,6 +5,87 @@
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  ###############
7
7
 
8
+ ##########
9
+ # RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS)
10
+ ##########
11
+ - regex: 'Mikrotik/(\d).x'
12
+ name: 'RouterOS'
13
+ version: '$1'
14
+
15
+ ##########
16
+ # Sirin OS (https://sirinlabs.com/sirin-os/)
17
+ ##########
18
+ - regex: 'FINNEY U1'
19
+ name: 'Sirin OS'
20
+ version: ''
21
+
22
+ ##########
23
+ # Nova (https://www.nova.cu/)
24
+ ##########
25
+ - regex: 'Nova; Linux'
26
+ name: 'Nova'
27
+ version: ''
28
+
29
+ ##########
30
+ # Bliss OS (https://blissos.org/)
31
+ ##########
32
+ - regex: 'Android 10.+bliss_maple'
33
+ name: 'Bliss OS'
34
+ version: '12'
35
+
36
+ ##########
37
+ # TencentOS (https://github.com/Tencent/TencentOS-kernel)
38
+ ##########
39
+ - regex: 'Linux/(\d+[\.\d]*).+tlinux'
40
+ name: 'TencentOS'
41
+ version: '$1'
42
+
43
+ ##########
44
+ # Amazon Linux (https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)
45
+ ##########
46
+ - regex: '.+.amzn(\d).x86_64'
47
+ name: 'Amazon Linux'
48
+ version: '$1'
49
+
50
+ ##########
51
+ # COS (China Operating System - https://web.archive.org/web/20170825001023/http://www.china-cos.com/)
52
+ ##########
53
+ - regex: ' COS like Android'
54
+ name: 'China OS'
55
+ version: ''
56
+
57
+ ##########
58
+ # ClearOS Mobile (https://www.clearos.com/products/clearos-editions/clearos-mobile)
59
+ ##########
60
+ - regex: 'Android (\d+[\.\d]*); ClearPHONE'
61
+ name: 'ClearOS Mobile'
62
+ version: '$1'
63
+
64
+ ##########
65
+ # Plasma Mobile (https://plasma-mobile.org/)
66
+ ##########
67
+ - regex: 'Plasma Mobile'
68
+ name: 'Plasma Mobile'
69
+ version: ''
70
+
71
+ ##########
72
+ # KreaTV
73
+ ##########
74
+ - regex: 'KreaTV/0.0.0.0'
75
+ name: 'KreaTV'
76
+ version: ''
77
+
78
+ - regex: 'KreaTV/(\d+[\.\d]+)'
79
+ name: 'KreaTV'
80
+ version: '$1'
81
+
82
+ ##########
83
+ # Opera TV (https://blogs.opera.com/news/2016/01/ces-2016-meet-opera-tv/)
84
+ ##########
85
+ - regex: 'Linux (?:[^;]+); Opera TV(?: Store)?/|^Opera/\d+\.\d+ \(Linux mips'
86
+ name: 'Opera TV'
87
+ version: ''
88
+
8
89
  ##########
9
90
  # GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about)
10
91
  ##########
@@ -132,6 +213,105 @@
132
213
  name: 'FydeOS'
133
214
  version: ''
134
215
 
216
+ ##########
217
+ # Revenge OS
218
+ ##########
219
+ - regex: 'revengeos_x2'
220
+ name: 'Revenge OS'
221
+ version: '2'
222
+
223
+ ##########
224
+ # Lineage OS
225
+ ##########
226
+ - regex: 'lineage_\w+'
227
+ name: 'Lineage OS'
228
+ version: ''
229
+
230
+ #########
231
+ # Resurrection Remix OS (https://resurrectionremix.com/)
232
+ ##########
233
+ - regex: 'Android 8(?:[\d.]*);(?: [\w-]+;)? rr_fortuna3g'
234
+ name: 'Resurrection Remix OS'
235
+ version: '6'
236
+
237
+ ##########
238
+ # Remix OS
239
+ ##########
240
+ - regex: 'RemixOS|Remix (?:Pro|Mini)'
241
+ name: 'Remix OS'
242
+ versions:
243
+ - regex: 'RemixOS 5'
244
+ version: '1'
245
+ - regex: 'RemixOS 6|Remix Mini'
246
+ version: '2'
247
+ - regex: 'Remix Pro'
248
+ version: '3'
249
+
250
+ ##########
251
+ # FreeBSD
252
+ ##########
253
+ - regex: 'FreeBSD.+Android'
254
+ name: 'FreeBSD'
255
+ version: ''
256
+
257
+ ##########
258
+ # Android TV (https://android.com/tv/)
259
+ ##########
260
+ - regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
261
+ name: 'Android TV'
262
+ version: '$1'
263
+
264
+ - regex: 'Android[; ](\d+[\.\d]*).+(?:Android|AT&T) TV'
265
+ name: 'Android TV'
266
+ version: '$1'
267
+
268
+ - regex: 'Windows.+Andr0id TV|.+K_?Android_?TV_'
269
+ name: 'Android TV'
270
+ version: ''
271
+
272
+ ##########
273
+ # Android SDK Level Api
274
+ ##########
275
+ - regex: '\d+/tclwebkit(?:\d+[\.\d]*)'
276
+ name: 'Android'
277
+ versions:
278
+ - regex: '33/tclwebkit'
279
+ version: '13'
280
+ - regex: '3[12]/tclwebkit'
281
+ version: '12'
282
+ - regex: '30/tclwebkit'
283
+ version: '11'
284
+ - regex: '29/tclwebkit'
285
+ version: '10'
286
+ - regex: '28/tclwebkit'
287
+ version: '9'
288
+ - regex: '27/tclwebkit'
289
+ version: '8.1'
290
+ - regex: '26/tclwebkit'
291
+ version: '8'
292
+ - regex: '25/tclwebkit'
293
+ version: '7.1'
294
+ - regex: '24/tclwebkit'
295
+ version: '7'
296
+ - regex: '23/tclwebkit'
297
+ version: '6'
298
+ - regex: '22/tclwebkit'
299
+ version: '5.1'
300
+ - regex: '21/tclwebkit'
301
+ version: '5'
302
+ - regex: '(?:20|19)/tclwebkit'
303
+ version: '4.4'
304
+ - regex: '18/tclwebkit'
305
+ version: '4.3'
306
+ - regex: '17/tclwebkit'
307
+ version: '4.2'
308
+ - regex: '16/tclwebkit'
309
+ version: '4.2'
310
+ - regex: '15/tclwebkit'
311
+ version: '4.0.3'
312
+ - regex: '15/tclwebkit'
313
+ version: '4.0.1'
314
+
135
315
  ##########
136
316
  # Android
137
317
  ##########
@@ -143,7 +323,7 @@
143
323
  name: 'Android'
144
324
  version: ''
145
325
 
146
- - regex: 'Android OS/(\d+[\.\d]*)'
326
+ - regex: '(?:Android OS|OMDroid)[ /](\d+[\.\d]*)'
147
327
  name: 'Android'
148
328
  version: '$1'
149
329
 
@@ -159,7 +339,7 @@
159
339
  name: 'Android'
160
340
  version: '$1'
161
341
 
162
- - regex: '(?:(?:Orca-)?Android|Adr)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
342
+ - regex: '(?:(?:Orca-)?(?<!like )Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
163
343
  name: 'Android'
164
344
  version: '$1'
165
345
 
@@ -175,7 +355,7 @@
175
355
  name: 'Android'
176
356
  version: '$1'
177
357
 
178
- - regex: ' Adr |Android|Silk-Accelerated=[a-z]{4,5}'
358
+ - regex: ' Adr |DDG-Android|(?<!like )Android|Silk-Accelerated=[a-z]{4,5}'
179
359
  name: 'Android'
180
360
  version: ''
181
361
 
@@ -183,14 +363,10 @@
183
363
  name: 'Android'
184
364
  version: '$1'
185
365
 
186
- - regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|.+K_?Android_?TV_|Sonos/.+\(ACR_'
366
+ - regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|Sonos/.+\(ACR_|Linux x86_64; Quest'
187
367
  name: 'Android'
188
368
  version: ''
189
369
 
190
- - regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
191
- name: 'Android'
192
- version: '$1'
193
-
194
370
  # Inverted Android
195
371
  - regex: 'Linux; diordnA[; ](\d+[\.\d]*)'
196
372
  name: 'Android'
@@ -245,6 +421,46 @@
245
421
  ##########
246
422
  # Linux
247
423
  ##########
424
+ # Linspire (https://www.linspirelinux.com/)
425
+ - regex: 'Linspire'
426
+ name: 'Linspire'
427
+ version: ''
428
+
429
+ # LindowsOS (https://web.archive.org/web/20040304161245/http://www.lindows.com/)
430
+ - regex: 'LindowsOS'
431
+ name: 'LindowsOS'
432
+ version: ''
433
+
434
+ # Zenwalk (http://www.zenwalk.org/)
435
+ - regex: 'Zenwalk GNU Linux'
436
+ name: 'Zenwalk'
437
+ version: ''
438
+
439
+ # Kanotix (http://www.kanotix.com/)
440
+ - regex: 'Linux.+kanotix'
441
+ name: 'Kanotix'
442
+ version: ''
443
+
444
+ # moonOS (https://www.moonos.org/)
445
+ - regex: 'moonOS/(\d+.[\d.]+)'
446
+ name: 'moonOS'
447
+ version: '$1'
448
+
449
+ # Foresight Linux (https://www.foresightlinux.org/)
450
+ - regex: 'Foresight Linux'
451
+ name: 'Foresight Linux'
452
+ version: ''
453
+
454
+ # Pardus (https://www.pardus.org.tr/)
455
+ - regex: 'Pardus/(\d+.[\d.]+)'
456
+ name: 'Pardus'
457
+ version: '$1'
458
+
459
+ # Pure OS (https://pureos.net/)
460
+ - regex: 'Librem 5'
461
+ name: 'PureOS'
462
+ version: ''
463
+
248
464
  # OpenWrt (https://openwrt.org/)
249
465
  - regex: 'uclient-fetch'
250
466
  name: 'OpenWrt'
@@ -255,7 +471,7 @@
255
471
  name: 'Roku OS'
256
472
  version: '$1'
257
473
 
258
- - regex: 'Roku(?:OS)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)'
474
+ - regex: 'Roku(?:OS|4640X)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)?'
259
475
  name: 'Roku OS'
260
476
  version: '$1'
261
477
 
@@ -308,6 +524,34 @@
308
524
  name: 'VectorLinux'
309
525
  version: '$1'
310
526
 
527
+ - regex: 'CentOS Stream (\d)'
528
+ name: 'CentOS Stream'
529
+ version: '$1'
530
+
531
+ - regex: '.+.el(\d+(?:[_\.]\d+)*).(?:centos|x86_64)'
532
+ name: 'CentOS'
533
+ version: '$1'
534
+
535
+ - regex: 'CentOS Linux (\d)'
536
+ name: 'CentOS'
537
+ version: '$1'
538
+
539
+ - regex: 'Fedora/.+.fc(\d+)'
540
+ name: 'Fedora'
541
+ version: '$1'
542
+
543
+ - regex: 'Mandriva(?: Linux)?/.+mdv(\d+[\.\d]+)'
544
+ name: 'Mandriva'
545
+ version: '$1'
546
+
547
+ - regex: 'Linux Mint/(\d)'
548
+ name: 'Mint'
549
+ version: '$1'
550
+
551
+ - regex: 'Zorin OS (\d+)'
552
+ name: 'ZorinOS'
553
+ version: '$1'
554
+
311
555
  - regex: 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[\.\d]+)'
312
556
  name: '$1'
313
557
  version: '$2'
@@ -320,12 +564,14 @@
320
564
  name: '$1'
321
565
  version: '$2'
322
566
 
567
+ - regex: '.+redhat-linux-gnu'
568
+ name: 'Red Hat'
569
+ version: ''
570
+
323
571
  - regex: 'OS ROSA; Linux'
324
572
  name: 'Rosa'
325
573
  version: ''
326
574
 
327
- # generic linux match -> end of file
328
-
329
575
  ##########
330
576
  # webOS
331
577
  ##########
@@ -335,12 +581,16 @@
335
581
  versions:
336
582
  - regex: 'WEBOS(\d+[\.\d]+)'
337
583
  version: '$1'
338
- - regex: 'Web0S; Linux/SmartTV.+Chrome/68'
584
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/79'
585
+ version: '6'
586
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/68'
339
587
  version: '5'
340
- - regex: 'Web0S; Linux/SmartTV.+Chrome/53'
588
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/53'
341
589
  version: '4'
342
- - regex: 'Web0S; Linux/SmartTV.+Chrome/38'
590
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/38'
343
591
  version: '3'
592
+ - regex: 'WEBOS1'
593
+ version: '1'
344
594
  - regex: 'Web0S; Linux/SmartTV.+Safari/538'
345
595
  version: '2'
346
596
  - regex: 'Web0S; Linux/SmartTV.+Safari/537'
@@ -358,7 +608,6 @@
358
608
  name: 'MorphOS'
359
609
  version: '$1'
360
610
 
361
-
362
611
  ##########
363
612
  # Windows
364
613
  ##########
@@ -378,7 +627,7 @@
378
627
  name: 'Windows'
379
628
  version: ''
380
629
 
381
- - regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS))/(\d+\.\d+)'
630
+ - regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS)|WINDOWS_64)/(\d+\.\d+)'
382
631
  name: 'Windows'
383
632
  version: '$1'
384
633
 
@@ -438,10 +687,14 @@
438
687
  name: 'Windows'
439
688
  version: '3.1'
440
689
 
441
- - regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS'
690
+ - regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS|ms-office; MSOffice'
442
691
  name: 'Windows'
443
692
  version: ''
444
693
 
694
+ - regex: 'OS/Microsoft_Windows_NT_(\d+\.\d+)'
695
+ name: 'Windows'
696
+ version: '$1'
697
+
445
698
  ##########
446
699
  # Haiku OS
447
700
  ##########
@@ -452,11 +705,11 @@
452
705
  ##########
453
706
  # tvOS (https://developer.apple.com/tvos/)
454
707
  ##########
455
- - regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-5])[_\.]\d+(?:[_.]\d+)*)'
708
+ - regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-6])[_\.]\d+(?:[_.]\d+)*)'
456
709
  name: 'tvOS'
457
710
  version: '$1'
458
711
 
459
- - regex: 'iOS(?:; |/)((?:9|1[0-5]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
712
+ - regex: 'iOS(?:; |/)((?:9|1[0-6]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
460
713
  name: 'tvOS'
461
714
  version: '$1'
462
715
 
@@ -470,27 +723,27 @@
470
723
  ##########
471
724
  # iPadOS (https://www.apple.com/ipados/)
472
725
  ##########
473
- - regex: 'FBMD/iPad;.*FBSV/ ?(1[345]).(\d+[\.\d]*);'
726
+ - regex: 'FBMD/iPad;.*FBSV/ ?(1[3-6]).(\d+[\.\d]*);'
474
727
  name: 'iPadOS'
475
728
  version: '$1.$2'
476
729
 
477
- - regex: 'iPad/(1[345]).(\d+[\.\d]*)'
730
+ - regex: 'iPad/(1[3-6]).(\d+[\.\d]*)'
478
731
  name: 'iPadOS'
479
732
  version: '$1.$2'
480
733
 
481
- - regex: '^iPad(?:\d+[\,\d]*)/(1[345]).(\d+[\.\d]*)'
734
+ - regex: '^iPad(?:\d+[\,\d]*)/(1[3-6]).(\d+[\.\d]*)'
482
735
  name: 'iPadOS'
483
736
  version: '$1.$2'
484
737
 
485
- - regex: 'iPad(?:; iOS|.+CPU OS) ((1[345])+(?:[_\.]\d+)*)'
738
+ - regex: 'iPad(?:; (?:iOS|iPhone OS)|.+CPU OS) ((1[3-6])+(?:[_\.]\d+)*)'
486
739
  name: 'iPadOS'
487
740
  version: '$1'
488
741
 
489
- - regex: 'iOS/(1[345]).(\d+[\.\d]*).+Apple/iPad'
742
+ - regex: 'iOS/(1[3-6]).(\d+[\.\d]*).+Apple/iPad'
490
743
  name: 'iPadOS'
491
744
  version: '$1.$2'
492
745
 
493
- - regex: 'iPhone OS,(1[345]).(\d+[\.\d]*).+iPad'
746
+ - regex: 'iPhone OS,(1[3-6]).(\d+[\.\d]*).+iPad'
494
747
  name: 'iPadOS'
495
748
  version: '$1.$2'
496
749
 
@@ -509,13 +762,27 @@
509
762
  name: 'iOS'
510
763
  version: '$1'
511
764
 
765
+ - regex: 'iOS (\d+[\.\d]+)\)'
766
+ name: 'iOS'
767
+ version: '$1'
768
+
512
769
  - regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[\.\d]+)'
513
770
  name: 'iOS'
514
771
  version: '$1'
515
772
 
516
- - regex: 'CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac))'
773
+ - regex: '^(?!com.apple.Safari.SearchHelper).*CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
517
774
  name: 'iOS'
518
775
  versions:
776
+ - regex: 'Darwin/22.0.0'
777
+ version: '16.0'
778
+ - regex: 'Darwin/21.6.0'
779
+ version: '15.6'
780
+ - regex: 'Darwin/21.5.0'
781
+ version: '15.5'
782
+ - regex: 'Darwin/21.4.0'
783
+ version: '15.4'
784
+ - regex: 'Darwin/21.3.0'
785
+ version: '15.3'
519
786
  - regex: 'Darwin/21.2.0'
520
787
  version: '15.2'
521
788
  - regex: 'Darwin/21.1.0'
@@ -649,7 +916,7 @@
649
916
  name: 'iOS'
650
917
  version: '$1.$2.$3'
651
918
 
652
- - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
919
+ - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
653
920
  name: 'iOS'
654
921
  version: '$1'
655
922
 
@@ -681,7 +948,11 @@
681
948
  name: 'iOS'
682
949
  version: '$1'
683
950
 
684
- - regex: '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
951
+ - regex: '(?:Apple-)?(?<!like )(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
952
+ name: 'iOS'
953
+ version: '$1'
954
+
955
+ - regex: 'dv\(iPh.+ov\((\d+(?:[_\.]\d+)*)\);'
685
956
  name: 'iOS'
686
957
  version: '$1'
687
958
 
@@ -708,9 +979,19 @@
708
979
  ##########
709
980
  # Mac
710
981
  ##########
711
- - regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac'
982
+ - regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac|com.apple.Safari.SearchHelper'
712
983
  name: 'Mac'
713
984
  versions:
985
+ - regex: '(?:x86_64-apple-)?Darwin/?22.0.0'
986
+ version: '13.0'
987
+ - regex: '(?:x86_64-apple-)?Darwin/?21.6.0'
988
+ version: '12.5'
989
+ - regex: '(?:x86_64-apple-)?Darwin/?21.5.0'
990
+ version: '12.4'
991
+ - regex: '(?:x86_64-apple-)?Darwin/?21.4.0'
992
+ version: '12.3'
993
+ - regex: '(?:x86_64-apple-)?Darwin/?21.3.0'
994
+ version: '12.2'
714
995
  - regex: '(?:x86_64-apple-)?Darwin/?21.2.0'
715
996
  version: '12.1'
716
997
  - regex: '(?:x86_64-apple-)?Darwin/?21.1.0'
@@ -866,7 +1147,7 @@
866
1147
  name: 'Mac'
867
1148
  version: '$1'
868
1149
 
869
- - regex: '(?:macOS[/,]|Mac-)(\d+[\.\d]+)'
1150
+ - regex: '(?:macOS[ /,]|Mac-)(\d+[\.\d]+)'
870
1151
  name: 'Mac'
871
1152
  version: '$1'
872
1153
 
@@ -888,10 +1169,17 @@
888
1169
  ##########
889
1170
  # ChromeOS
890
1171
  ##########
891
- - regex: 'CrOS [a-z0-9_]+ .* Chrome/(\d+[\.\d]+)'
1172
+ - regex: 'CrOS [a-z0-9_]+ (\d+[\.\d]+)'
892
1173
  name: 'Chrome OS'
893
1174
  version: '$1'
894
1175
 
1176
+ ##########
1177
+ # Fuchsia
1178
+ ##########
1179
+ - regex: 'Fuchsia'
1180
+ name: 'Fuchsia'
1181
+ version: ''
1182
+
895
1183
  ##########
896
1184
  # BlackBerry
897
1185
  ##########
@@ -1018,20 +1306,6 @@
1018
1306
  name: 'WebTV'
1019
1307
  version: '$1'
1020
1308
 
1021
- ##########
1022
- # Remix OS
1023
- ##########
1024
- - regex: 'RemixOS 5.1.1'
1025
- name: 'Remix OS'
1026
- version: '1'
1027
-
1028
- - regex: 'RemixOS 6.0'
1029
- name: 'Remix OS'
1030
- version: '2'
1031
-
1032
- - regex: 'RemixOS'
1033
- name: 'Remix OS'
1034
- version: ''
1035
1309
 
1036
1310
  ##########
1037
1311
  # Unix
@@ -1083,10 +1357,14 @@
1083
1357
  name: 'Nintendo'
1084
1358
  version: '$1'
1085
1359
 
1086
- - regex: 'PlayStation ?([34])'
1360
+ - regex: 'PlayStation.+; Linux (\d+[\.\d]+)'
1087
1361
  name: 'PlayStation'
1088
1362
  version: '$1'
1089
1363
 
1364
+ - regex: 'PlayStation ?(\d)(?:[/ ](?:Pro )?(\d+[\.\d]+))?'
1365
+ name: 'PlayStation'
1366
+ version: '$1.$2'
1367
+
1090
1368
  - regex: 'Xbox|KIN\.(?:One|Two)'
1091
1369
  name: 'Xbox'
1092
1370
  version: '360'
@@ -1112,7 +1390,11 @@
1112
1390
  ###########
1113
1391
  # Linux (Generic)
1114
1392
  ###########
1115
- - regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)'
1393
+ - regex: 'Linux/(\d+[\.\d]+)'
1394
+ name: 'GNU/Linux'
1395
+ version: '$1'
1396
+
1397
+ - regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)|.+(?:pc|unknown)-linux-gnu'
1116
1398
  name: 'GNU/Linux'
1117
1399
  version: ''
1118
1400