diff --git a/src/enums/ua-parser-enums.d.ts b/src/enums/ua-parser-enums.d.ts index 44fefbf..2b2b466 100644 --- a/src/enums/ua-parser-enums.d.ts +++ b/src/enums/ua-parser-enums.d.ts @@ -244,6 +244,7 @@ export const Vendor: Readonly<{ PICO: "Pico"; POLYTRON: "Polytron"; REALME: "Realme"; + RETROID: "Retroid"; RIM: "RIM"; ROKU: "Roku"; SAMSUNG: "Samsung"; diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 3420acb..c4d869c 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -255,6 +255,7 @@ const Vendor = Object.freeze({ PICO: 'Pico', POLYTRON: 'Polytron', REALME: 'Realme', + RETROID: 'Retroid', RIM: 'RIM', ROKU: 'Roku', SAMSUNG: 'Samsung', diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index f34933b..69c4485 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -842,15 +842,16 @@ // CONSOLES /////////////////// - /(ouya)/i, // Ouya - /(nintendo) (\w+)/i // Nintendo - ], [VENDOR, MODEL, [TYPE, CONSOLE]], [ - /droid.+; (shield)( bui|\))/i // Nvidia Portable - ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [ /(playstation \w+)/i // Playstation ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [ /\b(xbox(?: one)?(?!; xbox))[\); ]/i // Microsoft Xbox ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [ + /(ouya)/i, // Ouya + /(nintendo) (\w+)/i, // Nintendo + /(retroid) (pocket ([^\)]+))/i // Retroid Pocket + ], [VENDOR, MODEL, [TYPE, CONSOLE]], [ + /droid.+; (shield)( bui|\))/i // Nvidia Portable + ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [ /////////////////// // WEARABLES diff --git a/test/data/ua/device/retroid.json b/test/data/ua/device/retroid.json new file mode 100644 index 0000000..fc7a83d --- /dev/null +++ b/test/data/ua/device/retroid.json @@ -0,0 +1,11 @@ +[ + { + "desc": "Retroid Pocket 4 Pro", + "ua": "Mozilla/5.0 (Linux; arm_64; Android 13; Retroid Pocket 4 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.96 YaBrowser/24.4.3.96.00 SA/3 Mobile Safari/537.36", + "expect": { + "vendor": "Retroid", + "model": "Pocket 4 Pro", + "type": "console" + } + } +] \ No newline at end of file