device_detector 1.0.3 → 1.0.7

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.
Files changed (94) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +8 -7
  4. data/lib/device_detector/bot.rb +2 -2
  5. data/lib/device_detector/browser.rb +364 -0
  6. data/lib/device_detector/client.rb +11 -2
  7. data/lib/device_detector/device.rb +1247 -22
  8. data/lib/device_detector/memory_cache.rb +5 -5
  9. data/lib/device_detector/metadata_extractor.rb +7 -8
  10. data/lib/device_detector/model_extractor.rb +3 -3
  11. data/lib/device_detector/name_extractor.rb +2 -2
  12. data/lib/device_detector/os.rb +150 -116
  13. data/lib/device_detector/parser.rb +23 -10
  14. data/lib/device_detector/version.rb +1 -1
  15. data/lib/device_detector/version_extractor.rb +29 -2
  16. data/lib/device_detector.rb +73 -40
  17. data/regexes/bots.yml +868 -62
  18. data/regexes/client/browser_engine.yml +11 -2
  19. data/regexes/client/browsers.yml +1132 -112
  20. data/regexes/client/feed_readers.yml +5 -11
  21. data/regexes/client/libraries.yml +86 -2
  22. data/regexes/client/mediaplayers.yml +39 -3
  23. data/regexes/client/mobile_apps.yml +940 -66
  24. data/regexes/client/pim.yml +66 -3
  25. data/regexes/device/cameras.yml +6 -6
  26. data/regexes/device/car_browsers.yml +23 -3
  27. data/regexes/device/consoles.yml +15 -3
  28. data/regexes/device/mobiles.yml +18351 -3566
  29. data/regexes/device/notebooks.yml +114 -0
  30. data/regexes/device/portable_media_player.yml +36 -9
  31. data/regexes/device/shell_tv.yml +117 -0
  32. data/regexes/device/televisions.yml +440 -35
  33. data/regexes/oss.yml +635 -284
  34. data/regexes/vendorfragments.yml +5 -1
  35. metadata +21 -118
  36. data/.gitignore +0 -14
  37. data/.travis.yml +0 -14
  38. data/Gemfile +0 -8
  39. data/Rakefile +0 -96
  40. data/device_detector.gemspec +0 -26
  41. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  42. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  43. data/spec/device_detector/concrete_user_agent_spec.rb +0 -135
  44. data/spec/device_detector/detector_fixtures_spec.rb +0 -100
  45. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  46. data/spec/device_detector/device_spec.rb +0 -151
  47. data/spec/device_detector/memory_cache_spec.rb +0 -148
  48. data/spec/device_detector/model_extractor_spec.rb +0 -63
  49. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  50. data/spec/device_detector/version_extractor_spec.rb +0 -79
  51. data/spec/device_detector_spec.rb +0 -189
  52. data/spec/fixtures/client/browser.yml +0 -2206
  53. data/spec/fixtures/client/feed_reader.yml +0 -199
  54. data/spec/fixtures/client/library.yml +0 -175
  55. data/spec/fixtures/client/mediaplayer.yml +0 -163
  56. data/spec/fixtures/client/mobile_app.yml +0 -193
  57. data/spec/fixtures/client/pim.yml +0 -115
  58. data/spec/fixtures/detector/bots.yml +0 -3260
  59. data/spec/fixtures/detector/camera.yml +0 -121
  60. data/spec/fixtures/detector/car_browser.yml +0 -21
  61. data/spec/fixtures/detector/console.yml +0 -281
  62. data/spec/fixtures/detector/desktop.yml +0 -5361
  63. data/spec/fixtures/detector/feature_phone.yml +0 -891
  64. data/spec/fixtures/detector/feed_reader.yml +0 -551
  65. data/spec/fixtures/detector/mediaplayer.yml +0 -210
  66. data/spec/fixtures/detector/mobile_apps.yml +0 -456
  67. data/spec/fixtures/detector/phablet.yml +0 -3785
  68. data/spec/fixtures/detector/portable_media_player.yml +0 -178
  69. data/spec/fixtures/detector/smart_display.yml +0 -61
  70. data/spec/fixtures/detector/smartphone-1.yml +0 -9953
  71. data/spec/fixtures/detector/smartphone-10.yml +0 -9924
  72. data/spec/fixtures/detector/smartphone-11.yml +0 -9889
  73. data/spec/fixtures/detector/smartphone-12.yml +0 -8655
  74. data/spec/fixtures/detector/smartphone-2.yml +0 -9967
  75. data/spec/fixtures/detector/smartphone-3.yml +0 -9887
  76. data/spec/fixtures/detector/smartphone-4.yml +0 -9911
  77. data/spec/fixtures/detector/smartphone-5.yml +0 -9933
  78. data/spec/fixtures/detector/smartphone-6.yml +0 -9923
  79. data/spec/fixtures/detector/smartphone-7.yml +0 -9892
  80. data/spec/fixtures/detector/smartphone-8.yml +0 -9896
  81. data/spec/fixtures/detector/smartphone-9.yml +0 -9928
  82. data/spec/fixtures/detector/smartphone.yml +0 -9984
  83. data/spec/fixtures/detector/tablet-1.yml +0 -10023
  84. data/spec/fixtures/detector/tablet-2.yml +0 -9968
  85. data/spec/fixtures/detector/tablet-3.yml +0 -7787
  86. data/spec/fixtures/detector/tablet.yml +0 -9951
  87. data/spec/fixtures/detector/tv.yml +0 -3333
  88. data/spec/fixtures/detector/unknown.yml +0 -3283
  89. data/spec/fixtures/device/camera.yml +0 -19
  90. data/spec/fixtures/device/car_browser.yml +0 -7
  91. data/spec/fixtures/device/console.yml +0 -79
  92. data/spec/fixtures/parser/oss.yml +0 -1047
  93. data/spec/fixtures/parser/vendorfragments.yml +0 -162
  94. data/spec/spec_helper.rb +0 -9
@@ -1,7 +1,7 @@
1
1
  ###############
2
2
  # Device Detector - The Universal Device Detection library for parsing User Agents
3
3
  #
4
- # @link http://piwik.org
4
+ # @link https://matomo.org
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  ###############
7
7
 
@@ -19,21 +19,49 @@
19
19
  name: 'bPod'
20
20
  version: ''
21
21
 
22
- # Facebook Messenger
23
- - regex: '(?:MessengerForiOS|MESSENGER).(?:FBAV)(?:[ /]([\d\.]+))?'
22
+ # Facebook Audience Network
23
+ - regex: 'AudienceNetworkForAndroid.+(?:FBAV)(?:[ /]([\d\.]+))?'
24
+ name: 'Facebook Audience Network'
25
+ version: '$1'
26
+
27
+ # Facebook Messenger (https://play.google.com/store/apps/details?id=com.facebook.orca)
28
+ - regex: '(?:MessengerForiOS|MESSENGER|FB_IAB/Orca-Android).(?:FBAV)(?:[ /]([\d\.]+))?'
24
29
  name: 'Facebook Messenger'
25
30
  version: '$1'
26
31
 
