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