Skip to content

Commit fd82aa1

Browse files
committed
wip
1 parent 40c230c commit fd82aa1

2 files changed

Lines changed: 22 additions & 36 deletions

File tree

src/validate/validate.schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ const optionsSchema: JSONSchema7 = {
123123

124124
const numberDefinition: JSONSchema7Definition = {
125125
type: 'string',
126-
pattern: '^\\d+[\\.@\\w-]+',
126+
// pattern: '^\\d+[\\.@\\w-]+',
127127
description: 'Invalid format',
128128
};
129129

src/whatsapp/services/whatsapp.service.ts

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,7 +1380,7 @@ export class WAStartupService {
13801380

13811381
private createJid(number: string): string {
13821382
this.logger.verbose('Creating jid with number: ' + number);
1383-
1383+
13841384
if (number.includes('@g.us') || number.includes('@s.whatsapp.net')) {
13851385
this.logger.verbose('Number already contains @g.us or @s.whatsapp.net');
13861386
return number;
@@ -1390,37 +1390,23 @@ export class WAStartupService {
13901390
this.logger.verbose('Number already contains @broadcast');
13911391
return number;
13921392
}
1393-
1394-
const countryCode = number.substring(0, 2);
1395-
1396-
if (Number(countryCode) === 55) {
1397-
const formattedBRNumber = this.formatBRNumber(number);
1398-
if (formattedBRNumber !== number) {
1399-
this.logger.verbose(
1400-
'Jid created is whatsapp in format BR: ' +
1401-
`${formattedBRNumber}@s.whatsapp.net`,
1402-
);
1403-
return `${formattedBRNumber}@s.whatsapp.net`;
1404-
}
1405-
}
1406-
1407-
if (Number(countryCode) === 52 || Number(countryCode) === 54) {
1408-
const formattedMXARNumber = this.formatMXOrARNumber(number);
1409-
1410-
if (formattedMXARNumber !== number) {
1411-
this.logger.verbose(
1412-
'Jid created is whatsapp in format MXAR: ' +
1413-
`${formattedMXARNumber}@s.whatsapp.net`,
1414-
);
1415-
return `${formattedMXARNumber}@s.whatsapp.net`;
1416-
}
1417-
}
1418-
1419-
if (number.includes('-')) {
1393+
1394+
number = number
1395+
?.split(":")[0]
1396+
?.split("@")[0]
1397+
?.replace(' ', '')
1398+
?.replace('+', '')
1399+
?.replace('(', '')
1400+
?.replace(')', '');
1401+
1402+
if (number.includes('-') && number.length >= 18) {
14201403
this.logger.verbose('Jid created is group: ' + `${number}@g.us`);
1404+
number = number.replace(/[^\d-]/g, '');
14211405
return `${number}@g.us`;
14221406
}
1423-
1407+
1408+
number = number.replace(/\D/g, '');
1409+
14241410
this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`);
14251411
return `${number}@s.whatsapp.net`;
14261412
}
@@ -1451,15 +1437,14 @@ export class WAStartupService {
14511437
) {
14521438
this.logger.verbose('Sending message with typing');
14531439

1454-
const jid = this.createJid(number);
1455-
const numberWA = await this.whatsappNumber({ numbers: [jid] });
1440+
const numberWA = await this.whatsappNumber({ numbers: [number] });
14561441
const isWA = numberWA[0];
14571442

14581443
if (!isWA.exists && !isJidGroup(isWA.jid) && !isWA.jid.includes('@broadcast')) {
14591444
throw new BadRequestException(isWA);
14601445
}
14611446

1462-
const sender = isJidGroup(jid) ? jid : isWA.jid;
1447+
const sender = isWA.jid;
14631448

14641449
try {
14651450
if (options?.delay) {
@@ -1468,7 +1453,7 @@ export class WAStartupService {
14681453
await this.client.presenceSubscribe(sender);
14691454
this.logger.verbose('Subscribing to presence');
14701455

1471-
await this.client.sendPresenceUpdate(options?.presence ?? 'composing', jid);
1456+
await this.client.sendPresenceUpdate(options?.presence ?? 'composing', sender);
14721457
this.logger.verbose(
14731458
'Sending presence update: ' + options?.presence ?? 'composing',
14741459
);
@@ -1527,7 +1512,8 @@ export class WAStartupService {
15271512
mentions = options.mentions.mentioned.map((mention) => {
15281513
const jid = this.createJid(mention);
15291514
if (isJidGroup(jid)) {
1530-
throw new BadRequestException('Mentions must be a number');
1515+
return null;
1516+
// throw new BadRequestException('Mentions must be a number');
15311517
}
15321518
return jid;
15331519
});
@@ -2171,7 +2157,7 @@ export class WAStartupService {
21712157
const onWhatsapp: OnWhatsAppDto[] = [];
21722158
for await (const number of data.numbers) {
21732159
const jid = this.createJid(number);
2174-
// const jid = `${number}@s.whatsapp.net`;
2160+
21752161
if (isJidGroup(jid)) {
21762162
const group = await this.findGroup({ groupJid: jid }, 'inner');
21772163

0 commit comments

Comments
 (0)