32
+ # Facebook Messenger Lite
33
+ - regex: '(?:mLite|MessengerLite(?:ForiOS)?).(?:FBAV)(?:[ /]([\d\.]+))?'
34
+ name: 'Facebook Messenger Lite'
35
+ version: '$1'
36
+
37
+ # Facebook Groups
38
+ - regex: '(?:GroupsForiOS).(?:FBAV)(?:[ /]([\d\.]+))?'
39
+ name: 'Facebook Groups'
40
+ version: '$1'
41
+
42
+ # Facebook Lite (https://play.google.com/store/apps/details?id=com.facebook.lite)
43
+ - regex: 'FBAN/EMA.+FBAV(?:[ /]([\d\.]+))?'
44
+ name: 'Facebook Lite'
45
+ version: '$1'
46
+
27
47
  # Facebook
28
48
  - regex: '(?:FBAV|com.facebook.katana)(?:[ /]([\d\.]+))?'
29
49
  name: 'Facebook'
30
50
  version: '$1'
51
+ - regex: '(?:FBAN|FBSV|FBID|FBBV)/'
52
+ name: 'Facebook'
53
+ version: ''
31
54
 
32
55
  # FeedR
33
56
  - regex: 'FeedR(?:/([\d\.]+))?'
34
57
  name: 'FeedR'
35
58
  version: '$1'
36
59
 
60
+ # Google Go
61
+ - regex: 'com.google.android.apps.searchlite'
62
+ name: 'Google Go'
63
+ version: ''
64
+
37
65
  # Google Play Kiosk
38
66
  - regex: 'com.google.android.apps.magazines'
39
67
  name: 'Google Play Newsstand'
@@ -44,10 +72,26 @@
44
72
  name: 'Google Plus'
45
73
  version: ''
46
74
 
75
+ # Google Drive (https://apps.apple.com/us/app/google-drive/id507874739)
76
+ - regex: 'Google.DriveExtension(?:/([\d\.]+))?'
77
+ name: 'Google Drive'
78
+ version: '$1'
79
+
47
80
  # WeChat
48
- - regex: 'MicroMessenger/([^ ]+)'
81
+ - regex: 'MicroMessenger/([^; ]+)'
82
+ name: 'WeChat'
83
+ version: '$1'
84
+ - regex: 'WeChat/([\d\.]+)'
49
85
  name: 'WeChat'
50
86
  version: '$1'
87
+ - regex: 'WeChatShareExtensionNew/([\d\.]+)'
88
+ name: 'WeChat Share Extension'
89
+ version: '$1'
90
+
91
+ # DingTalk
92
+ - regex: 'DingTalk/([0-9\.]+)'
93
+ name: 'DingTalk'
94
+ version: '$1'
51
95
 
52
96
  # Sina Weibo
53
97
  - regex: '.*__weibo__([0-9\.]+)__'
@@ -55,7 +99,7 @@
55
99
  version: '$1'
56
100
 
57
101
  # Pinterest
58
- - regex: 'Pinterest(?:/([\d\.]+))?'
102
+ - regex: 'Pinterest(?: for (?:Android(?: Tablet)?|iOS))?(?:/([\d\.]+))?'
59
103
  name: 'Pinterest'
60
104
  version: '$1'
61
105
 
@@ -69,6 +113,25 @@
69
113
  name: 'YouTube'
70
114
  version: '$1'
71
115
 
116
+ # Netflix (https://play.google.com/store/apps/details?id=com.netflix.mediaclient)
117
+ - regex: 'com.netflix.mediaclient(?:/(\d+\.[\d\.]+))?'
118
+ name: 'Netflix'
119
+ version: '$1'
120
+
121
+ # Downcast (www.downcastapp.com | https://apps.apple.com/us/app/downcast/id393858566)
122
+ - regex: 'Downcast/(\d+\.[\d\.]+)?(?:.+(?:!Mac)|$)'
123
+ name: 'Downcast'
124
+ version: '$1'
125
+
126
+ # Flipp (https://apps.apple.com/us/app/flipp-weekly-shopping/id725097967)
127
+ - regex: 'Flipp-iOS/.+CFNetwork'
128
+ name: 'Flipp'
129
+ version: ''
130
+
131
+ - regex: 'Flipp-iOS/(\d+[\.\d]+)'
132
+ name: 'Flipp'
133
+ version: '$1'
134
+
72
135
  # AFNetworking generic
73
136
  - regex: '([^/]+)/(\d+(?:\.\d+)+) \((?:iPhone|iPad); iOS [0-9\.]+; Scale/[0-9\.]+\)'
74
137
  name: '$1'
@@ -88,120 +151,931 @@
88
151
  - regex: 'Instacast(?:HD)?/(\d\.[\d\.abc]+) CFNetwork/([\d\.]+) Darwin/([\d\.]+)'
89
152
  name: 'Instacast'
90
153
  version: '$1'
91
- -
92
- regex: 'Podcasts/([\d\.]+)'
154
+ - regex: 'Podcasts/([\d\.]+)'
93
155
  name: 'Podcasts'
94
156
  version: '$1'
95
- -
96
- regex: 'Pocket Casts(?:, (?:Android|iOS) v([\d\.]+))?'
157
+ - regex: 'Pocket Casts(?:, (?:Android|iOS) v([\d\.]+))?'
97
158
  name: 'Pocket Casts'
98
159
  version: '$1'
99
- -
100
- regex: 'Podcat/([\d\.]+)'
160
+ - regex: 'Podcat/([\d\.]+)'
101
161
  name: 'Podcat'
102
162
  version: '$1'
103
-
104
- -
105
- regex: 'BeyondPod'
163
+ - regex: 'BeyondPod'
106
164
  name: 'BeyondPod'
107
165
  version:
108
- -
109
- regex: 'AntennaPod/?([\d\.]+)?'
166
+ - regex: 'AntennaPod/?([\d\.]+)?'
110
167
  name: 'AntennaPod'
111
168
  version: '$1'
112
- -
113
- regex: 'Overcast/([\d\.]+)'
169
+ - regex: 'Overcast/([\d\.]+)'
114
170
  name: 'Overcast'
115
171
  version: '$1'
116
- -
117
- regex: 'Player FM'
172
+ - regex: '(?:CastBox|fm.castbox.audiobook.radio.podcast)/?([\d\.]+)?'
173
+ name: 'CastBox'
174
+ version: '$1'
175
+ - regex: 'Player FM'
118
176
  name: 'Player FM'
119
177
  version: ''
120
- -
121
- regex: 'Podkicker(?: Pro)?/([\d\.]+)'
122
- name: 'Podkicker'
123
- version: '$1'
124
- -
125
- regex: 'PodcastRepublic/([\d\.]+)'
178
+ - regex: 'Podkicker( (?:Pro|Classic))?/([\d\.]+)'
179
+ name: 'Podkicker$1'
180
+ version: '$2'
181
+ - regex: 'PodcastRepublic/([\d\.]+)'
126
182
  name: 'Podcast Republic'
127
183
  version: '$1'
128
- -
129
- regex: 'Castro/(\d+)'
184
+ - regex: 'Castro/(\d+)'
130
185
  name: 'Castro'
131
186
  version: '$1'
