device_detector 1.0.2 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +49 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -6
- data/CHANGELOG.md +11 -0
- data/README.md +8 -7
- data/Rakefile +7 -4
- data/device_detector.gemspec +1 -0
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/browser.rb +364 -0
- data/lib/device_detector/client.rb +11 -2
- data/lib/device_detector/device.rb +1168 -22
- data/lib/device_detector/memory_cache.rb +5 -5
- data/lib/device_detector/metadata_extractor.rb +7 -8
- data/lib/device_detector/model_extractor.rb +3 -3
- data/lib/device_detector/name_extractor.rb +2 -2
- data/lib/device_detector/os.rb +148 -116
- data/lib/device_detector/parser.rb +22 -9
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector/version_extractor.rb +10 -2
- data/lib/device_detector.rb +73 -40
- data/regexes/bots.yml +909 -59
- data/regexes/client/browser_engine.yml +14 -2
- data/regexes/client/browsers.yml +1356 -241
- data/regexes/client/feed_readers.yml +10 -10
- data/regexes/client/libraries.yml +75 -1
- data/regexes/client/mediaplayers.yml +39 -3
- data/regexes/client/mobile_apps.yml +524 -45
- data/regexes/client/pim.yml +55 -2
- data/regexes/device/cameras.yml +6 -6
- data/regexes/device/car_browsers.yml +23 -3
- data/regexes/device/consoles.yml +9 -3
- data/regexes/device/mobiles.yml +16903 -3199
- data/regexes/device/notebooks.yml +114 -0
- data/regexes/device/portable_media_player.yml +20 -3
- data/regexes/device/shell_tv.yml +117 -0
- data/regexes/device/televisions.yml +440 -35
- data/regexes/oss.yml +603 -165
- data/regexes/vendorfragments.yml +6 -2
- data/spec/device_detector/concrete_user_agent_spec.rb +38 -51
- data/spec/device_detector/detector_fixtures_spec.rb +36 -37
- data/spec/device_detector/device_spec.rb +52 -56
- data/spec/device_detector/memory_cache_spec.rb +19 -19
- data/spec/device_detector/model_extractor_spec.rb +3 -3
- data/spec/device_detector/version_extractor_spec.rb +5 -6
- data/spec/device_detector_spec.rb +26 -26
- data/spec/fixtures/client/browser.yml +2617 -555
- data/spec/fixtures/client/feed_reader.yml +34 -52
- data/spec/fixtures/client/library.yml +129 -38
- data/spec/fixtures/client/mediaplayer.yml +59 -28
- data/spec/fixtures/client/mobile_app.yml +589 -20
- data/spec/fixtures/client/pim.yml +92 -19
- data/spec/fixtures/detector/bots.yml +1749 -458
- data/spec/fixtures/detector/camera.yml +30 -24
- data/spec/fixtures/detector/car_browser.yml +199 -3
- data/spec/fixtures/detector/console.yml +107 -45
- data/spec/fixtures/detector/desktop.yml +3216 -758
- data/spec/fixtures/detector/feature_phone.yml +935 -181
- data/spec/fixtures/detector/feed_reader.yml +181 -193
- data/spec/fixtures/detector/mediaplayer.yml +157 -60
- data/spec/fixtures/detector/mobile_apps.yml +914 -136
- data/spec/fixtures/detector/peripheral.yml +271 -0
- data/spec/fixtures/detector/phablet.yml +5593 -1533
- data/spec/fixtures/detector/portable_media_player.yml +398 -32
- data/spec/fixtures/detector/smart_display.yml +183 -9
- data/spec/fixtures/detector/smart_speaker.yml +60 -0
- data/spec/fixtures/detector/smartphone-1.yml +3930 -4239
- data/spec/fixtures/detector/smartphone-10.yml +3985 -7366
- data/spec/fixtures/detector/smartphone-11.yml +5083 -3784
- data/spec/fixtures/detector/smartphone-12.yml +8989 -0
- data/spec/fixtures/detector/smartphone-13.yml +9412 -0
- data/spec/fixtures/detector/smartphone-14.yml +9477 -0
- data/spec/fixtures/detector/smartphone-15.yml +9281 -0
- data/spec/fixtures/detector/smartphone-16.yml +9678 -0
- data/spec/fixtures/detector/smartphone-17.yml +9965 -0
- 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 +6670 -4375
- 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 +4656 -4711
- data/spec/fixtures/detector/smartphone-4.yml +3518 -4479
- data/spec/fixtures/detector/smartphone-5.yml +3805 -4803
- data/spec/fixtures/detector/smartphone-6.yml +3745 -4693
- data/spec/fixtures/detector/smartphone-7.yml +3721 -4645
- data/spec/fixtures/detector/smartphone-8.yml +4564 -4699
- data/spec/fixtures/detector/smartphone-9.yml +3897 -4888
- data/spec/fixtures/detector/smartphone.yml +3154 -4141
- data/spec/fixtures/detector/tablet-1.yml +4742 -4576
- data/spec/fixtures/detector/tablet-2.yml +3803 -4731
- data/spec/fixtures/detector/tablet-3.yml +6210 -2309
- data/spec/fixtures/detector/tablet-4.yml +9062 -0
- data/spec/fixtures/detector/tablet-5.yml +9273 -0
- data/spec/fixtures/detector/tablet-6.yml +4588 -0
- data/spec/fixtures/detector/tablet.yml +3629 -4613
- data/spec/fixtures/detector/tv-1.yml +2501 -0
- data/spec/fixtures/detector/tv.yml +8856 -2064
- data/spec/fixtures/detector/unknown.yml +412 -587
- data/spec/fixtures/detector/wearable.yml +915 -0
- data/spec/fixtures/device/camera.yml +4 -3
- data/spec/fixtures/device/car_browser.yml +9 -2
- data/spec/fixtures/device/console.yml +15 -14
- data/spec/fixtures/device/notebook.yml +7 -0
- data/spec/fixtures/parser/oss.yml +1392 -21
- data/spec/fixtures/parser/vendorfragments.yml +57 -51
- metadata +70 -4
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
@@ -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'
|
@@ -28,12 +33,20 @@
|
|
28
33
|
- regex: '(?:FBAV|com.facebook.katana)(?:[ /]([\d\.]+))?'
|
29
34
|
name: 'Facebook'
|
30
35
|
version: '$1'
|
36
|
+
- regex: '(?:FBAN|FBSV|FBID|FBBV)/'
|
37
|
+
name: 'Facebook'
|
38
|
+
version: ''
|
31
39
|
|
32
40
|
# FeedR
|
33
41
|
- regex: 'FeedR(?:/([\d\.]+))?'
|
34
42
|
name: 'FeedR'
|
35
43
|
version: '$1'
|
36
44
|
|
45
|
+
# Google Go
|
46
|
+
- regex: 'com.google.android.apps.searchlite'
|
47
|
+
name: 'Google Go'
|
48
|
+
version: ''
|
49
|
+
|
37
50
|
# Google Play Kiosk
|
38
51
|
- regex: 'com.google.android.apps.magazines'
|
39
52
|
name: 'Google Play Newsstand'
|
@@ -45,9 +58,17 @@
|
|
45
58
|
version: ''
|
46
59
|
|
47
60
|
# WeChat
|
48
|
-
- regex: 'MicroMessenger/([
|
61
|
+
- regex: 'MicroMessenger/([^; ]+)'
|
49
62
|
name: 'WeChat'
|
50
63
|
version: '$1'
|
64
|
+
- regex: 'WeChatShareExtensionNew/([\d\.]+)'
|
65
|
+
name: 'WeChat Share Extension'
|
66
|
+
version: '$1'
|
67
|
+
|
68
|
+
# DingTalk
|
69
|
+
- regex: 'DingTalk/([0-9\.]+)'
|
70
|
+
name: 'DingTalk'
|
71
|
+
version: '$1'
|
51
72
|
|
52
73
|
# Sina Weibo
|
53
74
|
- regex: '.*__weibo__([0-9\.]+)__'
|
@@ -55,7 +76,7 @@
|
|
55
76
|
version: '$1'
|
56
77
|
|
57
78
|
# Pinterest
|
58
|
-
- regex: 'Pinterest(?:/([\d\.]+))?'
|
79
|
+
- regex: 'Pinterest(?: for (?:Android|iOS))?(?:/([\d\.]+))?'
|
59
80
|
name: 'Pinterest'
|
60
81
|
version: '$1'
|
61
82
|
|
@@ -69,6 +90,16 @@
|
|
69
90
|
name: 'YouTube'
|
70
91
|
version: '$1'
|
71
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
|
+
|
72
103
|
# AFNetworking generic
|
73
104
|
- regex: '([^/]+)/(\d+(?:\.\d+)+) \((?:iPhone|iPad); iOS [0-9\.]+; Scale/[0-9\.]+\)'
|
74
105
|
name: '$1'
|
@@ -88,81 +119,529 @@
|
|
88
119
|
- regex: 'Instacast(?:HD)?/(\d\.[\d\.abc]+) CFNetwork/([\d\.]+) Darwin/([\d\.]+)'
|
89
120
|
name: 'Instacast'
|
90
121
|
version: '$1'
|
91
|
-
-
|
92
|
-
regex: 'Podcasts/([\d\.]+)'
|
122
|
+
- regex: 'Podcasts/([\d\.]+)'
|
93
123
|
name: 'Podcasts'
|
94
124
|
version: '$1'
|
95
|
-
-
|
96
|
-
regex: 'Pocket Casts(?:, (?:Android|iOS) v([\d\.]+))?'
|
125
|
+
- regex: 'Pocket Casts(?:, (?:Android|iOS) v([\d\.]+))?'
|
97
126
|
name: 'Pocket Casts'
|
98
127
|
version: '$1'
|
99
|
-
-
|
100
|
-
regex: 'Podcat/([\d\.]+)'
|
128
|
+
- regex: 'Podcat/([\d\.]+)'
|
101
129
|
name: 'Podcat'
|
102
130
|
version: '$1'
|
103
|
-
|
104
|
-
-
|
105
|
-
regex: 'BeyondPod'
|
131
|
+
- regex: 'BeyondPod'
|
106
132
|
name: 'BeyondPod'
|
107
133
|
version:
|
108
|
-
-
|
109
|
-
regex: 'AntennaPod/?([\d\.]+)?'
|
134
|
+
- regex: 'AntennaPod/?([\d\.]+)?'
|
110
135
|
name: 'AntennaPod'
|
111
136
|
version: '$1'
|
112
|
-
-
|
113
|
-
regex: 'Overcast/([\d\.]+)'
|
137
|
+
- regex: 'Overcast/([\d\.]+)'
|
114
138
|
name: 'Overcast'
|
115
139
|
version: '$1'
|
116
|
-
-
|
117
|
-
|
140
|
+
- regex: '(?:CastBox|fm.castbox.audiobook.radio.podcast)/?([\d\.]+)?'
|
141
|
+
name: 'CastBox'
|
142
|
+
version: '$1'
|
143
|
+
- regex: 'Player FM'
|
118
144
|
name: 'Player FM'
|
119
145
|
version: ''
|
120
|
-
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
-
|
125
|
-
regex: 'PodcastRepublic/([\d\.]+)'
|
146
|
+
- regex: 'Podkicker( (?:Pro|Classic))?/([\d\.]+)'
|
147
|
+
name: 'Podkicker$1'
|
148
|
+
version: '$2'
|
149
|
+
- regex: 'PodcastRepublic/([\d\.]+)'
|
126
150
|
name: 'Podcast Republic'
|
127
151
|
version: '$1'
|
128
|
-
-
|
129
|
-
regex: 'Castro/(\d+)'
|
152
|
+
- regex: 'Castro/(\d+)'
|
130
153
|
name: 'Castro'
|
131
154
|
version: '$1'
|
132
|
-
-
|
133
|
-
regex: 'Castro 2 ([\d\.]+)/[\d]+ Like iTunes'
|
155
|
+
- regex: 'Castro 2 ([\d\.]+)/[\d]+ Like iTunes'
|
134
156
|
name: 'Castro 2'
|
135
157
|
version: '$1'
|
136
|
-
-
|
137
|
-
regex: 'Castro 2'
|
158
|
+
- regex: 'Castro 2'
|
138
159
|
name: 'Castro 2'
|
139
160
|
version: ''
|
140
|
-
-
|
141
|
-
regex: 'DoggCatcher'
|
161
|
+
- regex: 'DoggCatcher'
|
142
162
|
name: 'DoggCatcher'
|
143
163
|
version:
|
144
|
-
-
|
145
|
-
regex: 'PodcastAddict/v([\d]+)'
|
164
|
+
- regex: 'PodcastAddict/v([\d]+)'
|
146
165
|
name: 'Podcast & Radio Addict'
|
147
166
|
version: '$1'
|
148
|
-
-
|
149
|
-
regex: 'Podcat/([\d]+) CFNetwork/([\d\.]+) Darwin/([\d\.]+)'
|
167
|
+
- regex: 'Podcat(?:%202)?/([\d]+) CFNetwork'
|
150
168
|
name: 'Podcat'
|
151
169
|
version: '$1'
|
152
|
-
-
|
153
|
-
regex: 'i[cC]atcher[^\d]+([\d\.]+)'
|
170
|
+
- regex: 'iCatcher[^\d]+([\d\.]+)'
|
154
171
|
name: 'iCatcher'
|
155
172
|
version: '$1'
|
156
|
-
-
|
157
|
-
regex: 'YelpApp/([\d\.]+)'
|
173
|
+
- regex: 'YelpApp/([\d\.]+)'
|
158
174
|
name: 'Yelp Mobile'
|
159
175
|
version: '$1'
|
160
|
-
-
|
161
|
-
regex: 'jp.co.yahoo.android.yjtop/([\d\.]+)'
|
176
|
+
- regex: 'jp.co.yahoo.android.yjtop/([\d\.]+)'
|
162
177
|
name: 'Yahoo! Japan'
|
163
178
|
version: '$1'
|
164
|
-
-
|
165
|
-
regex: 'RSSRadio/([\d]+)?'
|
179
|
+
- regex: 'RSSRadio/([\d]+)?'
|
166
180
|
name: 'RSSRadio'
|
167
181
|
version: '$1'
|
168
|
-
|
182
|
+
- regex: 'SogouSearch Android[\d\.]+ version([\d\.]+)?'
|
183
|
+
name: 'SogouSearch App'
|
184
|
+
version: '$1'
|
185
|
+
- regex: 'NewsArticle/([\d\.]+)?'
|
186
|
+
name: 'NewsArticle App'
|
187
|
+
version: '$1'
|
188
|
+
- regex: 'tieba/([\d\.]+)?'
|
189
|
+
name: 'tieba'
|
190
|
+
version: '$1'
|
191
|
+
- regex: 'com\.douban\.group/([\d\.]+)?'
|
192
|
+
name: 'douban App'
|
193
|
+
version: '$1'
|
194
|
+
- regex: 'BingWeb/([\d\.]+)?'
|
195
|
+
name: 'BingWebApp'
|
196
|
+
version: '$1'
|
197
|
+
- regex: '(?:com.google.GoogleMobile|GSA)/([\d\.]+)?'
|
198
|
+
name: 'Google Search App'
|
199
|
+
version: '$1'
|
200
|
+
- regex: 'Flipboard/([\d\.]+)?'
|
201
|
+
name: 'Flipboard App'
|
202
|
+
version: '$1'
|
203
|
+
- regex: 'Instagram[ /]([\d\.]+)?'
|
204
|
+
name: 'Instagram App'
|
205
|
+
version: '$1'
|
206
|
+
- regex: 'baiduboxapp/([\d\.]+)?'
|
207
|
+
name: 'Baidu Box App'
|
208
|
+
version: '$1'
|
209
|
+
- regex: 'Crosswalk(?!.*(?:Streamy|QwantMobile))/([\d\.]+)?'
|
210
|
+
name: 'CrosswalkApp'
|
211
|
+
version: '$1'
|
212
|
+
- regex: 'Twitter for iPhone[/]?([\d\.]+)?'
|
213
|
+
name: 'Twitter'
|
214
|
+
version: '$1'
|
215
|
+
- regex: 'Twitter/([\d\.]+)'
|
216
|
+
name: 'Twitter'
|
217
|
+
version: '$1'
|
218
|
+
- regex: 'TwitterAndroid[/]?([\d\.]+)?'
|
219
|
+
name: 'Twitter'
|
220
|
+
version: '$1'
|
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\.]+)'
|
230
|
+
name: 'TopBuzz'
|
231
|
+
version: '$1'
|
232
|
+
- regex: 'Snapchat/([\d\.]+)'
|
233
|
+
name: 'Snapchat'
|
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'
|
247
|
+
|
248
|
+
# UnityPlayer
|
249
|
+
- regex: 'UnityPlayer/([\d\.]+)'
|
250
|
+
name: 'UnityPlayer'
|
251
|
+
version: '$1'
|
252
|
+
|
253
|
+
# (https://play.google.com/store/apps/details?id=cl.uchile.ing.adi.ucursos)
|
254
|
+
- regex: 'UCURSOS/v([\d\.]+)'
|
255
|
+
name: 'U-Cursos'
|
256
|
+
version: '$1'
|
257
|
+
|
258
|
+
# HeyTabBrowser or HeyTabAccount
|
259
|
+
- regex: 'HeyTapBrowser/([\d\.]+)'
|
260
|
+
name: 'HeyTapBrowser'
|
261
|
+
version: '$1'
|
262
|
+
|
263
|
+
# Roblox App
|
264
|
+
- regex: 'RobloxApp/([\d\.]+)'
|
265
|
+
name: 'Roblox'
|
266
|
+
version: '$1'
|
267
|
+
|
268
|
+
- regex: 'Viber/([\d\.]+)'
|
269
|
+
name: 'Viber'
|
270
|
+
version: '$1'
|
271
|
+
|
272
|
+
- regex: 'Siri/1'
|
273
|
+
name: 'Siri'
|
274
|
+
version: '1.0'
|
275
|
+
|
276
|
+
- regex: 'LinkedIn(?:App)?(?:/([\d\.]+))?'
|
277
|
+
name: 'LinkedIn'
|
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: ''
|