messages-send,jid-utils: get deterministic server for user
This commit is contained in:
@@ -42,6 +42,7 @@ import {
|
||||
type FullJid,
|
||||
getBinaryNodeChild,
|
||||
getBinaryNodeChildren,
|
||||
getServerFromDomainType,
|
||||
isJidGroup,
|
||||
isJidHostedLidUser,
|
||||
isJidHostedPnUser,
|
||||
@@ -320,9 +321,10 @@ export const makeMessagesSocket = (config: SocketConfig) => {
|
||||
|
||||
// Process all devices for this user
|
||||
for (const item of userDevices) {
|
||||
const deterministicServer = getServerFromDomainType(item.server, item.domainType)
|
||||
const finalJid = isLidUser
|
||||
? jidEncode(user, item.server, item.device, item.domainType)
|
||||
: jidEncode(item.user, item.server, item.device, item.domainType)
|
||||
? jidEncode(user, deterministicServer, item.device)
|
||||
: jidEncode(item.user, deterministicServer, item.device)
|
||||
|
||||
deviceResults.push({
|
||||
...item,
|
||||
|
||||
@@ -34,6 +34,20 @@ export type FullJid = JidWithDevice & {
|
||||
domainType?: number
|
||||
}
|
||||
|
||||
export const getServerFromDomainType = (initialServer: string, domainType?: WAJIDDomains): JidServer => {
|
||||
switch(domainType) {
|
||||
case WAJIDDomains.LID:
|
||||
return 'lid'
|
||||
case WAJIDDomains.HOSTED:
|
||||
return 'hosted'
|
||||
case WAJIDDomains.HOSTED_LID:
|
||||
return 'hosted.lid'
|
||||
case WAJIDDomains.WHATSAPP:
|
||||
default:
|
||||
return initialServer
|
||||
}
|
||||
}
|
||||
|
||||
export const jidEncode = (user: string | number | null, server: JidServer, device?: number, agent?: number) => {
|
||||
return `${user || ''}${!!agent ? `_${agent}` : ''}${!!device ? `:${device}` : ''}@${server}`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user