fix: Adjusts in createJid

Adjusts in createJid
This commit is contained in:
Davidson Gomes 2023-07-24 11:13:30 -03:00 committed by GitHub
commit 3ca8ab12a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 36 deletions

View File

@ -124,7 +124,7 @@ const optionsSchema: JSONSchema7 = {
const numberDefinition: JSONSchema7Definition = { const numberDefinition: JSONSchema7Definition = {
type: 'string', type: 'string',
pattern: '^\\d+[\\.@\\w-]+', // pattern: '^\\d+[\\.@\\w-]+',
description: 'Invalid format', description: 'Invalid format',
}; };

View File

@ -1469,7 +1469,7 @@ export class WAStartupService {
private createJid(number: string): string { private createJid(number: string): string {
this.logger.verbose('Creating jid with number: ' + number); this.logger.verbose('Creating jid with number: ' + number);
if (number.includes('@g.us') || number.includes('@s.whatsapp.net')) { if (number.includes('@g.us') || number.includes('@s.whatsapp.net')) {
this.logger.verbose('Number already contains @g.us or @s.whatsapp.net'); this.logger.verbose('Number already contains @g.us or @s.whatsapp.net');
return number; return number;
@ -1479,37 +1479,23 @@ export class WAStartupService {
this.logger.verbose('Number already contains @broadcast'); this.logger.verbose('Number already contains @broadcast');
return number; return number;
} }
const countryCode = number.substring(0, 2); number = number
?.split(":")[0]
if (Number(countryCode) === 55) { ?.split("@")[0]
const formattedBRNumber = this.formatBRNumber(number); ?.replace(' ', '')
if (formattedBRNumber !== number) { ?.replace('+', '')
this.logger.verbose( ?.replace('(', '')
'Jid created is whatsapp in format BR: ' + ?.replace(')', '');
`${formattedBRNumber}@s.whatsapp.net`,
); if (number.includes('-') && number.length >= 18) {
return `${formattedBRNumber}@s.whatsapp.net`;
}
}
if (Number(countryCode) === 52 || Number(countryCode) === 54) {
const formattedMXARNumber = this.formatMXOrARNumber(number);
if (formattedMXARNumber !== number) {
this.logger.verbose(
'Jid created is whatsapp in format MXAR: ' +
`${formattedMXARNumber}@s.whatsapp.net`,
);
return `${formattedMXARNumber}@s.whatsapp.net`;
}
}
if (number.includes('-')) {
this.logger.verbose('Jid created is group: ' + `${number}@g.us`); this.logger.verbose('Jid created is group: ' + `${number}@g.us`);
number = number.replace(/[^\d-]/g, '');
return `${number}@g.us`; return `${number}@g.us`;
} }
number = number.replace(/\D/g, '');
this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`); this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`);
return `${number}@s.whatsapp.net`; return `${number}@s.whatsapp.net`;
} }
@ -1612,15 +1598,14 @@ export class WAStartupService {
) { ) {
this.logger.verbose('Sending message with typing'); this.logger.verbose('Sending message with typing');
const jid = this.createJid(number); const numberWA = await this.whatsappNumber({ numbers: [number] });
const numberWA = await this.whatsappNumber({ numbers: [jid] });
const isWA = numberWA[0]; const isWA = numberWA[0];
if (!isWA.exists && !isJidGroup(isWA.jid) && !isWA.jid.includes('@broadcast')) { if (!isWA.exists && !isJidGroup(isWA.jid) && !isWA.jid.includes('@broadcast')) {
throw new BadRequestException(isWA); throw new BadRequestException(isWA);
} }
const sender = isJidGroup(jid) ? jid : isWA.jid; const sender = isWA.jid;
try { try {
if (options?.delay) { if (options?.delay) {
@ -1629,7 +1614,7 @@ export class WAStartupService {
await this.client.presenceSubscribe(sender); await this.client.presenceSubscribe(sender);
this.logger.verbose('Subscribing to presence'); this.logger.verbose('Subscribing to presence');
await this.client.sendPresenceUpdate(options?.presence ?? 'composing', jid); await this.client.sendPresenceUpdate(options?.presence ?? 'composing', sender);
this.logger.verbose( this.logger.verbose(
'Sending presence update: ' + options?.presence ?? 'composing', 'Sending presence update: ' + options?.presence ?? 'composing',
); );
@ -1692,7 +1677,8 @@ export class WAStartupService {
mentions = options.mentions.mentioned.map((mention) => { mentions = options.mentions.mentioned.map((mention) => {
const jid = this.createJid(mention); const jid = this.createJid(mention);
if (isJidGroup(jid)) { if (isJidGroup(jid)) {
throw new BadRequestException('Mentions must be a number'); return null;
// throw new BadRequestException('Mentions must be a number');
} }
return jid; return jid;
}); });
@ -2337,7 +2323,7 @@ export class WAStartupService {
const onWhatsapp: OnWhatsAppDto[] = []; const onWhatsapp: OnWhatsAppDto[] = [];
for await (const number of data.numbers) { for await (const number of data.numbers) {
const jid = this.createJid(number); const jid = this.createJid(number);
// const jid = `${number}@s.whatsapp.net`;
if (isJidGroup(jid)) { if (isJidGroup(jid)) {
const group = await this.findGroup({ groupJid: jid }, 'inner'); const group = await this.findGroup({ groupJid: jid }, 'inner');