132
- -
133
- regex: 'Castro 2 ([\d\.]+)/[\d]+ Like iTunes'
187
+ - regex: 'Castro 2 ([\d\.]+)/[\d]+ Like iTunes'
134
188
  name: 'Castro 2'
135
189
  version: '$1'
136
- -
137
- regex: 'Castro 2'
190
+ - regex: 'Castro 2'
138
191
  name: 'Castro 2'
139
192
  version: ''
140
- -
141
- regex: 'DoggCatcher'
193
+ - regex: 'DoggCatcher'
142
194
  name: 'DoggCatcher'
143
195
  version:
144
- -
145
- regex: 'PodcastAddict/v([\d]+)'
196
+ - regex: 'PodcastAddict/v([\d]+)'
146
197
  name: 'Podcast & Radio Addict'
147
198
  version: '$1'
148
- -
149
- regex: 'Podcat/([\d]+) CFNetwork/([\d\.]+) Darwin/([\d\.]+)'
199
+ - regex: 'Podcat(?:%202)?/([\d]+) CFNetwork'
150
200
  name: 'Podcat'
151
201
  version: '$1'
152
- -
153
- regex: 'i[cC]atcher[^\d]+([\d\.]+)'
202
+ - regex: 'iCatcher[^\d]+([\d\.]+)'
154
203
  name: 'iCatcher'
155
204
  version: '$1'
156
- -
157
- regex: 'YelpApp/([\d\.]+)'
205
+ - regex: 'YelpApp/([\d\.]+)'
158
206
  name: 'Yelp Mobile'
159
207
  version: '$1'
160
- -
161
- regex: 'jp.co.yahoo.android.yjtop/([\d\.]+)'
208
+ - regex: 'jp.co.yahoo.android.yjtop/([\d\.]+)'
162
209
  name: 'Yahoo! Japan'
163
210
  version: '$1'
164
- -
165
- regex: 'RSSRadio/([\d]+)?'
211
+ - regex: 'RSSRadio/([\d]+)?'
166
212
  name: 'RSSRadio'
167
213
  version: '$1'
168
- -
169
- regex: 'SogouSearch Android[\d\.]+ version([\d\.]+)?'
214
+ - regex: 'SogouSearch Android[\d\.]+ version([\d\.]+)?'
170
215
  name: 'SogouSearch App'
171
216
  version: '$1'
172
- -
173
- regex: 'NewsArticle/([\d\.]+)?'
217
+ - regex: 'NewsArticle/([\d\.]+)?'
174
218
  name: 'NewsArticle App'
175
219
  version: '$1'
176
- -
177
- regex: 'tieba/([\d\.]+)?'
220
+ - regex: 'tieba/([\d\.]+)?'
178
221
  name: 'tieba'
179
222
  version: '$1'
180
- -
181
- regex: 'com\.douban\.group/([\d\.]+)?'
223
+ - regex: 'com\.douban\.group/([\d\.]+)?'
182
224
  name: 'douban App'
183
225
  version: '$1'
184
- -
185
- regex: 'BingWeb/([\d\.]+)?'
226
+ - regex: 'BingWeb/([\d\.]+)?'
186
227
  name: 'BingWebApp'
187
228
  version: '$1'
188
- -
189
- regex: 'GSA/([\d\.]+)?'
229
+ - regex: '(?:com.google.GoogleMobile|GSA)/([\d\.]+)?'
190
230
  name: 'Google Search App'
191
231
  version: '$1'
192
- -
193
- regex: 'Flipboard/([\d\.]+)?'
232
+ - regex: 'Flipboard/([\d\.]+)?'
194
233
  name: 'Flipboard App'
195
234
  version: '$1'
196
- -
197
- regex: 'Instagram[ /]([\d\.]+)?'
235
+ - regex: 'Instagram[ /]([\d\.]+)?'
198
236
  name: 'Instagram App'
199
237
  version: '$1'
200
- -
201
- regex: 'baiduboxapp/([\d\.]+)?'
238
+ - regex: 'baiduboxapp/([\d\.]+)?'
202
239
  name: 'Baidu Box App'
203
240
  version: '$1'
204
- -
205
- regex: 'Crosswalk(?!.*Streamy)/([\d\.]+)?'
241
+ - regex: 'Crosswalk(?!.*(?:Streamy|QwantMobile))/([\d\.]+)?'
206
242
  name: 'CrosswalkApp'
207
243
  version: '$1'
