device_detector 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -6
- data/lib/device_detector/browser.rb +364 -0
- data/lib/device_detector/client.rb +8 -0
- data/lib/device_detector/device.rb +1124 -4
- data/lib/device_detector/os.rb +36 -11
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector/version_extractor.rb +9 -0
- data/lib/device_detector.rb +57 -13
- data/regexes/bots.yml +551 -58
- data/regexes/client/browser_engine.yml +7 -1
- data/regexes/client/browsers.yml +594 -71
- data/regexes/client/feed_readers.yml +4 -10
- data/regexes/client/libraries.yml +47 -2
- data/regexes/client/mediaplayers.yml +25 -1
- data/regexes/client/mobile_apps.yml +447 -77
- data/regexes/client/pim.yml +49 -1
- data/regexes/device/cameras.yml +5 -5
- data/regexes/device/car_browsers.yml +16 -0
- data/regexes/device/consoles.yml +6 -0
- data/regexes/device/mobiles.yml +12905 -4561
- data/regexes/device/portable_media_player.yml +20 -3
- data/regexes/device/shell_tv.yml +117 -0
- data/regexes/device/televisions.yml +426 -35
- data/regexes/oss.yml +567 -139
- data/spec/device_detector/concrete_user_agent_spec.rb +30 -42
- data/spec/device_detector/detector_fixtures_spec.rb +9 -5
- data/spec/device_detector/device_spec.rb +26 -10
- data/spec/fixtures/client/browser.yml +1463 -391
- data/spec/fixtures/client/feed_reader.yml +0 -12
- data/spec/fixtures/client/library.yml +91 -37
- data/spec/fixtures/client/mediaplayer.yml +30 -0
- data/spec/fixtures/client/mobile_app.yml +498 -45
- data/spec/fixtures/client/pim.yml +60 -0
- data/spec/fixtures/detector/bots.yml +1189 -568
- data/spec/fixtures/detector/camera.yml +12 -26
- data/spec/fixtures/detector/car_browser.yml +151 -15
- data/spec/fixtures/detector/console.yml +70 -48
- data/spec/fixtures/detector/desktop.yml +2041 -916
- data/spec/fixtures/detector/feature_phone.yml +895 -189
- data/spec/fixtures/detector/feed_reader.yml +50 -77
- data/spec/fixtures/detector/mediaplayer.yml +79 -26
- data/spec/fixtures/detector/mobile_apps.yml +726 -72
- data/spec/fixtures/detector/peripheral.yml +271 -0
- data/spec/fixtures/detector/phablet.yml +3635 -1596
- data/spec/fixtures/detector/portable_media_player.yml +355 -46
- data/spec/fixtures/detector/smart_display.yml +183 -9
- data/spec/fixtures/detector/smart_speaker.yml +13 -8
- data/spec/fixtures/detector/smartphone-1.yml +4002 -4286
- data/spec/fixtures/detector/smartphone-10.yml +3771 -4763
- data/spec/fixtures/detector/smartphone-11.yml +3615 -4692
- data/spec/fixtures/detector/smartphone-12.yml +3856 -4764
- data/spec/fixtures/detector/smartphone-13.yml +4213 -4713
- data/spec/fixtures/detector/smartphone-14.yml +4039 -4497
- data/spec/fixtures/detector/smartphone-15.yml +5642 -2956
- data/spec/fixtures/detector/smartphone-16.yml +4739 -5082
- data/spec/fixtures/detector/smartphone-17.yml +4832 -4275
- data/spec/fixtures/detector/smartphone-18.yml +9806 -0
- data/spec/fixtures/detector/smartphone-19.yml +9965 -0
- data/spec/fixtures/detector/smartphone-2.yml +4842 -2589
- data/spec/fixtures/detector/smartphone-20.yml +9710 -0
- data/spec/fixtures/detector/smartphone-21.yml +8693 -0
- data/spec/fixtures/detector/smartphone-22.yml +10178 -0
- data/spec/fixtures/detector/smartphone-23.yml +9453 -0
- data/spec/fixtures/detector/smartphone-24.yml +9843 -0
- data/spec/fixtures/detector/smartphone-25.yml +9703 -0
- data/spec/fixtures/detector/smartphone-26.yml +10007 -0
- data/spec/fixtures/detector/smartphone-27.yml +4927 -0
- data/spec/fixtures/detector/smartphone-3.yml +4387 -4427
- data/spec/fixtures/detector/smartphone-4.yml +3597 -4582
- data/spec/fixtures/detector/smartphone-5.yml +4066 -5022
- data/spec/fixtures/detector/smartphone-6.yml +3455 -4621
- data/spec/fixtures/detector/smartphone-7.yml +3574 -4574
- data/spec/fixtures/detector/smartphone-8.yml +4617 -4704
- data/spec/fixtures/detector/smartphone-9.yml +4080 -5035
- data/spec/fixtures/detector/smartphone.yml +3244 -4234
- data/spec/fixtures/detector/tablet-1.yml +4652 -4492
- data/spec/fixtures/detector/tablet-2.yml +3515 -4434
- data/spec/fixtures/detector/tablet-3.yml +3418 -4351
- data/spec/fixtures/detector/tablet-4.yml +5149 -3200
- data/spec/fixtures/detector/tablet-5.yml +9273 -0
- data/spec/fixtures/detector/tablet-6.yml +4588 -0
- data/spec/fixtures/detector/tablet.yml +1621 -2613
- data/spec/fixtures/detector/tv-1.yml +2501 -0
- data/spec/fixtures/detector/tv.yml +7826 -3114
- data/spec/fixtures/detector/unknown.yml +370 -531
- data/spec/fixtures/detector/wearable.yml +863 -9
- data/spec/fixtures/parser/oss.yml +1350 -21
- data/spec/fixtures/parser/vendorfragments.yml +53 -53
- metadata +35 -5
@@ -19,6 +19,11 @@
|
|
19
19
|
name: 'bPod'
|
20
20
|
version: ''
|
21
21
|
|
22
|
+
# Facebook Messenger Lite
|
23
|
+
- regex: 'MessengerLiteForiOS.(?:FBAV)(?:[ /]([\d\.]+))?'
|
24
|
+
name: 'Facebook Messenger Lite'
|
25
|
+
version: '$1'
|
26
|
+
|
22
27
|
# Facebook Messenger
|
23
28
|
- regex: '(?:MessengerForiOS|MESSENGER).(?:FBAV)(?:[ /]([\d\.]+))?'
|
24
29
|
name: 'Facebook Messenger'
|
@@ -53,9 +58,12 @@
|
|
53
58
|
version: ''
|
54
59
|
|
55
60
|
# WeChat
|
56
|
-
- regex: 'MicroMessenger/([
|
61
|
+
- regex: 'MicroMessenger/([^; ]+)'
|
57
62
|
name: 'WeChat'
|
58
63
|
version: '$1'
|
64
|
+
- regex: 'WeChatShareExtensionNew/([\d\.]+)'
|
65
|
+
name: 'WeChat Share Extension'
|
66
|
+
version: '$1'
|
59
67
|
|
60
68
|
# DingTalk
|
61
69
|
- regex: 'DingTalk/([0-9\.]+)'
|
@@ -68,7 +76,7 @@
|
|
68
76
|
version: '$1'
|
69
77
|
|
70
78
|
# Pinterest
|
71
|
-
- regex: 'Pinterest(?:/([\d\.]+))?'
|
79
|
+
- regex: 'Pinterest(?: for (?:Android|iOS))?(?:/([\d\.]+))?'
|
72
80
|
name: 'Pinterest'
|
73
81
|
version: '$1'
|
74
82
|
|
@@ -82,6 +90,16 @@
|
|
82
90
|
name: 'YouTube'
|
83
91
|
version: '$1'
|
84
92
|
|
93
|
+
# Netflix (https://play.google.com/store/apps/details?id=com.netflix.mediaclient)
|
94
|
+
- regex: 'com.netflix.mediaclient(?:/(\d+\.[\d\.]+))?'
|
95
|
+
name: 'Netflix'
|
96
|
+
version: '$1'
|
97
|
+
|
98
|
+
# Downcast (www.downcastapp.com | https://apps.apple.com/us/app/downcast/id393858566)
|
99
|
+
- regex: 'Downcast/(\d+\.[\d\.]+)?(?:.+(?:!Mac)|$)'
|
100
|
+
name: 'Downcast'
|
101
|
+
version: '$1'
|
102
|
+
|
85
103
|
# AFNetworking generic
|
86
104
|
- regex: '([^/]+)/(\d+(?:\.\d+)+) \((?:iPhone|iPad); iOS [0-9\.]+; Scale/[0-9\.]+\)'
|
87
105
|
name: '$1'
|
@@ -101,148 +119,131 @@
|
|
101
119
|
- regex: 'Instacast(?:HD)?/(\d\.[\d\.abc]+) CFNetwork/([\d\.]+) Darwin/([\d\.]+)'
|
102
120
|
name: 'Instacast'
|
103
121
|
version: '$1'
|
104
|
-
-
|
105
|
-
regex: 'Podcasts/([\d\.]+)'
|
122
|
+
- regex: 'Podcasts/([\d\.]+)'
|
106
123
|
name: 'Podcasts'
|
107
124
|
version: '$1'
|
108
|
-
-
|
109
|
-
regex: 'Pocket Casts(?:, (?:Android|iOS) v([\d\.]+))?'
|
125
|
+
- regex: 'Pocket Casts(?:, (?:Android|iOS) v([\d\.]+))?'
|
110
126
|
name: 'Pocket Casts'
|
111
127
|
version: '$1'
|
112
|
-
-
|
113
|
-
regex: 'Podcat/([\d\.]+)'
|
128
|
+
- regex: 'Podcat/([\d\.]+)'
|
114
129
|
name: 'Podcat'
|
115
130
|
version: '$1'
|
116
|
-
|
117
|
-
-
|
118
|
-
regex: 'BeyondPod'
|
131
|
+
- regex: 'BeyondPod'
|
119
132
|
name: 'BeyondPod'
|
120
133
|
version:
|
121
|
-
-
|
122
|
-
regex: 'AntennaPod/?([\d\.]+)?'
|
134
|
+
- regex: 'AntennaPod/?([\d\.]+)?'
|
123
135
|
name: 'AntennaPod'
|
124
136
|
version: '$1'
|
125
|
-
-
|
126
|
-
regex: 'Overcast/([\d\.]+)'
|
137
|
+
- regex: 'Overcast/([\d\.]+)'
|
127
138
|
name: 'Overcast'
|
128
139
|
version: '$1'
|
129
|
-
-
|
130
|
-
regex: '(?:CastBox|fm.castbox.audiobook.radio.podcast)/?([\d\.]+)?'
|
140
|
+
- regex: '(?:CastBox|fm.castbox.audiobook.radio.podcast)/?([\d\.]+)?'
|
131
141
|
name: 'CastBox'
|
132
142
|
version: '$1'
|
133
|
-
-
|
134
|
-
regex: 'Player FM'
|
143
|
+
- regex: 'Player FM'
|
135
144
|
name: 'Player FM'
|
136
145
|
version: ''
|
137
|
-
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
-
|
142
|
-
regex: 'PodcastRepublic/([\d\.]+)'
|
146
|
+
- regex: 'Podkicker( (?:Pro|Classic))?/([\d\.]+)'
|
147
|
+
name: 'Podkicker$1'
|
148
|
+
version: '$2'
|
149
|
+
- regex: 'PodcastRepublic/([\d\.]+)'
|
143
150
|
name: 'Podcast Republic'
|
144
151
|
version: '$1'
|
145
|
-
-
|
146
|
-
regex: 'Castro/(\d+)'
|
152
|
+
- regex: 'Castro/(\d+)'
|
147
153
|
name: 'Castro'
|
148
154
|
version: '$1'
|
149
|
-
-
|
150
|
-
regex: 'Castro 2 ([\d\.]+)/[\d]+ Like iTunes'
|
155
|
+
- regex: 'Castro 2 ([\d\.]+)/[\d]+ Like iTunes'
|
151
156
|
name: 'Castro 2'
|
152
157
|
version: '$1'
|
153
|
-
-
|
154
|
-
regex: 'Castro 2'
|
158
|
+
- regex: 'Castro 2'
|
155
159
|
name: 'Castro 2'
|
156
160
|
version: ''
|
157
|
-
-
|
158
|
-
regex: 'DoggCatcher'
|
161
|
+
- regex: 'DoggCatcher'
|
159
162
|
name: 'DoggCatcher'
|
160
163
|
version:
|
161
|
-
-
|
162
|
-
regex: 'PodcastAddict/v([\d]+)'
|
164
|
+
- regex: 'PodcastAddict/v([\d]+)'
|
163
165
|
name: 'Podcast & Radio Addict'
|
164
166
|
version: '$1'
|
165
|
-
-
|
166
|
-
regex: 'Podcat/([\d]+) CFNetwork/([\d\.]+) Darwin/([\d\.]+)'
|
167
|
+
- regex: 'Podcat(?:%202)?/([\d]+) CFNetwork'
|
167
168
|
name: 'Podcat'
|
168
169
|
version: '$1'
|
169
|
-
-
|
170
|
-
regex: 'i[cC]atcher[^\d]+([\d\.]+)'
|
170
|
+
- regex: 'iCatcher[^\d]+([\d\.]+)'
|
171
171
|
name: 'iCatcher'
|
172
172
|
version: '$1'
|
173
|
-
-
|
174
|
-
regex: 'YelpApp/([\d\.]+)'
|
173
|
+
- regex: 'YelpApp/([\d\.]+)'
|
175
174
|
name: 'Yelp Mobile'
|
176
175
|
version: '$1'
|
177
|
-
-
|
178
|
-
regex: 'jp.co.yahoo.android.yjtop/([\d\.]+)'
|
176
|
+
- regex: 'jp.co.yahoo.android.yjtop/([\d\.]+)'
|
179
177
|
name: 'Yahoo! Japan'
|
180
178
|
version: '$1'
|
181
|
-
-
|
182
|
-
regex: 'RSSRadio/([\d]+)?'
|
179
|
+
- regex: 'RSSRadio/([\d]+)?'
|
183
180
|
name: 'RSSRadio'
|
184
181
|
version: '$1'
|
185
|
-
-
|
186
|
-
regex: 'SogouSearch Android[\d\.]+ version([\d\.]+)?'
|
182
|
+
- regex: 'SogouSearch Android[\d\.]+ version([\d\.]+)?'
|
187
183
|
name: 'SogouSearch App'
|
188
184
|
version: '$1'
|
189
|
-
-
|
190
|
-
regex: 'NewsArticle/([\d\.]+)?'
|
185
|
+
- regex: 'NewsArticle/([\d\.]+)?'
|
191
186
|
name: 'NewsArticle App'
|
192
187
|
version: '$1'
|
193
|
-
-
|
194
|
-
regex: 'tieba/([\d\.]+)?'
|
188
|
+
- regex: 'tieba/([\d\.]+)?'
|
195
189
|
name: 'tieba'
|
196
190
|
version: '$1'
|
197
|
-
-
|
198
|
-
regex: 'com\.douban\.group/([\d\.]+)?'
|
191
|
+
- regex: 'com\.douban\.group/([\d\.]+)?'
|
199
192
|
name: 'douban App'
|
200
193
|
version: '$1'
|
201
|
-
-
|
202
|
-
regex: 'BingWeb/([\d\.]+)?'
|
194
|
+
- regex: 'BingWeb/([\d\.]+)?'
|
203
195
|
name: 'BingWebApp'
|
204
196
|
version: '$1'
|
205
|
-
-
|
206
|
-
regex: 'GSA/([\d\.]+)?'
|
197
|
+
- regex: '(?:com.google.GoogleMobile|GSA)/([\d\.]+)?'
|
207
198
|
name: 'Google Search App'
|
208
199
|
version: '$1'
|
209
|
-
-
|
210
|
-
regex: 'Flipboard/([\d\.]+)?'
|
200
|
+
- regex: 'Flipboard/([\d\.]+)?'
|
211
201
|
name: 'Flipboard App'
|
212
202
|
version: '$1'
|
213
|
-
-
|
214
|
-
regex: 'Instagram[ /]([\d\.]+)?'
|
203
|
+
- regex: 'Instagram[ /]([\d\.]+)?'
|
215
204
|
name: 'Instagram App'
|
216
205
|
version: '$1'
|
217
|
-
-
|
218
|
-
regex: 'baiduboxapp/([\d\.]+)?'
|
206
|
+
- regex: 'baiduboxapp/([\d\.]+)?'
|
219
207
|
name: 'Baidu Box App'
|
220
208
|
version: '$1'
|
221
|
-
-
|
222
|
-
regex: 'Crosswalk(?!.*(?:Streamy|QwantMobile))/([\d\.]+)?'
|
209
|
+
- regex: 'Crosswalk(?!.*(?:Streamy|QwantMobile))/([\d\.]+)?'
|
223
210
|
name: 'CrosswalkApp'
|
224
211
|
version: '$1'
|
225
|
-
-
|
226
|
-
regex: 'Twitter for iPhone[/]?([\d\.]+)?'
|
212
|
+
- regex: 'Twitter for iPhone[/]?([\d\.]+)?'
|
227
213
|
name: 'Twitter'
|
228
214
|
version: '$1'
|
229
|
-
-
|
230
|
-
regex: 'Twitter/([\d\.]+)'
|
215
|
+
- regex: 'Twitter/([\d\.]+)'
|
231
216
|
name: 'Twitter'
|
232
217
|
version: '$1'
|
233
|
-
-
|
234
|
-
regex: 'TwitterAndroid[/]?([\d\.]+)?'
|
218
|
+
- regex: 'TwitterAndroid[/]?([\d\.]+)?'
|
235
219
|
name: 'Twitter'
|
236
220
|
version: '$1'
|
237
|
-
|
238
|
-
-
|
239
|
-
|
221
|
+
# Pocket Casts (https://pocketcasts.com)
|
222
|
+
- regex: '^Pocket Casts'
|
223
|
+
name: 'Pocket Casts'
|
224
|
+
version: ''
|
225
|
+
# Gaana (https://gaana.com)
|
226
|
+
- regex: '^GaanaAndroid-([\d\.]+)'
|
227
|
+
name: 'Gaana'
|
228
|
+
version: '$1'
|
229
|
+
- regex: 'TopBuzz/([\d\.]+)'
|
240
230
|
name: 'TopBuzz'
|
241
231
|
version: '$1'
|
242
|
-
-
|
243
|
-
regex: 'Snapchat/([\d\.]+)'
|
232
|
+
- regex: 'Snapchat/([\d\.]+)'
|
244
233
|
name: 'Snapchat'
|
245
234
|
version: '$1'
|
235
|
+
- regex: 'AhaRadio2/([\d\.]+)'
|
236
|
+
name: 'Aha Radio 2'
|
237
|
+
version: '$1'
|
238
|
+
# Unibox (https://apps.apple.com/app/id933879046)
|
239
|
+
- regex: 'Unibox/([\d\.]+)'
|
240
|
+
name: 'Unibox'
|
241
|
+
version: ''
|
242
|
+
|
243
|
+
# Strimio (https://www.strimio.com/)
|
244
|
+
- regex: 'strimio(?:-desktop)/(\d+\.(?:[\.\d]+))?'
|
245
|
+
name: 'Strimio'
|
246
|
+
version: '$1'
|
246
247
|
|
247
248
|
# UnityPlayer
|
248
249
|
- regex: 'UnityPlayer/([\d\.]+)'
|
@@ -272,6 +273,375 @@
|
|
272
273
|
name: 'Siri'
|
273
274
|
version: '1.0'
|
274
275
|
|
275
|
-
- regex: 'LinkedIn
|
276
|
+
- regex: 'LinkedIn(?:App)?(?:/([\d\.]+))?'
|
276
277
|
name: 'LinkedIn'
|
277
278
|
version: '$1'
|
279
|
+
|
280
|
+
# https://apps.apple.com/ru/app/instapaper/id288545208
|
281
|
+
- regex: 'Instapaper/([\d\.]+)'
|
282
|
+
name: 'Instapaper'
|
283
|
+
version: '$1'
|
284
|
+
|
285
|
+
# https://apps.apple.com/us/app/keeper-password-manager/id287170072
|
286
|
+
- regex: 'Keeper/([\d\.]+)'
|
287
|
+
name: 'Keeper Password Manager'
|
288
|
+
version: '$1'
|
289
|
+
|
290
|
+
# https://apps.apple.com/us/app/skyeng-teachers/id1483049537
|
291
|
+
- regex: 'Skyeng Teachers/([\d\.]+)'
|
292
|
+
name: 'Skyeng Teachers'
|
293
|
+
version: '$1'
|
294
|
+
|
295
|
+
- regex: 'Kik/([\d\.]+) \(Android'
|
296
|
+
name: 'Kik'
|
297
|
+
version: '$1'
|
298
|
+
|
299
|
+
- regex: 'Procast/?([\d\.]+)?'
|
300
|
+
name: 'Procast'
|
301
|
+
version: '$1'
|
302
|
+
|
303
|
+
# DeviantArt (https://apps.apple.com/us/app/deviantart/id925219396)
|
304
|
+
- regex: 'DeviantArt/([\d\.]+)'
|
305
|
+
name: 'DeviantArt'
|
306
|
+
version: ''
|
307
|
+
|
308
|
+
# Discord (https://apps.apple.com/us/app/discord-talk-chat-hang-out/id985746746)
|
309
|
+
- regex: 'Discord/([\d\.]+)'
|
310
|
+
name: 'Discord'
|
311
|
+
version: ''
|
312
|
+
|
313
|
+
# Covenant Eyes (https://apps.apple.com/us/app/covenant-eyes/id335318146)
|
314
|
+
- regex: 'Covenant%20Eyes/([\d\.]+)'
|
315
|
+
name: 'Covenant Eyes'
|
316
|
+
version: '$1'
|
317
|
+
|
318
|
+
# HP Smart (https://apps.apple.com/us/app/hp-smart/id469284907)
|
319
|
+
- regex: 'HP%20Smart/([\d\.]+)'
|
320
|
+
name: 'HP Smart'
|
321
|
+
version: ''
|
322
|
+
|
323
|
+
# Bitsboard (https://apps.apple.com/us/app/bitsboard-flashcards-games/id516842210)
|
324
|
+
- regex: 'Bitsboard/([\d\.]+)'
|
325
|
+
name: 'Bitsboard'
|
326
|
+
version: '$1'
|
327
|
+
|
328
|
+
# BetBull (https://apps.apple.com/us/app/betbull-sport-tips-casino/id1032680895)
|
329
|
+
- regex: 'Betbull/([\d\.]+)'
|
330
|
+
name: 'BetBull'
|
331
|
+
version: ''
|
332
|
+
|
333
|
+
# U-Cursos (https://apps.apple.com/us/app/u-cursos/id834515435)
|
334
|
+
- regex: 'U-Cursos/([\d\.]+)'
|
335
|
+
name: 'U-Cursos'
|
336
|
+
version: ''
|
337
|
+
|
338
|
+
# https://apps.apple.com/mt/app/1password-password-manager/id568903335
|
339
|
+
- regex: '1PasswordThumbs/([\d\.]+)'
|
340
|
+
name: '1Password'
|
341
|
+
version: '$1'
|
342
|
+
|
343
|
+
- regex: '(?:Microsoft Office )?(Access|Excel|OneDrive for Business|OneNote|PowerPoint|Project|Publisher|Visio|Word)[ /]([\d\.]+)'
|
344
|
+
name: 'Microsoft Office $1'
|
345
|
+
version: '$2'
|
346
|
+
|
347
|
+
# https://apps.apple.com/us/app/microsoft-onedrive/id477537958
|
348
|
+
- regex: 'OneDriveiOSApp/([\d\.]+)'
|
349
|
+
name: 'Microsoft OneDrive'
|
350
|
+
version: '$1'
|
351
|
+
|
352
|
+
- regex: 'Microsoft Office Mobile/([\d\.]+)'
|
353
|
+
name: 'Microsoft Office Mobile'
|
354
|
+
version: '$1'
|
355
|
+
|
356
|
+
- regex: 'OC/([\d\.]+) \(Skype for Business\)'
|
357
|
+
name: 'Skype for Business'
|
358
|
+
version: '$1'
|
359
|
+
|
360
|
+
# TikTok (https://apps.apple.com/app/id835599320 | https://play.google.com/store/apps/details?id=com.zhiliaoapp.musically)
|
361
|
+
- regex: '(?:TikTok[/ ]|musical_ly_|AppName/musical_ly app_version/)(\d+\.(?:[\.\d]+))?'
|
362
|
+
name: 'TikTok'
|
363
|
+
version: '$1'
|
364
|
+
|
365
|
+
# https://apps.apple.com/app/id393499958
|
366
|
+
- regex: 'NAVER/(\d+[\.\d]+) CFNetwork'
|
367
|
+
name: 'Naver'
|
368
|
+
version: '$1'
|
369
|
+
|
370
|
+
# https://apps.apple.com/app/id1026349850
|
371
|
+
- regex: 'Copied/(\d+[\.\d]+) CFNetwork'
|
372
|
+
name: 'Copied'
|
373
|
+
version: ''
|
374
|
+
|
375
|
+
# https://apps.apple.com/app/id448639966
|
376
|
+
- regex: 'Pic%20Collage/(\d+[\.\d]+) CFNetwork'
|
377
|
+
name: 'Pic Collage'
|
378
|
+
version: '$1'
|
379
|
+
|
380
|
+
# https://apps.apple.com/app/id506003812
|
381
|
+
- regex: 'Papers/(\d+[\.\d]+) CFNetwork'
|
382
|
+
name: 'Papers'
|
383
|
+
version: '$1'
|
384
|
+
|
385
|
+
# https://apps.apple.com/app/id331787573
|
386
|
+
- regex: 'RoboForm/(\d+[\.\d]+) CFNetwork'
|
387
|
+
name: 'RoboForm'
|
388
|
+
version: ''
|
389
|
+
|
390
|
+
# https://apps.apple.com/app/id618783545
|
391
|
+
- regex: 'Slack/(\d+[\.\d]+) CFNetwork'
|
392
|
+
name: 'Slack'
|
393
|
+
version: ''
|
394
|
+
|
395
|
+
# https://apps.apple.com/us/app/id362057947
|
396
|
+
- regex: 'KAKAOTALK (\d+\.(?:[\.\d]+))?'
|
397
|
+
name: 'KakaoTalk'
|
398
|
+
version: '$1'
|
399
|
+
|
400
|
+
# https://apps.apple.com/us/app/shopee-t%E1%BA%BFt-sale-27-01/id959841449
|
401
|
+
- regex: 'ShopeeVN/([\d\.]+)'
|
402
|
+
name: 'Shopee'
|
403
|
+
version: '$1'
|
404
|
+
|
405
|
+
# https://apps.apple.com/us/app/sport1/id1185932089
|
406
|
+
- regex: 'SPORT1/([\d\.]+)'
|
407
|
+
name: 'SPORT1'
|
408
|
+
version: ''
|
409
|
+
|
410
|
+
# https://apps.apple.com/us/app/clovia-lingerie-shopping-app/id1243996857
|
411
|
+
- regex: 'Clovia/([\d\.]+)'
|
412
|
+
name: 'Clovia'
|
413
|
+
version: '$1'
|
414
|
+
|
415
|
+
# https://apps.apple.com/us/app/showme-interactive-whiteboard/id445066279
|
416
|
+
- regex: 'ShowMe/([\d\.]+)'
|
417
|
+
name: 'ShowMe'
|
418
|
+
version: '$1'
|
419
|
+
|
420
|
+
# https://apps.apple.com/us/app/wattpad-read-write-stories/id306310789
|
421
|
+
- regex: 'Wattpad/([\d\.]+)'
|
422
|
+
name: 'Wattpad'
|
423
|
+
version: '$1'
|
424
|
+
|
425
|
+
# https://apps.apple.com/us/app/the-wall-street-journal/id364387007
|
426
|
+
- regex: 'WSJ/([\d\.]+)'
|
427
|
+
name: 'The Wall Street Journal'
|
428
|
+
version: ''
|
429
|
+
|
430
|
+
# https://apps.apple.com/us/app/wh-question-cards-pro-who-what-when-where-why/id544870563
|
431
|
+
- regex: 'WH%20Questions/([\d\.]+)'
|
432
|
+
name: 'WH Questions'
|
433
|
+
version: '$1'
|
434
|
+
|
435
|
+
# https://apps.apple.com/us/app/whisper-share-express-meet/id506141837
|
436
|
+
- regex: 'whisper/([\d\.]+)'
|
437
|
+
name: 'Whisper'
|
438
|
+
version: ''
|
439
|
+
|
440
|
+
# https://apps.apple.com/us/app/opal-travel/id941006607
|
441
|
+
- regex: 'Opal/([\d\.]+)'
|
442
|
+
name: 'Opal Travel'
|
443
|
+
version: '$1'
|
444
|
+
|
445
|
+
# https://apps.apple.com/us/app/zalo/id579523206
|
446
|
+
- regex: 'Zalo/([\d\.]+)'
|
447
|
+
name: 'Zalo'
|
448
|
+
version: '$1'
|
449
|
+
|
450
|
+
# https://apps.apple.com/us/app/%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81/id1050704155
|
451
|
+
- regex: 'Yandex/([\d\.]+)'
|
452
|
+
name: 'Yandex'
|
453
|
+
version: ''
|
454
|
+
|
455
|
+
- regex: 'Zoho%20Chat/([\d\.]+)'
|
456
|
+
name: 'Zoho Chat'
|
457
|
+
version: '$1'
|
458
|
+
|
459
|
+
# Thunder (https://xl11.xunlei.com/)
|
460
|
+
- regex: 'Thunder/(\d+[\.\d]+)'
|
461
|
+
name: 'Thunder'
|
462
|
+
version: '$1'
|
463
|
+
|
464
|
+
# CGN (https://www.cgn.it/)
|
465
|
+
- regex: 'CGNBrowser/(\d+[\.\d]+)'
|
466
|
+
name: 'CGN'
|
467
|
+
version: '$1'
|
468
|
+
|
469
|
+
# Podbean (http://podbean.com | https://play.google.com/store/apps/details?id=com.podbean.app.podcast)
|
470
|
+
- regex: 'Podbean/.+App (\d+[\.\d]+)'
|
471
|
+
name: 'Podbean'
|
472
|
+
version: '$1'
|
473
|
+
|
474
|
+
# Alexa Media Player
|
475
|
+
- regex: 'AlexaMediaPlayer/(\d+[\.\d]+)'
|
476
|
+
name: 'Alexa Media Player'
|
477
|
+
version: '$1'
|
478
|
+
|
479
|
+
# TuneIn Radio Pro
|
480
|
+
- regex: 'TuneIn Radio Pro(?:[^/]+)?/(\d+[\.\d]+)'
|
481
|
+
name: 'TuneIn Radio Pro'
|
482
|
+
version: '$1'
|
483
|
+
- regex: 'TuneIn(?: Radio(?:[^/]+)?)?/(\d+[\.\d]+)'
|
484
|
+
name: 'TuneIn Radio'
|
485
|
+
version: '$1'
|
486
|
+
|
487
|
+
# Podcaster
|
488
|
+
- regex: 'Podcaster/(\d+[\.\d]+)'
|
489
|
+
name: 'Podcaster'
|
490
|
+
version: '$1'
|
491
|
+
|
492
|
+
# DevCasts (https://apps.apple.com/app/id1481596184)
|
493
|
+
- regex: 'devcasts/(\d+[\.\d]+)'
|
494
|
+
name: 'DevCasts'
|
495
|
+
version: '$1'
|
496
|
+
|
497
|
+
# Swoot
|
498
|
+
- regex: 'Swoot/(\d+[\.\d]+)'
|
499
|
+
name: 'Swoot'
|
500
|
+
version: '$1'
|
501
|
+
|
502
|
+
# RadioPublic (https://play.google.com/store/apps/details?id=com.radiopublic.android)
|
503
|
+
- regex: 'RadioPublic/android-(\d+[\.\d]+)'
|
504
|
+
name: 'RadioPublic'
|
505
|
+
version: '$1'
|
506
|
+
|
507
|
+
# Podimo (https://play.google.com/store/apps/details?id=com.podimo)
|
508
|
+
- regex: 'Podimo/(\d+[\.\d]+)'
|
509
|
+
name: 'Podimo'
|
510
|
+
version: '$1'
|
511
|
+
|
512
|
+
# Evolve Podcast (https://apps.apple.com/us/app/id1199070742)
|
513
|
+
- regex: 'com.evolve.podcast/(\d+[\.\d]+)'
|
514
|
+
name: 'Evolve Podcast'
|
515
|
+
version: '$1'
|
516
|
+
|
517
|
+
- regex: ' Rocket.Chat\+?/(\d+[\.\d]+)'
|
518
|
+
name: 'Rocket Chat'
|
519
|
+
version: '$1'
|
520
|
+
|
521
|
+
# Pandora
|
522
|
+
- regex: '^Pandora Audio.+Android'
|
523
|
+
name: 'Pandora'
|
524
|
+
version: ''
|
525
|
+
|
526
|
+
# NPR One https://play.google.com/store/apps/details?id=org.npr.one
|
527
|
+
- regex: '^NPROneAndroid'
|
528
|
+
name: 'NPR One'
|
529
|
+
version: ''
|
530
|
+
|
531
|
+
# Wirtschafts Woche Nachrichte https://apps.apple.com/de/app/wirtschaftswoche-nachrichten/id1339187646
|
532
|
+
- regex: '^WirtschaftsWoche-iOS-(\d+[\.\d]+)'
|
533
|
+
name: 'Wirtschafts Woche'
|
534
|
+
version: '$1'
|
535
|
+
|
536
|
+
# Outlook https://apps.apple.com/ru/app/microsoft-outlook/id951937596
|
537
|
+
- regex: '^Outlook-iOS/.+\((\d+[\.\d]+)\)$'
|
538
|
+
name: 'Microsoft Outlook'
|
539
|
+
version: '$1'
|
540
|
+
|
541
|
+
- regex: '^TVirl/(\d+[\.\d]+)'
|
542
|
+
name: 'TVirl'
|
543
|
+
version: '$1'
|
544
|
+
|
545
|
+
# ChMate https://play.google.com/store/apps/details?id=jp.co.airfront.android.a2chMate
|
546
|
+
- regex: '2?chMate/(\d+[\.\d]+)'
|
547
|
+
name: 'ChMate'
|
548
|
+
version: '$1'
|
549
|
+
|
550
|
+
# 2tch https://apps.apple.com/jp/app/2tch/id305982914
|
551
|
+
- regex: '2tch/(\d+[\.\d]+)'
|
552
|
+
name: '2tch'
|
553
|
+
version: '$1'
|
554
|
+
|
555
|
+
# Ciisaa https://play.google.com/store/apps/details?id=com.gmail.aosoan.ciisaa
|
556
|
+
- regex: 'Ciisaa/(\d+[\.\d]+)'
|
557
|
+
name: 'Ciisaa'
|
558
|
+
version: '$1'
|
559
|
+
|
560
|
+
# BB2C https://itunes.apple.com/us/app/bb2c/id298820042?mt=8
|
561
|
+
- regex: 'BB2C (\d+[\.\d]+)'
|
562
|
+
name: 'BB2C'
|
563
|
+
version: '$1'
|
564
|
+
|
565
|
+
# twinkle https://itunes.apple.com/app/twinkle/id463142843
|
566
|
+
- regex: 'twinkle/(\d+[\.\d]+)'
|
567
|
+
name: 'twinkle'
|
568
|
+
version: '$1'
|
569
|
+
|
570
|
+
# JaneStyle https://apps.apple.com/app/id1157926535
|
571
|
+
- regex: 'JaneStyle_iOS/(\d+[\.\d]+)'
|
572
|
+
name: 'JaneStyle'
|
573
|
+
version: '$1'
|
574
|
+
|
575
|
+
# Binance https://play.google.com/store/apps/details?id=com.binance.dev
|
576
|
+
- regex: 'BNC/.+\(Android (\d+[\.\d]+)\)'
|
577
|
+
name: 'Binance'
|
578
|
+
version: '$1'
|
579
|
+
|
580
|
+
# My World https://apps.apple.com/app/id598556821
|
581
|
+
- regex: 'ru\.mail\.my/(\d+[\.\d]+)'
|
582
|
+
name: 'My World'
|
583
|
+
version: '$1'
|
584
|
+
|
585
|
+
# Odnoklassniki https://play.google.com/store/apps/details?id=ru.ok.android https://apps.apple.com/app/id398465290
|
586
|
+
- regex: 'OK(?:Android|iOS)/([\d\.]+)'
|
587
|
+
name: 'Odnoklassniki'
|
588
|
+
version: '$1'
|
589
|
+
|
590
|
+
# YakYak https://github.com/yakyak/yakyak
|
591
|
+
- regex: 'yakyak/(\d+[\.\d]+)'
|
592
|
+
name: 'YakYak'
|
593
|
+
version: '$1'
|
594
|
+
|
595
|
+
# Microsoft Teams (https://www.microsoft.com/en/microsoft-teams/group-chat-software)
|
596
|
+
- regex: 'Teams/(\d+[\.\d]+)'
|
597
|
+
name: 'Teams'
|
598
|
+
version: '$1'
|
599
|
+
|
600
|
+
# Streamlabs OBS (https://streamlabs.com/)
|
601
|
+
- regex: 'StreamlabsOBS/(\d+[\.\d]+)'
|
602
|
+
name: 'Streamlabs OBS'
|
603
|
+
version: '$1'
|
604
|
+
|
605
|
+
# Blitz (https://blitz.gg/)
|
606
|
+
- regex: 'Blitz/([\d\.]+)'
|
607
|
+
name: 'Blitz'
|
608
|
+
version: '$1'
|
609
|
+
|
610
|
+
# OfferUp (https://play.google.com/store/apps/details?id=com.offerup)
|
611
|
+
- regex: 'OfferUp/([\d\.]+)'
|
612
|
+
name: 'OfferUp'
|
613
|
+
version: '$1'
|
614
|
+
|
615
|
+
# Vuhuv (https://play.google.com/store/apps/details?id=com.vuhuv)
|
616
|
+
- regex: 'Vuhuv/([\d\.]+)'
|
617
|
+
name: 'Vuhuv'
|
618
|
+
version: '$1'
|
619
|
+
|
620
|
+
- regex: '.+/(?:gfibertv|gftv200)-([\d]+)-'
|
621
|
+
name: 'Google Fiber TV'
|
622
|
+
version: '$1'
|
623
|
+
|
624
|
+
# QuickCast (https://play.google.com/store/apps/details?id=com.wukongtv.wkcast.intl)
|
625
|
+
- regex: 'QuickCast$'
|
626
|
+
name: 'QuickCast'
|
627
|
+
version: ''
|
628
|
+
|
629
|
+
# AliExpress (https://play.google.com/store/apps/details?id=com.alibaba.aliexpresshd)
|
630
|
+
- regex: 'Aliexpress(?:Android)?/([\d\.]+)'
|
631
|
+
name: 'AliExpress'
|
632
|
+
version: '$1'
|
633
|
+
|
634
|
+
# Blue Proxy (https://play.google.com/store/apps/details?id=com.udicorn.proxy)
|
635
|
+
- regex: 'Blue Proxy/([\d\.]+)'
|
636
|
+
name: 'Blue Proxy'
|
637
|
+
version: '$1'
|
638
|
+
|
639
|
+
# https://www.n-tv.de/
|
640
|
+
- regex: 'ntvmobil/'
|
641
|
+
name: 'NTV Mobil'
|
642
|
+
version: ''
|
643
|
+
|
644
|
+
# COAF SMART Citizen (https://apps.apple.com/app/id1478339047)
|
645
|
+
- regex: 'COAF%20SMART%20Citizen/'
|
646
|
+
name: 'COAF SMART Citizen'
|
647
|
+
version: ''
|
data/regexes/client/pim.yml
CHANGED
@@ -48,4 +48,52 @@
|
|
48
48
|
# SeaMonkey
|
49
49
|
- regex: '(?:SeaMonkey|Iceape)(?:/(\d+[\.\d]+))?'
|
50
50
|
name: 'SeaMonkey'
|
51
|
-
version: '$1'
|
51
|
+
version: '$1'
|
52
|
+
|
53
|
+
# Live5ch
|
54
|
+
- regex: 'Live5ch/(\d+[\.\d]+)'
|
55
|
+
name: 'Live5ch'
|
56
|
+
version: '$1'
|
57
|
+
|
58
|
+
- regex: 'JaneView/'
|
59
|
+
name: 'JaneView'
|
60
|
+
version: ''
|
61
|
+
|
62
|
+
- regex: 'BathyScaphe/'
|
63
|
+
name: 'BathyScaphe'
|
64
|
+
version: ''
|
65
|
+
|
66
|
+
# Raindrop.io (https://raindrop.io/)
|
67
|
+
- regex: 'Raindrop.io/(\d+[\.\d]+)'
|
68
|
+
name: 'Raindrop.io'
|
69
|
+
version: '$1'
|
70
|
+
|
71
|
+
# Franz (https://meetfranz.com/)
|
72
|
+
- regex: 'Franz/(\d+[\.\d]+)'
|
73
|
+
name: 'Franz'
|
74
|
+
version: '$1'
|
75
|
+
|
76
|
+
# Mailspring (https://www.electronjs.org/apps/mailspring)
|
77
|
+
- regex: 'Mailspring/(\d+[\.\d]+)'
|
78
|
+
name: 'Mailspring'
|
79
|
+
version: '$1'
|
80
|
+
|
81
|
+
# Notion (https://www.notion.so/)
|
82
|
+
- regex: 'Notion/(\d+[\.\d]+)'
|
83
|
+
name: 'Notion'
|
84
|
+
version: '$1'
|
85
|
+
|
86
|
+
# Basecamp (https://basecamp.com/)
|
87
|
+
- regex: 'Basecamp[0-9]/?(\d+[\.\d]+)'
|
88
|
+
name: 'Basecamp'
|
89
|
+
version: '$1'
|
90
|
+
|
91
|
+
# Evernote (https://evernote.com/)
|
92
|
+
- regex: 'Evernote/?(\d+[\.\d]+)'
|
93
|
+
name: 'Evernote'
|
94
|
+
version: '$1'
|
95
|
+
|
96
|
+
# Rambox Pro (https://rambox.app/)
|
97
|
+
- regex: 'ramboxpro/(\d+\.[\.\d]+)?'
|
98
|
+
name: 'Rambox Pro'
|
99
|
+
version: '$1'
|
data/regexes/device/cameras.yml
CHANGED
@@ -17,12 +17,12 @@ Samsung:
|
|
17
17
|
device: 'camera'
|
18
18
|
models:
|
19
19
|
- regex: 'EK-GN120'
|
20
|
-
model: '
|
20
|
+
model: 'Galaxy NX'
|
21
21
|
- regex: 'EK-GC100'
|
22
|
-
model: '
|
22
|
+
model: 'Galaxy Camera'
|
23
23
|
- regex: 'EK-GC110'
|
24
|
-
model: '
|
24
|
+
model: 'Galaxy Camera WiFi only'
|
25
25
|
- regex: 'EK-GC200'
|
26
|
-
model: '
|
26
|
+
model: 'Galaxy Camera 2'
|
27
27
|
- regex: 'EK-GC([0-9]{3})'
|
28
|
-
model: '
|
28
|
+
model: 'Galaxy Camera $1'
|