Skip to content

Commit c7c94bb

Browse files
committed
Added Douyin as an app name (Chinese TikTok), fixes #9.
Added `MIUI Browser` to browsers list. Added tests. Updated dependencies.
1 parent 9d9f860 commit c7c94bb

File tree

6 files changed

+101
-39
lines changed

6 files changed

+101
-39
lines changed

composer.lock

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/mappings/apps.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,10 +361,16 @@ public static function get() : array {
361361
}),
362362

363363
// TikTok
364-
'AppName/' => new props('start', fn(string $value) : array => [
365-
'app' => $value === 'AppName/musical_ly' ? 'TikTok' : \mb_substr($value, 8),
366-
'appname' => \mb_substr($value, 8)
367-
]),
364+
'AppName/' => new props('start', function (string $value) : array {
365+
$map = [
366+
'AppName/musical_ly' => 'TikTok',
367+
'AppName/aweme' => 'Douyin'
368+
];
369+
return [
370+
'app' => $map[$value] ?? \mb_substr($value, 8),
371+
'appname' => \mb_substr($value, 8)
372+
];
373+
}),
368374
'app_version/' => new props('start', fn(string $value) : array => [
369375
'appversion' => \mb_substr($value, 12)
370376
]),

src/mappings/browsers.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public static function get() : array {
3636
'k-meleon' => 'K-Meleon',
3737
'samsungbrowser' => 'Samsung Browser',
3838
'huaweibrowser' => 'Huawei Browser',
39-
'qqbrowser' => 'QQ Browser'
39+
'qqbrowser' => 'QQ Browser',
40+
'miuibrowser' => 'MIUI Browser'
4041
];
4142
$data = ['type' => 'human'];
4243
$browser = \mb_strtolower(\array_shift($parts));
@@ -130,6 +131,7 @@ public static function get() : array {
130131
'browser' => 'Obigo'
131132
]),
132133
'QQBrowser/' => new props('any', fn (string $value) : array => $fn['browserslash'](\mb_substr($value, \mb_stripos($value, 'QQBrowser/') ?: 0))), // sometimes missing a space from previous declaration, and MQQBrowser for mobile.
134+
'MiuiBrowser/' => new props('any', fn (string $value) : array => $fn['browserslash'](\mb_substr($value, \mb_stripos($value, 'MiuiBrowser/') ?: 0))),
133135
'Lynx/' => new props('start', fn (string $value) : array => [
134136
'browser' => 'Lynx',
135137
'browserversion' => \explode('/', $value, 2)[1] ?? null,

tests/appsTest.php

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -211,27 +211,6 @@ public function testApps() : void {
211211
'appname' => 'com.google.android.googlequicksearchbox',
212212
'appversion' => '301265987'
213213
],
214-
'Mozilla/5.0 (Linux; Android 10; AOSP on flame Build/QQ3A.200805.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3770.156 Mobile Safari/537.36 aweme_140700 JsSdk/1.0 NetType/WIFI Channel/gdt_growth21_yybtp_tengxun AppName/aweme app_version/14.7.0 ByteLocale/zh-Hans-CN Region/CN AppSkin/black AppTheme/dark TTWebView/0751130014013' => [
215-
'string' => 'Mozilla/5.0 (Linux; Android 10; AOSP on flame Build/QQ3A.200805.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3770.156 Mobile Safari/537.36 aweme_140700 JsSdk/1.0 NetType/WIFI Channel/gdt_growth21_yybtp_tengxun AppName/aweme app_version/14.7.0 ByteLocale/zh-Hans-CN Region/CN AppSkin/black AppTheme/dark TTWebView/0751130014013',
216-
'type' => 'human',
217-
'category' => 'mobile',
218-
'device' => 'AOSP',
219-
'model' => 'On Flame',
220-
'build' => 'QQ3A.200805.001',
221-
'kernel' => 'Linux',
222-
'platform' => 'Android',
223-
'platformversion' => '10',
224-
'engine' => 'Blink',
225-
'engineversion' => '75.0.3770.156',
226-
'browser' => 'Chrome',
227-
'browserversion' => '75.0.3770.156',
228-
'language' => 'zh-CN',
229-
'app' => 'aweme',
230-
'appname' => 'aweme',
231-
'appversion' => '14.7.0',
232-
'nettype' => 'WIFI',
233-
'darkmode' => true
234-
],
235214
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_5_0) AppleWebKit/537.36 (KHTML, like Gecko) Teams/1.6.00.364 Chrome/96.0.4664.174 Electron/16.2.8 Safari/537.36' => [
236215
'string' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_5_0) AppleWebKit/537.36 (KHTML, like Gecko) Teams/1.6.00.364 Chrome/96.0.4664.174 Electron/16.2.8 Safari/537.36',
237216
'type' => 'human',
@@ -833,6 +812,48 @@ public function testTikTok() : void {
833812
'appversion' => '27.9.0',
834813
'nettype' => '4G',
835814
'darkmode' => false
815+
],
816+
'Mozilla/5.0 (Linux; Android 10; AOSP on flame Build/QQ3A.200805.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3770.156 Mobile Safari/537.36 aweme_140700 JsSdk/1.0 NetType/WIFI Channel/gdt_growth21_yybtp_tengxun AppName/aweme app_version/14.7.0 ByteLocale/zh-Hans-CN Region/CN AppSkin/black AppTheme/dark TTWebView/0751130014013' => [
817+
'string' => 'Mozilla/5.0 (Linux; Android 10; AOSP on flame Build/QQ3A.200805.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3770.156 Mobile Safari/537.36 aweme_140700 JsSdk/1.0 NetType/WIFI Channel/gdt_growth21_yybtp_tengxun AppName/aweme app_version/14.7.0 ByteLocale/zh-Hans-CN Region/CN AppSkin/black AppTheme/dark TTWebView/0751130014013',
818+
'type' => 'human',
819+
'category' => 'mobile',
820+
'device' => 'AOSP',
821+
'model' => 'On Flame',
822+
'build' => 'QQ3A.200805.001',
823+
'kernel' => 'Linux',
824+
'platform' => 'Android',
825+
'platformversion' => '10',
826+
'engine' => 'Blink',
827+
'engineversion' => '75.0.3770.156',
828+
'browser' => 'Chrome',
829+
'browserversion' => '75.0.3770.156',
830+
'language' => 'zh-CN',
831+
'app' => 'Douyin',
832+
'appname' => 'aweme',
833+
'appversion' => '14.7.0',
834+
'nettype' => 'WIFI',
835+
'darkmode' => true
836+
],
837+
'Mozilla/5.0 (Linux; Android 14; KB2000 Build/AP2A.240905.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/126.0.6478.71 Mobile Safari/537.36 aweme_320000 JsSdk/1.0 NetType/WIFI Channel/doutui_android_1128_81p6qc AppName/aweme app_version/32.0.0 ByteLocale/zh-Hans-CN Region/CN AppSkin/white AppTheme/light BULLET/1 BytedanceWebview/d8a21c6 TTWebView/1261130062414' => [
838+
'string' => 'Mozilla/5.0 (Linux; Android 14; KB2000 Build/AP2A.240905.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/126.0.6478.71 Mobile Safari/537.36 aweme_320000 JsSdk/1.0 NetType/WIFI Channel/doutui_android_1128_81p6qc AppName/aweme app_version/32.0.0 ByteLocale/zh-Hans-CN Region/CN AppSkin/white AppTheme/light BULLET/1 BytedanceWebview/d8a21c6 TTWebView/1261130062414',
839+
'type' => 'human',
840+
'category' => 'mobile',
841+
'vendor' => 'OnePlus',
842+
'model' => 'KB2000',
843+
'build' => 'AP2A.240905.003',
844+
'kernel' => 'Linux',
845+
'platform' => 'Android',
846+
'platformversion' => '14',
847+
'engine' => 'Blink',
848+
'engineversion' => '126.0.6478.71',
849+
'browser' => 'Chrome',
850+
'browserversion' => '126.0.6478.71',
851+
'language' => 'zh-CN',
852+
'app' => 'Douyin',
853+
'appname' => 'aweme',
854+
'appversion' => '32.0.0',
855+
'nettype' => 'WIFI',
856+
'darkmode' => false
836857
]
837858
];
838859
foreach ($strings AS $ua => $item) {

tests/browsersTest.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,22 @@ public function testUCBrowser() : void {
772772
'type' => 'human',
773773
'category' => 'mobile',
774774
'language' => 'en-US'
775+
],
776+
'Mozilla/5.0 (Linux; U; Android 7.0; zh-CN; SM-G9550 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.7.0.953 Mobile Safari/537.36' => [
777+
'string' => 'Mozilla/5.0 (Linux; U; Android 7.0; zh-CN; SM-G9550 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.7.0.953 Mobile Safari/537.36',
778+
'type' => 'human',
779+
'category' => 'mobile',
780+
'vendor' => 'Samsung',
781+
'model' => 'SM-G9550',
782+
'build' => 'NRD90M',
783+
'kernel' => 'Linux',
784+
'platform' => 'Android',
785+
'platformversion' => '7.0',
786+
'engine' => 'Blink',
787+
'engineversion' => '40.0.2214.89',
788+
'browser' => 'UCBrowser',
789+
'browserversion' => '11.7.0.953',
790+
'language' => 'zh-CN'
775791
]
776792
];
777793
foreach ($strings AS $ua => $item) {
@@ -1904,6 +1920,23 @@ public function testOther() : void {
19041920
'appname' => 'Avant Browser',
19051921
'appversion' => '1.2.789',
19061922
'url' => 'http://www.avantbrowser.com'
1923+
],
1924+
'Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 XiaoMi/MiuiBrowser/2.1.1' => [
1925+
'string' => 'Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 XiaoMi/MiuiBrowser/2.1.1',
1926+
'type' => 'human',
1927+
'category' => 'mobile',
1928+
'vendor' => 'Xiaomi',
1929+
'device' => 'MI',
1930+
'model' => '4LTE',
1931+
'build' => 'KTU84P',
1932+
'kernel' => 'Linux',
1933+
'platform' => 'Android',
1934+
'platformversion' => '4.4.4',
1935+
'engine' => 'Blink',
1936+
'engineversion' => '39.0.0.0',
1937+
'browser' => 'MIUI Browser',
1938+
'browserversion' => '2.1.1',
1939+
'language' => 'zh-CN'
19071940
]
19081941
];
19091942
foreach ($strings AS $ua => $item) {

tests/languagesTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ public function testLanguages() : void {
5454
'platformversion' => '6.0.1',
5555
'engine' => 'Blink',
5656
'engineversion' => '79.0.3945.147',
57-
'browser' => 'Chrome',
58-
'browserversion' => '79.0.3945.147',
57+
'browser' => 'MIUI Browser',
58+
'browserversion' => '12.10.5-go',
5959
'language' => 'en-GB'
6060
],
6161
'com.zhiliaoapp.musically/2022706030 (Linux; U; Android 10; en; TECNO KE5; Build/QP1A.190711.020; Cronet/TTNetVersion:07232c86 2022-12-15 QuicVersion:5f23035d 2022-11-23)' => [

0 commit comments

Comments
 (0)