244
+ - regex: 'Twitter for iPhone[/]?([\d\.]+)?'
245
+ name: 'Twitter'
246
+ version: '$1'
247
+ - regex: 'Twitter/([\d\.]+)'
248
+ name: 'Twitter'
249
+ version: '$1'
250
+ - regex: 'TwitterAndroid[/]?([\d\.]+)?'
251
+ name: 'Twitter'
252
+ version: '$1'
253
+ # Pocket Casts (https://pocketcasts.com)
254
+ - regex: '^Pocket Casts'
255
+ name: 'Pocket Casts'
256
+ version: ''
257
+ # Gaana (https://gaana.com)
258
+ - regex: '^GaanaAndroid-([\d\.]+)'
259
+ name: 'Gaana'
260
+ version: '$1'
261
+ - regex: 'TopBuzz/([\d\.]+)'
262
+ name: 'TopBuzz'
263
+ version: '$1'
264
+ - regex: 'Snapchat/([\d\.]+)'
265
+ name: 'Snapchat'
266
+ version: '$1'
267
+ - regex: 'AhaRadio2/([\d\.]+)'
268
+ name: 'Aha Radio 2'
269
+ version: '$1'
270
+ # Unibox (https://apps.apple.com/app/id933879046)
271
+ - regex: 'Unibox/([\d\.]+)'
272
+ name: 'Unibox'
273
+ version: ''
274
+
275
+ # Strimio (https://www.strimio.com/)
276
+ - regex: 'strimio(?:-desktop)/(\d+\.(?:[\.\d]+))?'
277
+ name: 'Strimio'
278
+ version: '$1'
279
+
280
+ # UnityPlayer
281
+ - regex: 'UnityPlayer/([\d\.]+)'
282
+ name: 'UnityPlayer'
283
+ version: '$1'
284
+
285
+ # (https://play.google.com/store/apps/details?id=cl.uchile.ing.adi.ucursos)
286
+ - regex: 'UCURSOS/v([\d\.]+)'
287
+ name: 'U-Cursos'
288
+ version: '$1'
289
+
290
+ # HeyTabBrowser or HeyTabAccount
291
+ - regex: 'HeyTapBrowser/([\d\.]+)'
292
+ name: 'HeyTapBrowser'
293
+ version: '$1'
294
+
295
+ # Roblox App
296
+ - regex: 'RobloxApp/([\d\.]+)'
297
+ name: 'Roblox'
298
+ version: '$1'
299
+
300
+ - regex: 'Viber/([\d\.]+)'
301
+ name: 'Viber'
302
+ version: '$1'
303
+
304
+ - regex: 'Siri/1'
305
+ name: 'Siri'
306
+ version: '1.0'
307
+
308
+ - regex: 'LinkedIn(?:App)?(?:/([\d\.]+))?'
309
+ name: 'LinkedIn'
310
+ version: '$1'
311
+
312
+ # https://apps.apple.com/ru/app/instapaper/id288545208
313
+ - regex: 'Instapaper/([\d\.]+)'
314
+ name: 'Instapaper'
315
+ version: '$1'
316
+
317
+ # https://apps.apple.com/us/app/keeper-password-manager/id287170072
318
+ - regex: 'Keeper/([\d\.]+)'
319
+ name: 'Keeper Password Manager'
320
+ version: '$1'
321
+
322
+ # https://apps.apple.com/us/app/skyeng-teachers/id1483049537
323
+ - regex: 'Skyeng Teachers/([\d\.]+)'
324
+ name: 'Skyeng Teachers'
325
+ version: '$1'
326
+
327
+ - regex: 'Kik/([\d\.]+) \(Android'
328
+ name: 'Kik'
329
+ version: '$1'
330
+
331
+ - regex: 'Procast/?([\d\.]+)?'
332
+ name: 'Procast'
333
+ version: '$1'
334
+
335
+ # DeviantArt (https://apps.apple.com/us/app/deviantart/id925219396)
336
+ - regex: 'DeviantArt/([\d\.]+)'
337
+ name: 'DeviantArt'
338
+ version: ''
339
+
340
+ # Discord (https://apps.apple.com/us/app/discord-talk-chat-hang-out/id985746746)
341
+ - regex: 'discord/([\d\.]+).+Electron'
342
+ name: 'Discord'
343
+ version: '$1'
344
+
345
+ - regex: 'discord(?:-Updater)?/([\d\.]+)'
346
+ name: 'Discord'
347
+ version: ''
348
+
349
+ # Covenant Eyes (https://apps.apple.com/us/app/covenant-eyes/id335318146)
350
+ - regex: 'Covenant%20Eyes/([\d\.]+)'
351
+ name: 'Covenant Eyes'
352
+ version: '$1'
353
+
354
+ # HP Smart (https://apps.apple.com/us/app/hp-smart/id469284907)
355
+ - regex: 'HP%20Smart/([\d\.]+)'
356
+ name: 'HP Smart'
357
+ version: ''
358
+
359
+ # Bitsboard (https://apps.apple.com/us/app/bitsboard-flashcards-games/id516842210)
360
+ - regex: 'Bitsboard/([\d\.]+)'
361
+ name: 'Bitsboard'
362
+ version: '$1'
363
+
364
+ # BetBull (https://apps.apple.com/us/app/betbull-sport-tips-casino/id1032680895)
365
+ - regex: 'Betbull/([\d\.]+)'
366
+ name: 'BetBull'
367
+ version: ''
368
+
369
+ # U-Cursos (https://apps.apple.com/us/app/u-cursos/id834515435)
370
+ - regex: 'U-Cursos/([\d\.]+)'
371
+ name: 'U-Cursos'
372
+ version: ''
373
+
374
+ # https://apps.apple.com/mt/app/1password-password-manager/id568903335
375
+ - regex: '1PasswordThumbs/([\d\.]+)'
376
+ name: '1Password'
377
+ version: '$1'
378
+
379
+ - regex: '(?:Microsoft Office )?(Access|Excel|OneDrive for Business|OneNote|PowerPoint|Project|Publisher|Visio|Word)[ /]([\d\.]+)'
380
+ name: 'Microsoft Office $1'
381
+ version: '$2'
382
+
383
+ # https://apps.apple.com/us/app/microsoft-onedrive/id477537958
384
+ - regex: 'OneDriveiOSApp/([\d\.]+)'
385
+ name: 'Microsoft OneDrive'
386
+ version: '$1'
387
+
388
+ - regex: 'Microsoft Office Mobile/([\d\.]+)'
389
+ name: 'Microsoft Office Mobile'
390
+ version: '$1'
391
+
392
+ # Skype
393
+ - regex: 'Skype/([\d\.]+)'
394
+ name: 'Skype'
395
+ version: '$1'
396
+
397
+ - regex: 'OC/([\d\.]+) \(Skype for Business\)'
398
+ name: 'Skype for Business'
399
+ version: '$1'
400
+
401
+ # https://apps.apple.com/us/app/skype-for-business/id605841731
402
+ - regex: 'iPhoneLync/([\d\.]+)'
403
+ name: 'Skype for Business'
404
+ version: '$1'
405
+
406
+ # TikTok (https://apps.apple.com/app/id835599320 | https://play.google.com/store/apps/details?id=com.zhiliaoapp.musically)
407
+ - regex: '(?:TikTok[/ ]|musical_ly_|AppName/musical_ly app_version/)(\d+\.(?:[\.\d]+))?'
408
+ name: 'TikTok'
409
+ version: '$1'
410
+
411
+ # https://apps.apple.com/app/id393499958
412
+ - regex: 'NAVER/(\d+[\.\d]+) CFNetwork'
413
+ name: 'Naver'
414
+ version: '$1'
415
+
416
+ # https://apps.apple.com/app/id1026349850
417
+ - regex: 'Copied/(\d+[\.\d]+) CFNetwork'
418
+ name: 'Copied'
419
+ version: ''
420
+
421
+ # https://apps.apple.com/app/id448639966
422
+ - regex: 'Pic%20Collage/(\d+[\.\d]+) CFNetwork'
423
+ name: 'Pic Collage'
424
+ version: '$1'
425
+
426
+ # https://apps.apple.com/app/id506003812
427
+ - regex: 'Papers/(\d+[\.\d]+) CFNetwork'
428
+ name: 'Papers'
429
+ version: '$1'
430
+
431
+ # https://apps.apple.com/app/id331787573
432
+ - regex: 'RoboForm/(\d+[\.\d]+) CFNetwork'
433
+ name: 'RoboForm'
434
+ version: ''
435
+
436
+ # https://apps.apple.com/app/id618783545
437
+ - regex: 'Slack/(\d+[\.\d]+) CFNetwork'
438
+ name: 'Slack'
439
+ version: ''
440
+
441
+ # https://apps.apple.com/us/app/id362057947
442
+ - regex: 'KAKAOTALK (\d+\.(?:[\.\d]+))?'
443
+ name: 'KakaoTalk'
444
+ version: '$1'
445
+
446
+ # https://apps.apple.com/us/app/shopee-t%E1%BA%BFt-sale-27-01/id959841449
447
+ - regex: 'ShopeeVN/([\d\.]+)'
448
+ name: 'Shopee'
449
+ version: '$1'
450
+
451
+ # https://apps.apple.com/us/app/sport1/id1185932089
452
+ - regex: 'SPORT1/([\d\.]+)'
453
+ name: 'SPORT1'
454
+ version: ''
455
+
456
+ # https://apps.apple.com/us/app/clovia-lingerie-shopping-app/id1243996857
457
+ - regex: 'Clovia/([\d\.]+)'
458
+ name: 'Clovia'
459
+ version: '$1'
460
+
461
+ # https://apps.apple.com/us/app/showme-interactive-whiteboard/id445066279
462
+ - regex: 'ShowMe/([\d\.]+)'
463
+ name: 'ShowMe'
464
+ version: '$1'
465
+
466
+ # https://apps.apple.com/us/app/wattpad-read-write-stories/id306310789
467
+ - regex: 'Wattpad/([\d\.]+)'
468
+ name: 'Wattpad'
469
+ version: '$1'
470
+
471
+ # https://apps.apple.com/us/app/the-wall-street-journal/id364387007
472
+ - regex: 'WSJ/([\d\.]+)'
473
+ name: 'The Wall Street Journal'
474
+ version: ''
475
+
476
+ # https://apps.apple.com/us/app/wh-question-cards-pro-who-what-when-where-why/id544870563
477
+ - regex: 'WH%20Questions/([\d\.]+)'
478
+ name: 'WH Questions'
479
+ version: '$1'
480
+
481
+ # https://apps.apple.com/us/app/whisper-share-express-meet/id506141837
482
+ - regex: 'whisper/([\d\.]+)'
483
+ name: 'Whisper'
484
+ version: ''
485
+
486
+ # https://apps.apple.com/us/app/opal-travel/id941006607
487
+ - regex: 'Opal/([\d\.]+)'
488
+ name: 'Opal Travel'
489
+ version: '$1'
490
+
491
+ # https://apps.apple.com/us/app/zalo/id579523206
492
+ - regex: 'Zalo/([\d\.]+)'
493
+ name: 'Zalo'
494
+ version: '$1'
495
+
496
+ # https://apps.apple.com/us/app/%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81/id1050704155
497
+ - regex: 'Yandex/([\d\.]+)'
498
+ name: 'Yandex'
499
+ version: ''
500
+
501
+ - regex: 'Zoho%20Chat/([\d\.]+)'
502
+ name: 'Zoho Chat'
503
+ version: '$1'
504
+
505
+ # Thunder (https://xl11.xunlei.com/)
506
+ - regex: 'Thunder/(\d+[\.\d]+)'
507
+ name: 'Thunder'
508
+ version: '$1'
509
+
510
+ # CGN (https://www.cgn.it/)
511
+ - regex: 'CGNBrowser/(\d+[\.\d]+)'
512
+ name: 'CGN'
513
+ version: '$1'
514
+
515
+ # Podbean (http://podbean.com | https://play.google.com/store/apps/details?id=com.podbean.app.podcast)
516
+ - regex: 'Podbean/.+App (\d+[\.\d]+)'
517
+ name: 'Podbean'
518
+ version: '$1'
519
+
520
+ # Alexa Media Player
521
+ - regex: 'AlexaMediaPlayer/(\d+[\.\d]+)'
522
+ name: 'Alexa Media Player'
523
+ version: '$1'
524
+
525
+ # TuneIn Radio Pro
526
+ - regex: 'TuneIn Radio Pro(?:[^/]*)/(\d+[\.\d]+)'
527
+ name: 'TuneIn Radio Pro'
528
+ version: '$1'
529
+ - regex: 'TuneIn(?: Radio(?:[^/]*))?/(\d+[\.\d]+)'
530
+ name: 'TuneIn Radio'
531
+ version: '$1'
532
+
533
+ # Podcaster
534
+ - regex: 'Podcaster/(\d+[\.\d]+)'
535
+ name: 'Podcaster'
536
+ version: '$1'
537
+
538
+ # DevCasts (https://apps.apple.com/app/id1481596184)
539
+ - regex: 'devcasts/(\d+[\.\d]+)'
540
+ name: 'DevCasts'
541
+ version: '$1'
542
+
543
+ # Swoot
544
+ - regex: 'Swoot/(\d+[\.\d]+)'
545
+ name: 'Swoot'
546
+ version: '$1'
547
+
548
+ # RadioPublic (https://play.google.com/store/apps/details?id=com.radiopublic.android)
549
+ - regex: 'RadioPublic/android-(\d+[\.\d]+)'
550
+ name: 'RadioPublic'
551
+ version: '$1'
552
+
553
+ # Podimo (https://play.google.com/store/apps/details?id=com.podimo)
554
+ - regex: 'Podimo/(\d+[\.\d]+)'
555
+ name: 'Podimo'
556
+ version: '$1'
557
+
558
+ # Evolve Podcast (https://apps.apple.com/us/app/id1199070742)
559
+ - regex: 'com.evolve.podcast/(\d+[\.\d]+)'
560
+ name: 'Evolve Podcast'
561
+ version: '$1'
562
+
563
+ - regex: ' Rocket.Chat\+?/(\d+[\.\d]+)'
564
+ name: 'Rocket Chat'
565
+ version: '$1'
566
+
567
+ # Pandora
568
+ - regex: '^Pandora Audio.+Android'
569
+ name: 'Pandora'
570
+ version: ''
571
+
572
+ # NPR One https://play.google.com/store/apps/details?id=org.npr.one
573
+ - regex: '^NPROneAndroid'
574
+ name: 'NPR One'
575
+ version: ''
576
+
577
+ # Wirtschafts Woche Nachrichte https://apps.apple.com/de/app/wirtschaftswoche-nachrichten/id1339187646
578
+ - regex: '^WirtschaftsWoche-iOS-(\d+[\.\d]+)'
579
+ name: 'Wirtschafts Woche'
580
+ version: '$1'
581
+
582
+ - regex: '^TVirl/(\d+[\.\d]+)'
583
+ name: 'TVirl'
584
+ version: '$1'
585
+
586
+ # ChMate https://play.google.com/store/apps/details?id=jp.co.airfront.android.a2chMate
587
+ - regex: '2?chMate/(\d+[\.\d]+)'
588
+ name: 'ChMate'
589
+ version: '$1'
590
+
591
+ # 2tch https://apps.apple.com/jp/app/2tch/id305982914
592
+ - regex: '2tch/(\d+[\.\d]+)'
593
+ name: '2tch'
594
+ version: '$1'
595
+
596
+ # Ciisaa https://play.google.com/store/apps/details?id=com.gmail.aosoan.ciisaa
597
+ - regex: 'Ciisaa/(\d+[\.\d]+)'
598
+ name: 'Ciisaa'
599
+ version: '$1'
600
+
601
+ # BB2C https://itunes.apple.com/us/app/bb2c/id298820042?mt=8
602
+ - regex: 'BB2C (\d+[\.\d]+)'
603
+ name: 'BB2C'
604
+ version: '$1'
605
+
606
+ # twinkle https://itunes.apple.com/app/twinkle/id463142843
607
+ - regex: 'twinkle/(\d+[\.\d]+)'
608
+ name: 'twinkle'
609
+ version: '$1'
610
+
611
+ # JaneStyle https://apps.apple.com/app/id1157926535
612
+ - regex: 'JaneStyle_iOS/(\d+[\.\d]+)'
613
+ name: 'JaneStyle'
614
+ version: '$1'
615
+
616
+ # Binance https://play.google.com/store/apps/details?id=com.binance.dev
617
+ - regex: 'BNC/.+\(Android (\d+[\.\d]+)\)'
618
+ name: 'Binance'
619
+ version: '$1'
620
+
621
+ # Binance (https://www.binance.com/en/desktop-download)
622
+ - regex: 'Binance/(\d+[\.\d]+)'
623
+ name: 'Binance'
624
+ version: '$1'
625
+
626
+ # My World https://apps.apple.com/app/id598556821
627
+ - regex: 'ru\.mail\.my/(\d+[\.\d]+)'
628
+ name: 'My World'
629
+ version: '$1'
630
+
631
+ # Odnoklassniki https://play.google.com/store/apps/details?id=ru.ok.android https://apps.apple.com/app/id398465290
632
+ - regex: 'OK(?:Android|iOS)/([\d\.]+)'
633
+ name: 'Odnoklassniki'
634
+ version: '$1'
635
+
636
+ # YakYak https://github.com/yakyak/yakyak
637
+ - regex: 'yakyak/(\d+[\.\d]+)'
638
+ name: 'YakYak'
639
+ version: '$1'
640
+
641
+ # Microsoft Teams (https://www.microsoft.com/en/microsoft-teams/group-chat-software)
642
+ - regex: 'Teams/(\d+[\.\d]+)'
643
+ name: 'Teams'
644
+ version: '$1'
645
+
646
+ - regex: 'TeamsMobile-iOS'
647
+ name: 'Teams'
648
+ version: ''
649
+
650
+ # Streamlabs OBS (https://streamlabs.com/)
651
+ - regex: 'StreamlabsOBS/(\d+[\.\d]+)'
652
+ name: 'Streamlabs OBS'
653
+ version: '$1'
654
+
655
+ # Blitz (https://blitz.gg/)
656
+ - regex: 'Blitz/([\d\.]+)'
657
+ name: 'Blitz'
658
+ version: '$1'
659
+
660
+ # OfferUp (https://play.google.com/store/apps/details?id=com.offerup)
661
+ - regex: 'OfferUp/([\d\.]+)'
662
+ name: 'OfferUp'
663
+ version: '$1'
664
+
665
+ # Vuhuv (https://play.google.com/store/apps/details?id=com.vuhuv)
666
+ - regex: 'Vuhuv/([\d\.]+)'
667
+ name: 'Vuhuv'
668
+ version: '$1'
669
+
670
+ - regex: '.+/(?:gfibertv|gftv200)-([\d]+)-'
671
+ name: 'Google Fiber TV'
672
+ version: '$1'
673
+
674
+ # QuickCast (https://play.google.com/store/apps/details?id=com.wukongtv.wkcast.intl)
675
+ - regex: 'QuickCast$'
676
+ name: 'QuickCast'
677
+ version: ''
678
+
679
+ # AliExpress (https://play.google.com/store/apps/details?id=com.alibaba.aliexpresshd)
680
+ - regex: 'Aliexpress(?:Android)?/([\d\.]+)'
681
+ name: 'AliExpress'
682
+ version: '$1'
683
+
684
+ # Blue Proxy (https://play.google.com/store/apps/details?id=com.udicorn.proxy)
685
+ - regex: 'Blue Proxy/([\d\.]+)'
686
+ name: 'Blue Proxy'
687
+ version: '$1'
688
+
689
+ # https://www.n-tv.de/
690
+ - regex: 'ntvmobil/'
691
+ name: 'NTV Mobil'
692
+ version: ''
693
+
694
+ # COAF SMART Citizen (https://apps.apple.com/app/id1478339047)
695
+ - regex: 'COAF%20SMART%20Citizen/'
696
+ name: 'COAF SMART Citizen'
697
+ version: ''
698
+
699
+ # GitHub Desktop (https://desktop.github.com/)
700
+ - regex: 'GitHubDesktop/([\d\.]+)'
701
+ name: 'GitHub Desktop'
702
+ version: '$1'
703
+
704
+ # Logi Options+ (https://www.logitech.com/en-us/software/logi-options-plus.html)
705
+ - regex: 'logioptionsplus/([\d\.]+)'
706
+ name: 'Logi Options+'
707
+ version: '$1'
708
+
709
+ # Emby Theater (https://emby.media/emby-theater.html)
710
+ - regex: 'EmbyTheater/([\d\.]+)'
711
+ name: 'Emby Theater'
712
+ version: '$1'
713
+
714
+ # Y8 Browser (https://www.y8.com/)
715
+ - regex: 'y8-browser/([\d\.]+)'
716
+ name: 'Y8 Browser'
717
+ version: '$1'
718
+
719
+ # NuMuKi Browser (https://www.numuki.com/app-download/)
720
+ - regex: 'NuMuKiBrowser/([\d\.]+)'
721
+ name: 'NuMuKi Browser'
722
+ version: '$1'
723
+
724
+ # Landis+Gyr AIM Browser (https://www.landisgyr.eu/product/gridstream-aim/)
725
+ - regex: 'LandisGyrAIMbrowser/(\d+[\.\d]+)'
726
+ name: 'Landis+Gyr AIM Browser'
727
+ version: '$1'
728
+
729
+ # Visual Studio Code (https://code.visualstudio.com/)
730
+ - regex: 'Code/(\d+[\.\d]+)'
731
+ name: 'Visual Studio Code'
732
+ version: '$1'
733
+
734
+ # Wireshark (https://www.wireshark.org)
735
+ - regex: 'Wireshark/(\d+[\.\d]+)'
736
+ name: 'Wireshark'
737
+ version: '$1'
738
+
739
+ # Samsung Magician (https://www.samsung.com/semiconductor/minisite/ssd/product/consumer/magician/)
740
+ - regex: 'Magician'
741
+ name: 'Samsung Magician'
742
+ version: ''
743
+
744
+ # Razer Synapse (https://www.razer.com/synapse-3)
745
+ - regex: 'Razer Central PC'
746
+ name: 'Razer Synapse'
747
+ version: ''
748
+
749
+ # Git (https://git-scm.com/download/win)
750
+ - regex: 'git/(\d+[\.\d]+)'
751
+ name: 'Git'
752
+ version: '$1'
753
+
754
+ # Google Podcasts (https://apps.apple.com/us/app/google-podcasts/id1398000105)
755
+ - regex: 'GooglePodcasts/(\d+[\.\d]+)'
756
+ name: 'Google Podcasts'
757
+ version: '$1'
758
+
759
+ # Windows CryptoAPI (https://www.microsoft.com/en-us/)
760
+ - regex: 'Microsoft-CryptoAPI/(\d+[\.\d]+)'
761
+ name: 'Windows CryptoAPI'
762
+ version: ''
763
+
764
+ # Windows Delivery Optimization (https://www.microsoft.com/en-us/)
765
+ - regex: 'Microsoft-Delivery-Optimization'
766
+ name: 'Windows Delivery Optimization'
767
+ version: ''
768
+
769
+ # Windows Update Agent (https://www.microsoft.com/en-us/)
770
+ - regex: 'Windows-Update-Agent'
771
+ name: 'Windows Update Agent'
772
+ version: ''
773
+
774
+ # Dr. Watson (https://www.microsoft.com/en-us/)
775
+ - regex: '^MSDW'
776
+ name: 'Dr. Watson'
777
+ version: ''
778
+
779
+ # qBittorrent (https://www.qbittorrent.org/)
780
+ - regex: 'qBittorrent/(\d+[\.\d]+)'
781
+ name: 'qBittorrent'
782
+ version: '$1'
783
+
784
+ # CPU-Z (https://www.cpuid.com/)
785
+ - regex: '^CPUID'
786
+ name: 'CPU-Z'
787
+ version: ''
788
+
789
+ # AIDA64 (https://www.aida64.com/)
790
+ - regex: 'AIDA64'
791
+ name: 'AIDA64'
792
+ version: ''
793
+
794
+ # HandBrake (https://handbrake.fr/)
795
+ - regex: 'HandBrake Win Upd (\d+[\.\d]+)'
796
+ name: 'HandBrake'
797
+ version: '$1'
798
+
799
+ # CCleaner (https://www.ccleaner.com/)
800
+ - regex: 'CCleaner, (\d+[\.\d]+)'
801
+ name: 'CCleaner'
802
+ version: '$1'
803
+
804
+ # Edge Update (https://www.microsoft.com/en-us/)
805
+ - regex: 'Microsoft Edge Update/(\d+[\.\d]+)'
806
+ name: 'Edge Update'
807
+ version: '$1'
808
+
809
+ # Chrome Update (https://www.google.com/chrome/)
810
+ - regex: 'Google(?:Software| )Update/(\d+[\.\d]+)'
811
+ name: 'Chrome Update'
812
+ version: '$1'
813
+
814
+ # Bose Music (https://apps.apple.com/us/app/bose-music/id1364986984)
815
+ - regex: 'Bose Music'
816
+ name: 'Bose Music'
817
+ version: ''
818
+
819
+ # HikConnect (https://apps.apple.com/us/app/hik-connect-for-end-user/id1087803190)
820
+ - regex: 'HikConnect'
821
+ name: 'Hik-Connect'
822
+ version: ''
823
+
824
+ # Cortana (https://www.microsoft.com/en-us/)
825
+ - regex: 'Cortana (\d+[\.\d]+)'
826
+ name: 'Cortana'
827
+ version: '$1'
828
+
829
+ # Opera News (https://play.google.com/store/apps/details?id=com.opera.app.news)
830
+ - regex: 'Opera News/(\d+[\.\d]+)'
831
+ name: 'Opera News'
832
+ version: '$1'
833
+
834
+ # Adobe Creative Cloud (https://apps.apple.com/us/app/adobe-creative-cloud/id852473028)
835
+ - regex: 'CreativeCloud/(\d+[\.\d]+)'
836
+ name: 'Adobe Creative Cloud'
837
+ version: '$1'
838
+
839
+ # rekordbox (https://rekordbox.com/en/)
840
+ - regex: 'rekordbox/(\d+[\.\d]+)'
841
+ name: 'rekordbox'
842
+ version: '$1'
843
+
844
+ # Windows Push Notification Services (https://www.microsoft.com/en-us/)
845
+ - regex: 'Microsoft-WNS/(\d+[\.\d]+)'
846
+ name: 'Windows Push Notification Services'
847
+ version: '$1'
848
+
849
+ # Background Intelligent Transfer Service (https://www.microsoft.com/en-us/)
850
+ - regex: 'Microsoft BITS/(\d+[\.\d]+)'
851
+ name: 'Background Intelligent Transfer Service'
852
+ version: '$1'
853
+
854
+ # ESET Remote Administrator (https://www.eset.com/me/business/remote-management/remote-administrator/)
855
+ - regex: 'ERA Agent Update'
856
+ name: 'ESET Remote Administrator'
857
+ version: ''
858
+
859
+ # Epic Games Launcher (https://www.epicgames.com/store/en-US/download)
860
+ - regex: 'EpicGamesLauncher/(\d+[\.\d]+)'
861
+ name: 'Epic Games Launcher'
862
+ version: '$1'
863
+
864
+ # WebDAV (https://www.microsoft.com/en-us/)
865
+ - regex: 'Microsoft-WebDAV-MiniRedir'
866
+ name: 'WebDAV'
867
+ version: ''
868
+
869
+ # Battle.net (https://eu.shop.battle.net/en-us)
870
+ - regex: 'Battle.net/(\d+[\.\d]+)'
871
+ name: 'Battle.net'
872
+ version: '$1'
873
+
874
+ # Bookshelf (https://play.google.com/store/apps/details?id=com.vitalsource.bookshelf)
875
+ - regex: 'Bookshelf-Android/(\d+[\.\d]+)'
876
+ name: 'Bookshelf'
877
+ version: '$1'
878
+
879
+ # Rave Social (https://www.ravesocial.com/)
880
+ - regex: 'RaveSocial/(\d+[\.\d]+)'
881
+ name: 'Rave Social'
882
+ version: '$1'
883
+
884
+ # Word Cookies! (https://apps.apple.com/us/app/word-cookies/id1153883316)
885
+ - regex: 'wordcookies/(\d+[\.\d]+)'
886
+ name: 'Word Cookies!'
887
+ version: '$1'
888
+
889
+ # Bible KJV (https://apps.apple.com/us/app/bible-kjv/id544098932)
890
+ - regex: 'com.meevii.bibleKJV/(\d+[\.\d]+)'
891
+ name: 'Bible KJV'
892
+ version: '$1'
893
+
894
+ # MetaTrader (https://www.metatrader5.com/)
895
+ - regex: 'MetaTrader 5 Terminal/(\d+[\.\d]+)'
896
+ name: 'MetaTrader'
897
+ version: '$1'
898
+
899
+ # Paint by Number (https://apps.apple.com/us/app/paint-by-number-coloring-games/id1420058690)
900
+ - regex: 'com.paint.bynumber/(\d+[\.\d]+)'
901
+ name: 'Paint by Number'
902
+ version: '$1'
903
+
904
+ # ZEPETO (https://apps.apple.com/app/id1350301428)
905
+ - regex: 'zepeto_global/(\d+[\.\d]+)'
906
+ name: 'ZEPETO'
907
+ version: '$1'
908
+
909
+ # Jungle Disk (https://www.jungledisk.com/)
910
+ - regex: 'Jungle Disk Workgroup HTTP'
911
+ name: 'Jungle Disk'
912
+ version: ''
913
+
914
+ # Nextcloud (https://play.google.com/store/apps/details?id=com.nextcloud.client)
915
+ - regex: '(?:mirall|Nextcloud-android)/(\d+[\.\d]+)'
916
+ name: 'Nextcloud'
917
+ version: '$1'
918
+
919
+ # GoNative (https://gonative.io/)
920
+ - regex: 'GoNativeIOS/(\d+[\.\d]+)'
921
+ name: 'GoNative'
922
+ version: '$1'
923
+
924
+ # Pandora (https://apps.apple.com/us/app/pandora-music-podcasts/id284035177)
925
+ - regex: 'Pandora/(\d+[\.\d]+)'
926
+ name: 'Pandora'
927
+ version: '$1'
928
+
929
+ # Blackboard (https://apps.apple.com/us/app/blackboard/id950424861)
930
+ - regex: 'Blackboard/(\d+[\.\d]+)'
931
+ name: 'Blackboard'
932
+ version: '$1'
933
+
934
+ - regex: 'Blackboard/unspecified'
935
+ name: 'Blackboard'
936
+ version: ''
937
+
938
+ # QQMusic (https://apps.apple.com/cn/app/qq%E9%9F%B3%E4%B9%90-%E5%90%AC%E6%88%91%E6%83%B3%E5%90%AC/id414603431)
939
+ - regex: 'QQMusic/(\d+[\.\d]+)'
940
+ name: 'QQMusic'
941
+ version: '$1'
942
+
943
+ # eToro (https://www.etoro.com/)
944
+ - regex: 'etoro-cordova-app'
945
+ name: 'eToro'
946
+ version: ''
947
+
948
+ # Avid Link (https://www.avid.com/products/avid-link)
949
+ - regex: 'Avid Link Desktop App/(\d+[\.\d]+)'
950
+ name: 'Avid Link'
951
+ version: '$1'
952
+
953
+ # Netflix (https://www.netflix.com/)
954
+ - regex: 'Netflix/(\d+[\.\d]+)'
955
+ name: 'Netflix'
956
+ version: '$1'
957
+
958
+ # Google Tag Manager (https://www.google.com/)
959
+ - regex: 'GoogleTagManager/(\d+[\.\d]+)'
960
+ name: 'Google Tag Manager'
961
+ version: '$1'
962
+
963
+ # Adobe Synchronizer (https://www.adobe.com/)
964
+ - regex: 'Adobe Synchronizer (\d+[\.\d]+)'
965
+ name: 'Adobe Synchronizer'
966
+ version: '$1'
967
+
968
+ # BlueStacks (https://www.bluestacks.com/)
969
+ - regex: 'BlueStacks(?: 5)?/(\d+[\.\d]+)'
970
+ name: 'BlueStacks'
971
+ version: '$1'
972
+
973
+ # PowerShell (https://www.microsoft.com/en-us/)
974
+ - regex: 'WindowsPowerShell/(\d+[\.\d]+)'
975
+ name: 'PowerShell'
976
+ version: '$1'
977
+
978
+ # GlobalProtect (https://www.paloaltonetworks.com/products/globalprotect)
979
+ - regex: 'PAN GlobalProtect/(\d+[\.\d]+)'
980
+ name: 'GlobalProtect'
981
+ version: '$1'
982
+
983
+ # Theyub
984
+ - regex: 'Theyub v(\d+[\.\d]+)'
985
+ name: 'Theyub'
986
+ version: '$1'
987
+
988
+ # BBC News
989
+ - regex: 'BBCNewsUKWatchApp/(\d+[\.\d]+)'
990
+ name: 'BBC News'
991
+ version: '$1'
992
+
993
+ # TradingView (https://www.tradingview.com/)
994
+ - regex: 'TradingView/(\d+[\.\d]+)'
995
+ name: 'TradingView'
996
+ version: '$1'
997
+
998
+ # Instabridge (https://instabridge.com/en/)
999
+ - regex: 'Instabridge'
1000
+ name: 'Instabridge'
1001
+ version: ''
1002
+
1003
+ # Be Focused (https://apps.apple.com/app/id973130201)
1004
+ - regex: 'Be Focused/(\d+\.[\.\d]+)?'
1005
+ name: 'Be Focused'
1006
+ version: '$1'
1007
+
1008
+ # Focus Matrix (https://apps.apple.com/app/id1087284172)
1009
+ - regex: 'Focus Matrix/(\d+\.[\.\d]+)?'
1010
+ name: 'Focus Matrix'
1011
+ version: '$1'
1012
+
1013
+ # Focus Keeper (https://apps.apple.com/app/id867374917)
1014
+ - regex: 'Focuskeeper/(\d+\.[\.\d]+)?'
1015
+ name: 'Focus Keeper'
1016
+ version: '$1'
1017
+
1018
+ # Quick Search TV (https://play.google.com/store/apps/details?id=com.aospstudio.tvsearch)
1019
+ - regex: 'Quick Search TV/(\d+\.[\.\d]+)'
1020
+ name: 'Quick Search TV'
1021
+ version: '$1'
1022
+
1023
+ # Microsoft Store (https://www.microsoft.com/en-us/store/apps/windows)
1024
+ - regex: 'WindowsStoreSDK'
1025
+ name: 'Microsoft Store'
1026
+ version: ''
1027
+
1028
+ # ASUS Updater (https://www.asus.com/)
1029
+ - regex: 'Asus Update/(\d+\.[\.\d]+)'
1030
+ name: 'ASUS Updater'
1031
+ version: '$1'
1032
+
1033
+ # IMO.IM HD Version https://play.google.com/store/apps/details?id=com.imo.android.imoimhd
1034
+ - regex: 'imoAndroid/(20\d{2}.[\.\d]+)'
1035
+ name: 'IMO HD Video Calls & Chat'
1036
+ version: '$1'
1037
+
1038
+ # IMO.IM https://play.google.com/store/apps/details?id=com.imo.android.imoim
1039
+ - regex: 'imoAndroid/(\d+\.[\.\d]+)'
1040
+ name: 'IMO International Calls & Chat'
1041
+ version: '$1'
1042
+
1043
+ # Microsoft Bing Search (https://play.google.com/store/apps/details?id=com.microsoft.bing | https://apps.apple.com/us/app/microsoft-bing-search/id345323231)
1044
+ - regex: 'BingSapphire/(\d+\.[\.\d]+)'
1045
+ name: 'Microsoft Bing Search'
1046
+ version: '$1'
1047
+
1048
+ # HiSearch
1049
+ - regex: '.+HiSearch/(\d+\.[\.\d]+)'
1050
+ name: 'HiSearch'
1051
+ version: '$1'
1052
+
1053
+ # RDDocuments (https://apps.apple.com/app/id364901807)
1054
+ - regex: 'RDDocuments/(\d+\.[\.\d]+)'
1055
+ name: 'RDDocuments'
1056
+ version: '$1'
1057
+
1058
+ # F-Secure SAFE (https://apps.apple.com/app/f-secure-safe/id572847748)
1059
+ - regex: 'FSCDCSafe (\d+\.[\.\d]+)'
1060
+ name: 'F-Secure SAFE'
1061
+ version: '$1'
1062
+
1063
+ # Twitterrific (https://apps.apple.com/us/app/twitterrific-tweet-your-way/id580311103)
1064
+ - regex: 'Twitterrific'
1065
+ name: 'Twitterrific'
1066
+ version: ''
1067
+
1068
+ # Uconnect LIVE (https://apps.apple.com/it/app/uconnect-live/id881830261?l=en)
1069
+ - regex: 'UconnectLive'
1070
+ name: 'Uconnect LIVE'
1071
+ version: ''
1072
+
1073
+ # Wayback Machine (https://apps.apple.com/us/app/wayback-machine/id1472432422)
1074
+ - regex: 'Wayback%20Machine%20Extension'
1075
+ name: 'Wayback Machine'
1076
+ version: ''
1077
+
1078
+ # Q-municate (https://www.qmunicateh10.com | https://apps.apple.com/gb/app/q-municate/id909698517)
1079
+ - regex: 'com.Nanoteq.QmunicateH10p.+/(\d+\.[\.\d]+) \('
1080
+ name: 'Q-municate'
1081
+ version: '$1'