Feat: others browsers in requestPairingCode() (#879)

* update

* l

* string

* added Safari

* Update getPlatformId

* Update getPlatformId (fix)
This commit is contained in:
Bob
2024-06-30 00:10:50 -03:00
committed by GitHub
parent bd20fb631b
commit 13be112b18
3 changed files with 27 additions and 10 deletions

View File

@@ -29,10 +29,11 @@ import {
getCodeFromWSError,
getErrorCodeFromStreamError,
getNextPreKeysNode,
getPlatformId,
makeEventBuffer,
makeNoiseHandler,
printQRIfNecessaryListener,
promiseTimeout
promiseTimeout,
} from '../Utils'
import {
assertNodeErrorFree,
@@ -525,7 +526,7 @@ export const makeSocket = (config: SocketConfig) => {
{
tag: 'companion_platform_id',
attrs: {},
content: '49' // Chrome
content: getPlatformId(browser[1])
},
{
tag: 'companion_platform_display',

View File

@@ -15,6 +15,14 @@ import { SocketConfig } from './Socket'
export type UserFacingSocketConfig = Partial<SocketConfig> & { auth: AuthenticationState }
export type BrowsersMap = {
ubuntu(browser: string): [string, string, string]
macOS(browser: string): [string, string, string]
baileys(browser: string): [string, string, string]
windows(browser: string): [string, string, string]
appropriate(browser: string): [string, string, string]
}
export enum DisconnectReason {
connectionClosed = 428,
connectionLost = 408,

View File

@@ -5,23 +5,31 @@ import { platform, release } from 'os'
import { Logger } from 'pino'
import { proto } from '../../WAProto'
import { version as baileysVersion } from '../Defaults/baileys-version.json'
import { BaileysEventEmitter, BaileysEventMap, DisconnectReason, WACallUpdateType, WAVersion } from '../Types'
import { BaileysEventEmitter, BaileysEventMap, BrowsersMap, DisconnectReason, WACallUpdateType, WAVersion } from '../Types'
import { BinaryNode, getAllBinaryNodeChildren, jidDecode } from '../WABinary'
const PLATFORM_MAP = {
'aix': 'AIX',
'darwin': 'Mac OS',
'win32': 'Windows',
'android': 'Android'
'android': 'Android',
'freebsd': 'FreeBSD',
'openbsd': 'OpenBSD',
'sunos': 'Solaris'
}
export const Browsers = {
ubuntu: browser => ['Ubuntu', browser, '20.0.04'] as [string, string, string],
macOS: browser => ['Mac OS', browser, '10.15.7'] as [string, string, string],
baileys: browser => ['Baileys', browser, '4.0.0'] as [string, string, string],
windows: browser => ['Windows', browser, '10.0.22621'] as [string, string, string],
export const Browsers: BrowsersMap = {
ubuntu: (browser) => ['Ubuntu', browser, '22.04.4'],
macOS: (browser) => ['Mac OS', browser, '14.4.1'],
baileys: (browser) => ['Baileys', browser, '6.5.0'],
windows: (browser) => ['Windows', browser, '10.0.22631'],
/** The appropriate browser based on your OS & release */
appropriate: browser => [ PLATFORM_MAP[platform()] || 'Ubuntu', browser, release() ] as [string, string, string]
appropriate: (browser) => [ PLATFORM_MAP[platform()] || 'Ubuntu', browser, release() ]
}
export const getPlatformId = (browser: string) => {
const platformType = proto.DeviceProps.PlatformType[browser.toUpperCase()]
return platformType ? platformType.toString().charCodeAt(0) : '49' //chrome
}
export const BufferJSON = {