device_detector 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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